Audience measurement, tracking and product feeds
Installing measurement that tells the truth, making it consent-compliant, and feeding marketplaces reliable product data — on PrestaShop, WooCommerce and Shopify.
Wrong measurement costs more than no measurement
Most shops I take over do have a tag installed. The problem is almost never missing measurement: it is that the numbers it produces correspond to nothing. A purchase event fired twice because the tag sits both in the theme and in a module. Revenue that includes VAT on one side and not the other. Conversions attributed to “direct” because the payment domain is not excluded from referrals.
Setting an advertising budget on those numbers means flying blind while believing you can see. That is why I always start by checking what actually comes through, before adding anything.
How I work on a tracking setup
-
Observe what is really sent
Google Tag Manager preview mode, the browser network tab, the actual dataLayer contents. Not the declared configuration: what the browser sends.
-
Compare against the source of truth
The shop’s own order count, same period, same time zone. The gap is never zero; it must be explainable.
-
Fix the cause, not the symptom
Remove the duplicate tag rather than filtering duplicates out of reports. A filter hides the problem and is lost at the first theme change.
-
Write down what is in place
Which tag, where, fired by what. Without that, the next person adds a second tag and the cycle starts again.
Consent: two separate obligations that get conflated
On one side there is the legal obligation, in France and across the European Union, to obtain consent before setting trackers that are not strictly necessary. On the other, a requirement specific to Google: since March 2024, advertisers serving the European Economic Area and the United Kingdom must pass consent mode signals for their campaigns to keep working normally.
These are two different things. Meeting the second does not mean meeting the first. In its standard configuration, Google Analytics 4 does not meet the audience-measurement exemption criteria published by the French data protection authority, so in principle it requires consent. The pages in this section separate what the law requires from what a vendor requires.
Product feeds: outgoing data matters as much as incoming
A rejected Merchant Center feed is not a technical detail: it means ads that stop running. The rejection reasons repeat from one shop to the next — a product identifier that changes on every export, a feed price that does not match the price shown on the product page, availability frozen on “in stock”, a sale price declared without a valid promotion period.
The same principles apply to the Meta catalogue and the Pinterest feed, each with its own constraints. I cover feed generation from PrestaShop, WooCommerce and Shopify, and how to read error messages that, taken literally, rarely point at the real cause.
ChatGPT Ads conversion tracking
-
ChatGPT Ads conversion tracking
OpenAI pixel, Conversions API, oppref and consent: the same pixel-plus-server logic, applied to ChatGPT ads.
-
ChatGPT Ads module for PrestaShop
Deduplicated OpenAI pixel and Conversions API, oppref kept until the order, consent respected: built and installed by me.
-
ChatGPT Ads extension for WooCommerce
OpenAI pixel and Conversions API, compatible with HPOS, the block checkout and consent plugins: built and installed by me.
In this section
-
Installing Google Analytics 4 on PrestaShop
There are two ways to add Google Analytics 4 to PrestaShop: the gtag.js tag pasted straight into the theme, or a Google Tag…
-
Installing Google Analytics 4 on WooCommerce
On WooCommerce, GA4 can be installed three ways: a dedicated plugin, a snippet added to functions.php, or a Google Tag Manager…
-
Installing Google Analytics 4 on Shopify
On Shopify, adding Google Analytics 4 to theme.liquid is no longer enough to measure purchases. Since Shopify moved to its new…
-
Installing Google Tag Manager on PrestaShop
Google Tag Manager on PrestaShop means a container added once to the theme, after which every tag, GA4, Ads, Meta, is managed…
-
Installing Google Tag Manager on WooCommerce
On WooCommerce, I install the Google Tag Manager container in the theme (functions.php or a child theme), or through a dedicated…
-
Installing Google Tag Manager on Shopify
On Shopify, installing the Google Tag Manager container in theme.liquid no longer covers the whole measurement. Since Shopify…
-
Ecommerce tracking: the events that actually matter
GA4 recommends around fifteen ecommerce events, from view_item_list through to refund. A sales funnel only needs five or six of…
-
Setting up the Meta pixel and Conversions API on PrestaShop
The Meta pixel alone misses a growing share of visitors because of blockers and browser restrictions. The Conversions API (CAPI)…
-
Setting up the Meta pixel and Conversions API on WooCommerce
On WooCommerce, the official "Meta for WooCommerce" extension enables the pixel and the Conversions API together from initial…
-
Setting up the Meta pixel and Conversions API on Shopify
On Shopify, the "Meta & Instagram" sales channel often handles pixel and Conversions API together, with no code to add to the…
-
Google Consent Mode: what to actually do in Europe
Since March 2024, Google has required advertisers using Google Ads and its advertising features on visitors from the European…
-
Audience measurement without a consent banner: what the CNIL allows
The CNIL allows a consent exemption for some audience measurement tools, but only if their purpose, configuration and retention…
-
ChatGPT Ads conversion tracking: OpenAI pixel, Conversions API and consent
ChatGPT ads have been running in France and 30 other European countries since late August 2026. To know which ads actually sell…
-
Google Merchant Center feed from PrestaShop
A Google Merchant Center feed is a structured file, XML, CSV/TSV or a direct call to the Content for Shopping API, listing every…
-
Google Merchant Center feed from WooCommerce
A Google Merchant Center feed lists every product with the attributes Google expects: id, title, description, link, image_link…
-
Google Merchant Center feed from Shopify
On Shopify, the first question isn’t how to build a feed but whether a dedicated feed is even needed. Shopify’s native Google &…
-
Fixing the most common Merchant Center errors
A Merchant Center disapproval always shows a precise reason, product by product, never a generic one. Before re-exporting…
-
Product feed for the Meta catalogue
The Meta product feed shares much of its structure with the Google Merchant Center feed: the same core attribute names (id…
-
Product feed for Pinterest
A Pinterest feed uses an attribute structure close to the Google Merchant Center specification, as CSV, TSV, XML or through a…
-
Sale prices, shipping and availability in a product feed
Three product feed attributes account for most of the rejections and incorrect listings I fix: the sale price (sale_price)…
-
My conversions aren’t showing up: where to look
A missing conversion almost never has a single possible cause. Before blaming GA4 or the Meta pixel, four checks come in order…
-
Duplicates in the statistics: the real causes
A duplicate (the same order counted twice) almost always has a traceable material cause: a container installed twice, a…
-
Gap between shop orders and measurement tool conversions
A gap between real orders and conversions measured by GA4 or the Meta pixel is a known structural phenomenon: declined consent…
-
Checking a tag installation without paid tools
Auditing a tracking install end to end doesn’t require a paid monitoring subscription. Four free tools cover the vast majority of…
Frequently asked questions
My Analytics shows fewer orders than my shop. Is that normal?
Should I use Google Tag Manager or install the tag directly?
Is my theme’s tracking module enough?
Do you work on a site already in production?
Describe your need in one minute
A few targeted questions so I can reply with an estimate rather than another questionnaire.