Skip to main content
Google Ads Conversion Tracking for Odoo — A build-to-order Odoo module that wires your e-commerce checkout into Google Ads co — 1/1Illustrative preview

A build-to-order Odoo module that wires your e-commerce checkout into Google Ads conversion tracking

— global site tag on every storefront page plus server-verified purchase events, so your ad spend reports on real, paid orders.

ECOSIRE builds, installs, and supports it on Odoo 17, 18, and 19.

What is Google Ads Conversion Tracking for Odoo?

A build-to-order Odoo module that wires your e-commerce checkout into Google Ads conversion tracking — global site tag on every storefront page plus server-verified purchase events, so your ad spend reports on real, paid orders. ECOSIRE builds, installs, and supports it on Odoo 17, 18, and 19. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

Global site tag (gtag.js) injected via a QWeb template inheriting `website.layout`, loading on every storefront and checkout page without per-deploy source edits
Conversion ID and per-action labels stored on `res.config.settings` via `ir.config_parameter`, keeping staging and production credentials isolated
Server-side `purchase` conversion emitted on `sale.order` confirmation (paid state), not on a fragile thank-you-page render, so it survives ad blockers and reloads
Deduplicated transaction IDs derived from the order reference to prevent double-counted conversions on page refresh or repeat callbacks
`@api.depends` computed conversion value that respects tax configuration, discounts, and shipping per your reporting choice
Multi-currency handling — each order's conversion value and currency code converted correctly for stores selling in several currencies
Refund and cancellation adjustments via `sale.order` / credit-note state hooks so reported revenue matches reality
Enhanced conversions with consent-gated, hashed customer email/phone, only firing where your consent platform allows
Optional server-to-server conversion delivery through an `automated action` on state change for resilience against client-side blocking
Per-website conversion labels for multi-website Odoo setups, with correct site attribution
Additional event coverage on request — `add_to_cart`, `begin_checkout`, `view_item`, and lead/`crm.lead` conversions
Consent Mode v2 wiring so tags respect analytics and ad-storage signals from your cookie banner
JSON-RPC/XML-RPC-safe reporting method so headless, mobile, or integration-driven orders can also report conversions
Admin-only configuration secured by `ir.model.access.csv` and record rules, scoped per company in multi-company databases

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your Odoo.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

Odoo Compatibility
Odoo 17, Odoo 18, Odoo 19
Editions
Enterprise & Community
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
PostgreSQL 12+

About this Product

If you run Odoo eCommerce and pay for Google Ads, you already know the blind spot: Odoo core has no built-in bridge to your ad account, so the platform never learns which clicks turned into paid orders. Teams fall back to a hand-pasted global site tag in the website <head>, which fires a generic page view but no purchase event carrying order value, currency, or transaction ID. The result is inflated or missing conversion counts, broken ROAS, and Smart Bidding optimizing on noise. Browser-only tags make it worse — ad blockers, ITP cookie limits, and consent-mode gating silently drop a large share of conversions, and refunds are never subtracted, so reported revenue drifts away from what actually landed in sale.order.

ECOSIRE builds a dedicated Odoo module that closes this gap end to end. On the client side we inject the global site tag (gtag.js) through a QWeb template inheriting the website layout, so it loads on every storefront page — including the OWL-driven checkout steps — without you editing source on each deploy. Conversion IDs and labels live on res.config.settings, backed by ir.config_parameter, never hard-coded, so staging and production stay isolated. The heart of the build is a server-side event layer: we extend sale.order and the website_sale controller so that when an order is confirmed, a compute-derived, deduplicated purchase conversion is emitted with the real order total, currency, tax handling, and a stable order-reference transaction ID. This is measured against paid state, not a fragile thank-you-page render, so it survives ad blockers and page reloads.

Technically, the module is a proper addon: __manifest__.py declaring website_sale and sale dependencies, ORM models with @api.depends computed fields for conversion value, ir.model.access.csv plus record rules so tracking configuration is admin-only and organization-scoped, and XML/OWL views for the settings panel. We wire enhanced conversions (hashed, consent-gated email/phone) where you enable them, add optional server-to-server delivery via an automated action on state change, and expose a JSON-RPC/XML-RPC-safe method so headless or POS-adjacent flows can report conversions too. Multi-currency stores get per-order currency conversion; multi-website stores get per-site conversion labels. On Enterprise we can extend the same events into subscriptions and helpdesk-driven upsells; on Community everything runs on the standard eCommerce stack.

Delivery is build-to-order. After a short scoping call we confirm your Odoo version (17.0/18.0/19.0), Community vs Enterprise, which conversion actions matter (purchase, add-to-cart, lead, begin-checkout), and your consent and enhanced-conversions requirements. We build and test on a staging copy, run UAT with you against real Google Ads Tag Assistant traces, then install to production with a rollback plan and a git repo handover. Typical delivery is one working week from confirmed scope. Pricing starts from $999 (indicative, single-company base scope); additional integrations (server-side tagging endpoint, GA4 alignment, multi-website or multi-company conversion labels, and consent-platform depth) increase the quoted scope. You receive a fixed quote after the scoping call — never a surprise on the invoice.

What you get

  • Installable, version-pinned module source code for your Odoo edition (17.0, 18.0, or 19.0)
  • Installation and configuration on your staging then production environment, including conversion IDs, labels, and consent wiring
  • Technical documentation — model/field reference, settings map, and event-firing logic for your team's developers
  • End-user guide plus a live training session for your marketing and admin staff
  • UAT on a staging copy validated against Google Ads Tag Assistant traces, with a documented rollback plan
  • Post-go-live support window for defect fixes and configuration adjustments
  • Private git repository handover with full commit history and branch/tag for your Odoo version
  • Verification checklist confirming purchase, value, currency, and dedup behavior before sign-off

Who this is for

E-commerce Marketing Manager

Runs paid Google Ads campaigns against an Odoo storefront and needs conversion counts and revenue that match actual paid orders, so Smart Bidding and ROAS reporting stop optimizing on inflated or missing data.

Odoo Administrator / Internal Developer

Owns the Odoo instance and wants tracking delivered as a clean, upgrade-safe addon — settings in `res.config.settings`, secured access rights, and a git repo — rather than fragile hand-pasted tags that break on every deploy.

Performance / Growth Agency

Manages ad accounts for a client on Odoo and needs reliable server-side conversion signals, enhanced conversions, and consent-mode compliance without asking the client to hire a separate developer.

Multi-website / Multi-currency Store Owner

Operates several Odoo websites or sells in multiple currencies and needs per-site conversion labels and correct currency conversion so each campaign is attributed to the right store and value.

How Google Ads Conversion Tracking for Odoo Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
Conversion accuracyServer-verified purchase events tied to paid `sale.order` stateDepends entirely on the developer's approach and testingUsually client-side tag only; value often genericNo Google Ads conversion tracking at all
Order value & currencyReal total with multi-currency conversion and tax handlingPossible but must be built and tested from scratchOften fixed or missing value; limited currency supportNot sent
Ad-blocker resilienceOptional server-to-server delivery survives client blockingRare unless explicitly scopedBrowser-only; blocked conversions are lostNot applicable
Refund adjustmentCancellations and credit notes adjust reported revenueOnly if the developer builds itTypically not handledNot applicable
Consent Mode v2Wired to your consent platform, enhanced conversions gatedManual, error-prone integrationVaries; often partial or absentNot present
Fit to your storeBuilt to your version, checkout, and reporting rulesFully bespoke but you carry all the riskGeneric; you adapt your store to the appNone
Support & handoverSupport window, training, and full git repo handoverDepends on the contractor's termsVendor ticket queue; no source ownershipCommunity forums only
Upgrade pathVersion-pinned build; migration quotable on Odoo upgradeRe-work each upgrade at your costWaits on vendor to release a compatible versionNot applicable

Frequently Asked Questions about Google Ads Conversion Tracking

Is this a ready-made app I can download and install today?

No. This is a build-to-order module. We build, install, and support it specifically for your Odoo version and store configuration after you request a quotation — there is no instant download. That is deliberate: server-side conversion tracking has to be fitted to your checkout, consent setup, and reporting rules to be accurate.

How long does delivery take?

Typical delivery is one working week from confirmed scope. After the scoping call we build on a staging copy, run UAT with you against live Google Ads Tag Assistant traces, then install to production with a rollback plan. Complex requirements like server-to-server tagging or multi-website labels sit at the longer end of that range.

How does pricing and scoping work?

Pricing starts from $999 (indicative, single-company base scope). The exact figure depends on your Odoo edition, how many conversion actions you need, enhanced-conversions and consent depth, and multi-website or multi-company requirements. You get a fixed quote after the scoping call — the from-price is a starting point, not the final invoice.

What about support and Odoo version updates?

Every build includes a post-go-live support window for defect fixes and configuration tweaks. Because you receive the full git repository, your team can maintain it independently afterward. When you upgrade Odoo (for example 18.0 to 19.0), we can quote a migration of the module to the new version.

Will this work with my cookie consent banner?

Yes. We wire the tags to Google Consent Mode v2 so they respect the analytics and ad-storage signals from your consent platform. Enhanced conversions (hashed email/phone) only fire where consent allows. We confirm your specific consent tooling during scoping.

Does it work on both Odoo Community and Enterprise?

Yes. The module runs on the standard `website_sale` eCommerce stack, so it works on Community and Enterprise for Odoo 17.0, 18.0, and 19.0. On Enterprise we can optionally extend the same conversion events into subscriptions and other Enterprise-only flows.

Why not just paste the global site tag myself?

A hand-pasted tag fires a generic page view with no order value, currency, or transaction ID, and it lives entirely in the browser — so ad blockers, cookie restrictions, and refunds silently distort your data. This module emits server-verified `purchase` events tied to real `sale.order` state, deduplicated and refund-aware, which is what accurate ROAS and Smart Bidding require.

Request a quote

Google Ads Conversion Tracking

A build-to-order Odoo module that wires your e-commerce checkout into Google Ads conversion tracking — global site tag on every storefront page plus server-verified purchase events, so your ad spend reports on real, paid orders. ECOSIRE builds, installs, and supports it on Odoo 17, 18, and 19.

  • Global site tag (gtag.js) injected via a QWeb template inheriting `website.layout`, loading on every storefront and checkout page without per-deploy source edits
  • Conversion ID and per-action labels stored on `res.config.settings` via `ir.config_parameter`, keeping staging and production credentials isolated
  • Server-side `purchase` conversion emitted on `sale.order` confirmation (paid state), not on a fragile thank-you-page render, so it survives ad blockers and reloads
  • Deduplicated transaction IDs derived from the order reference to prevent double-counted conversions on page refresh or repeat callbacks

Request a Quotation

Tell us about your Google Ads Conversion Tracking requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.