A build-to-order Odoo module that wires your Odoo eCommerce website into Google Analytics 4 with a complete, consent-aware retail event stream. ECOSIRE scopes, builds, installs, and supports it — this is not an off-the-shelf download. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $299.00 USD; request a quote for a scoped proposal.
A build-to-order Odoo module that wires your Odoo eCommerce website into Google Analytics 4 with a complete, consent-aware retail event stream. ECOSIRE scopes, builds, installs, and supports it — this is not an off-the-shelf download.
Sem pagamento agora. Isto envia um pedido de orçamento à nossa equipe — responderemos por e-mail com preços e próximos passos.
Most Odoo eCommerce teams discover the problem the same way: marketing spend keeps climbing, but no one can say which campaigns actually drive revenue because the analytics data is thin, inconsistent, or simply wrong. Odoo's website and eCommerce apps render product pages, carts, and a checkout, but out of the box they emit no structured GA4 event stream — there is no view_item, add_to_cart, begin_checkout, or purchase payload aligned to Google's recommended eCommerce schema, no reliable transaction ID or revenue value passed on the confirmation page, and no consent gating. Teams end up bolting a raw gtag snippet into the website head, which fires pageviews but leaves every high-value conversion event unmeasured or double-counted. The reporting gap runs straight into the ORM: purchase amounts, currencies, coupon codes, and item categories all live on sale.order, sale.order.line, and product.template, and none of that reaches GA4 without deliberate integration work.
GA4 recommended-event schema implemented end to end: view_item, view_item_list, select_item, add_to_cart, remove_from_cart, view_cart, begin_checkout, add_shipping_info, add_payment_info, and purchase
dataLayer pushes built from the live Odoo cart so item_id, item_name, item_category, price, quantity, and currency mirror your product.template and sale.order.line records
Server-side purchase event posted to the GA4 Measurement Protocol from a confirmed sale.order, so revenue is captured even when the browser tag is blocked
Deterministic transaction_id from the order reference with client/server deduplication to prevent double-counted purchases
GA4 Measurement ID and Measurement Protocol API secret configured via a res.config.settings extension, not hardcoded
API secret stored as a protected system parameter and gated by ir.model.access.csv plus record rules — never exposed to the storefront
We build a dedicated Odoo module that turns your storefront into a fully instrumented GA4 property. Technically, the module ships its own __manifest__.py declaring dependencies on website_sale (and website for Odoo 17.0/18.0/19.0), a settings model that extends res.config.settings so your GA4 Measurement ID, Measurement Protocol API secret, and consent behavior are configured in the Odoo UI rather than hardcoded, and QWeb template inheritance that injects a correctly-structured dataLayer push at each funnel step. On the client side we emit the recommended-event schema — view_item, view_item_list, select_item, add_to_cart, remove_from_cart, view_cart, begin_checkout, add_shipping_info, add_payment_info, and purchase — with item arrays built from the live cart so item IDs, names, item_category, price, quantity, and currency all match your catalog. Because browser-side tags are increasingly blocked or dropped, we pair the dataLayer/gtag layer with a server-side path: a compute method on the confirmed sale.order (guarded with @api.depends-style hooks and Odoo automated actions) posts the purchase event to GA4's Measurement Protocol from the backend, so the transaction is recorded even when the browser tag never fires. That server-side event carries a stable transaction_id derived from the order reference, deduplicated against the client event, so you get accurate revenue without double-attribution.
The module is built to respect the realities of a production Odoo instance. Access to the configuration and any logging models is controlled through ir.model.access.csv and record rules so only the right roles can read API secrets; the Measurement Protocol secret is stored as a system parameter, never exposed to the front end. Consent is first-class: events are held behind a configurable consent signal so the integration is compatible with Google Consent Mode and regional privacy requirements rather than firing unconditionally. Everything is delivered as versioned, readable source — no obfuscated blobs — and is validated against your Odoo edition, since Community and Enterprise differ in available website features and we test the exact combination you run. Where you already use Google Tag Manager, we can emit a clean dataLayer and let GTM own tag deployment instead of gtag; where you don't, we wire gtag directly. If your team wants raw events streamed elsewhere too, the same event objects can be fanned out over Odoo's XML-RPC/JSON-RPC surface or a webhook.
Delivery is build-to-order. After a short scoping call we confirm your Odoo version, edition, checkout customizations, catalog structure, and consent requirements, then produce a fixed quotation and a written scope. We develop on a staging copy of your environment, run UAT against real funnel journeys with GA4 DebugView so you can see each event land before anything touches production, and deploy behind a documented rollback plan. Typical delivery is 2 to 4 weeks from confirmed scope, depending on how customized your existing website and checkout templates are. Pricing starts from $299 (indicative, single-company base scope); multi-company or multi-website setups, server-side Measurement Protocol plus GTM dual-tagging, heavy checkout customization, or additional destination integrations increase the quoted scope.
Runs paid and organic acquisition against an Odoo storefront and needs trustworthy GA4 funnel and revenue data to attribute spend, measure conversion rates, and stop guessing which campaigns pay back.
Owns the Odoo instance and wants tracking added without patched core files, leaked API secrets, or upgrade-breaking hacks — delivered as a clean, access-controlled module they can maintain.
Needs the GA4 event schema to match a defined measurement plan, with server-side purchase capture and deduplication so reported revenue reconciles against Odoo's sale.order figures.
Wants a single accurate view of storefront performance tied to real orders, and prefers a scoped, supported build over stitching together brittle snippets in-house.
Compre a licença em ecosire.com e baixe o ZIP do módulo Google Analytics 4 eCommerce Tracking for Odoo no painel da sua conta.
Extraia o ZIP em sua pasta de complementos personalizados do Odoo no servidor (ou faça upload via Aplicativos > Instalar do arquivo em Odoo.sh/runbot).
Ative o modo de desenvolvedor, abra Aplicativos, clique em Atualizar lista de aplicativos, procure por Google Analytics 4 eCommerce Tracking for Odoo e pressione Instalar.
Abra o novo menu, cole sua chave de licença ECOSIRE, conecte quaisquer credenciais externas (Shopify, Amazon, Stripe, etc.) e salve.
Execute o teste de conexão integrado, sincronize seus primeiros 10 registros e agende o cron recorrente. Entre em contato com o suporte se algo falhar.
| Critério | ECOSIRE | Construção personalizada | Concorrente | Odoo nativo |
|---|---|---|---|---|
| GA4 event coverage | Full recommended-event schema, view_item through purchase, mapped to your catalog | Whatever your team has time to build and maintain | Common events covered, often generic and not matched to your data model | |
| Server-side purchase capture | Measurement Protocol from confirmed sale.order with dedup | Possible but rarely built in-house due to effort | Usually client-side only, blocked tags lose revenue | |
| Revenue accuracy vs Odoo orders | Reconciles to sale.order totals, currency and tax handled | Depends on internal rigor | Approximate, frequent currency and dedup gaps | |
| Consent / privacy | Consent Mode compatible, gated events, secrets protected | Must be designed and tested by you | Basic or bolt-on, varies by module | |
| Odoo version + edition fit | Built and tested for your exact 17/18/19 Community or Enterprise | Tied to whoever built it | Targets common versions, may lag your instance | |
| Upgrade safety | QWeb inheritance, no patched core, access-controlled | Varies, often brittle | Generally clean but a black box | |
| Support & handover | Docs, training, support window, full git repo | Internal knowledge only | Vendor ticket queue, no source ownership | |
| Time to working data | 2-4 weeks, scoped, UAT on staging with DebugView | Weeks to months of internal effort | Fast to install, slow to make actually correct |
This is a build-to-order module, not an instant download. After a scoping call we confirm your Odoo version, edition, and checkout customizations, then build on staging. Typical delivery is 2 to 4 weeks from confirmed scope, depending on how customized your existing website and checkout are.
Pricing starts from $299 as an indicative figure for a single-company base scope. We give a firm fixed quote only after the scoping call, once we understand your edition, multi-company/multi-website needs, consent requirements, and any custom checkout work. The from-price is a starting point, not a final price.
Every build includes a post-go-live support window for defect fixes and event-mapping adjustments, plus the full git repository so your team can maintain it. Longer-term support, GA4 schema changes, and Odoo version upgrades can be quoted as an ongoing arrangement.
No. The server-side Measurement Protocol event and the client-side purchase event share a deterministic transaction_id derived from the order reference, and GA4 deduplicates on it. You get accurate revenue whether or not the browser tag fires.
Yes. We can run in GTM mode — emitting a clean, schema-correct dataLayer and letting GTM own tag firing — or wire gtag directly. Events are held behind a configurable consent signal so the integration is compatible with Google Consent Mode and regional privacy rules.
We build and version-test for Odoo 17.0, 18.0, and 19.0 on both Community and Enterprise. Because website features differ across editions, we validate against the exact instance you run rather than shipping a one-size-fits-all package.
No core files are patched. The module uses QWeb template inheritance and standard model extensions (res.config.settings, sale.order), with access controlled via ir.model.access.csv and record rules, so it stays upgrade-safe within a major version.
A build-to-order Odoo module that wires your Odoo eCommerce website into Google Analytics 4 with a complete, consent-aware retail event stream. ECOSIRE scopes, builds, installs, and supports it — this is not an off-the-shelf download.