
Dead pixels and duplicate scripts burying the data that mattered.
eCommission's GTM container had accumulated years of tracking debt. Two Universal Analytics tags had been collecting nothing since Google sunset UA in July 2024; pixels for AdRoll, Twitter, Pinterest, and a Picreel exit-intent tool were still loading despite no active campaigns on those platforms; a Zillow trigger was actively suppressing other tags from firing; and six orphaned triggers fired against nothing. On the page side, a Mouseflow test script, a double-loaded Inspectlet snippet, and a years-old Yahoo pixel were all still running. The result was a noisy data layer no one could build reliable reporting on.
We audited the entire tag ecosystem and rebuilt it inside a GTM staging workspace, so every change was reversible before going live.
Three moments that mattered, none of them tracked reliably.
The signup, application, and returning-login moments weren't instrumented cleanly. GA4 was full of pre-existing, inconsistently named events — APP_COMPLETE in all caps, completed_application__full_v2/v3, signup_complete_v2, and a stray purchase event — making it impossible to separate real conversions from legacy noise. Paid campaigns had nothing trustworthy to optimize against.
We worked with eCommission's 4D engineering to fire three clean dataLayer events at the exact moments that matter, then wired them through GTM into GA4 and Google Ads.
ROAS that counted the wrong dollars.
The most important conversion — a completed advance application — was passing advance_amount, the money funded to the agent, as its value. But eCommission's actual revenue is only a percentage of that amount. Optimizing Google Ads against advance_amount meant the platform was bidding toward the wrong number, and reported ROAS didn't reflect true return.
We restructured the revenue model inside the app_complete event so tracking reflected real margin rather than gross funding.
Two systems, two numbers, no source of truth.
GA4 conversion counts didn't match eCommission's internal Postgres database. On March 27, GA4 showed 119 completed applications against 152 in Postgres — a 33-application gap. A separate bug had signup_complete and customer_login both firing on every dashboard load, so every existing agent's login was being counted as a brand-new signup and inflating the numbers.
We ran a structured reconciliation against the system of record and fixed the integrity issues feeding the gap.
