Conversions counted per real submission
- Before
- about 2.9 in Google Ads (the duplicated signal)
- After
- one per sign-up action in the server-side measurement; Google Ads attribution of it still open (offers and purchase provisional)
Online marketplaceClient work
How a UK marketplace cut Google Ads from about 2.9 conversions per real submission to one event per action, reconciled against its own records.
The brief
A UK online marketplace on Shopify Plus, with a large daily Google Ads budget, tracks two core business actions — a listing submission and an offer — plus the purchase that follows. Its own words to me were that Tag Manager had double counted, someone had tried to fix it, and now it undercounted.
I was brought in at the end of August 2026 for a read-only audit, then asked to specify a repair that the client’s own developer implemented. I specified, verified and monitored; the developer wrote the code.
Sounds familiar?
The investigation
The audit was read-only and delivered as one milestone: a 30-day reconciliation of the client’s own listing and offer records against GA4 and Google Ads, per event, with the gap and its cause. It produced 36 findings, each labelled by how well it was established rather than by how alarming it sounded.
The core finding was that double counting and undercounting are one problem, not two: both appear where the identity of an event breaks. The earlier fix had not removed the duplication, and a part of it had broken Google Ads delivery. I also confirmed that where a purchase event existed, the order id, date and value joined exactly — 120 of 120.
One reading artifact, not a defect: Google Ads keeps backfilling conversions for about 9 days, so the most recent week always reads low until it settles.
Handover
Delivery noteDelivered Aug 2026
event_id per business action, with session and click identifiers carried server-side, so an event can be deduplicated on a key rather than on a hope.Before → after
Client work Done for real clients. Client details are anonymised.
Conversions counted per real submission
Server-side sign-up events joined to a session
48–58% to 85%
Purchase events joining to the order (id, date, value)
120/120
Backfill lag before the latest week stops reading low
| What changed | Before | After | Read on |
|---|---|---|---|
| Conversions per real submission | about 2.9 in Google Ads (the duplicated signal) | one per sign-up action in the server-side measurement; Google Ads attribution of it still open; offers and purchase provisional | Sep 2026 |
| Server-side sign-up events joined to a session | 48–58% | 85% | Sep 2026 |
| Purchase join to the order (id, date, value) | not measured | 120 of 120, where an event existed | Sep 2026 |
| Backfill lag understood | read as a loss | about 9 days, a reading artifact | Sep 2026 |
Notes on the numbers
Two things must be said plainly about the state of this work.
First, acceptance is provisional. The sign-up half is the part that is measured and working. A dedup defect on the server-marked identities was still open when this was written, offers had not yet been deployed, and purchase instrumentation had not started. I am not reporting a finished purchase pipeline.
Second, I misdiagnosed one thing and retracted it in writing the same day. Across the engagement, a review that assumed my claims were too generous caught five over-precise statements before they reached the client. I would rather show that process than pretend the first draft was clean.
A note from Daniilbefore you decide
If your platform count swings between double and half, you do not have two bugs; you have one identity problem that shows up differently depending on which path fails first. Check the identity of the event, not the symptom.
Three habits follow. Define one canonical identity per business action and dispatch server-side with a dedup key. Reconcile against your own records — the listings, offers or orders your team already trusts — instead of platform against platform. And state acceptance honestly: say which events are measured, which are still provisional, and which have not started, because a carefully hedged claim is worth more than a clean-looking one.
— Daniil
Rebuilding lead tracking on a Webflow site I never logged into: 27 changes, each with its own undo, and 15 of 15 negative tests passing.
The first answer is free, within one working day. Or write directly: next@taskfordaniel.com