09
Analytics and ad tracking.
GA4, Google Tag Manager, Meta Pixel with the Conversions API, and ChatGPT Ads. Tracking that counts one purchase once, and only with consent. Quoted from the audit findings + VAT.
Quoted from the audit findings + VAT
We fix what sends data, how many times, and with what value. From Consent Mode v2 to server-side conversions with deduplication.
In short
- One order: one conversion in every system
- Meta Conversions API deduplicated through event_id
- ChatGPT Ads (OpenAI) pixel and server-side conversions
- Consent Mode v2 that actually sends the signal
- Quoted from the audit findings, after the €200 audit
Why GA4 shows fewer purchases than the store
The gap between the store and Analytics almost never has a single cause. Usually three things add up: part of the visitors refuse consent, two plugins push the same event, and tags run without a clear scope and pick up traffic from elsewhere.
In one store we measured Meta catching about 95 percent of purchases while GA4 caught fewer than half. A gap that size is not a glitch. It is a measurable defect, and it can be taken apart.
One purchase, one conversion
When three systems feed the same GA4 property and two plugins write into the same data layer, the same purchase can be counted twice. In the report that looks like a good month rather than a fault.
We check it this way: one real order, then count how many purchase events reach each destination, whether the value matches, whether VAT and delivery are included in it, and whether a refund removes the conversion.
Meta Conversions API and deduplication
Server-side sending improves measurement, but without a consent check it is the most serious failure available: the data leaves the server, nothing appears in the browser, so nobody notices. That is why the consent filter on the server-side path is always the first job.
Then we join the two halves. The browser event and the server event carry the same identifier, and the platform merges them into one conversion instead of counting two. Verified with a test order, not with an assumption.
ChatGPT Ads: a new channel, the same principles
OpenAI advertising has its own click identifier, the equivalent of Google gclid or Meta fbclid, its own pixel and its own conversions API. The principles do not change: the pixel loads only after consent, the server event carries the same identifier, and the amount is sent in cents.
We implement it in our own code, not as a Custom HTML tag in Tag Manager. The reason is simple: a tag created in the container sits outside the consent platform, so tidy blocking stops applying to the newest channel of all.
Pricing: quoted from the audit findings
We start with the website audit, €200 + VAT: what sends data today, how many times, with what value, and where the chain breaks between the ad click and the order.
Implementation is quoted from the findings. It depends on how many platforms are connected, whether a server-side part is needed, and whether the container is managed by you, by us, or by an ad agency. Get in touch.
FAQ.
Do we need Tag Manager if we already have GA4?
Not necessarily. On a small site with a single goal, Tag Manager adds a layer for nothing. For a store with several ad platforms it usually pays off, because the tags live in one place.
Can you work alongside our ad agency?
Yes. We agree who owns the container and who changes what. The problem is rarely the agency; it is that three people add tags and nobody sees the whole picture.
Does this work outside WooCommerce?
Yes. The event logic is the same, only the data source differs. We work with WooCommerce, custom builds, and sites with no store where the conversion is an inquiry.
How many conversions will I lose by blocking before consent?
Fewer will be reported. How many depends on your refusal rate. That is correct behaviour rather than a regression: until then part of the numbers were collected without a legal basis. We tell you before, not after.