case study

eCommission Data Tracking & Attribution

Rebuilt the click-to-funded-advance funnel with 3 clean conversion events across GTM, GA4, and Google Ads.
Established revenue-true ROAS by passing 4 new revenue fields and switching conversion value off advance amount.
Reconciled GA4 against the Postgres system of record, narrowing a 33-application daily reporting gap to ~7.
Decommissioned 6 obsolete tags and 7 dead triggers, including Universal Analytics tags inactive since 2024.
eCommission, a fintech that advances real estate agents their commissions before a sale funds, had a marketing measurement problem: it couldn't trust its own conversion data. Google Analytics was cluttered with legacy and duplicate events, the platform was optimizing against the amount funded to agents rather than actual revenue, and GA4 counts didn't reconcile with the company's internal database. With a board meeting approaching and paid media about to scale, The Matchbox rebuilt eCommission's tracking and attribution stack end to end — from the GTM container and the 4D backend through to GA4 and Google Ads — so every step from ad click to funded advance could be measured, valued, and trusted.
1

Tracking Foundation

Years of Tag Debt Drowning Out Real Signal

Dead pixels and duplicate scripts burying the data that mattered.

The Challenge:

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.

The Matchbox Solution:

We audited the entire tag ecosystem and rebuilt it inside a GTM staging workspace, so every change was reversible before going live.

  • Decommissioned 6 obsolete tags — including Universal Analytics tags dead since July 2024 — and 7 dead or orphaned triggers.
  • Removed a Zillow blocking trigger that had been suppressing legitimate tags from firing.
  • Stripped redundant page scripts: a Mouseflow test, a double-loaded Inspectlet snippet, and a legacy Yahoo pixel.
  • Rebuilt the Meta Pixel and created fresh Google Ads conversion actions from a clean base.
  • Implemented Enhanced Conversions and first-party GCLID cookie capture to tie ad clicks to funded advances.

2

Full-Funnel Events

No Clean Way to Measure Click to Application

Three moments that mattered, none of them tracked reliably.

The Challenge:

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.

The Matchbox Solution:

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.

  • Defined 3 core events — signup_complete, app_complete, and customer_login — each carrying agent and application parameters.
  • Anchored app_complete to the /apply/confirmation.php page, passing contract ID and advance amount as it fires.
  • Added a hidden app_type field to separate pending-sale from listing-advance applications sharing the same URL.
  • Marked all three as key events in GA4 and imported them into Google Ads for conversion-based bidding.
  • Built two GA4 explorations — "Full Funnel: Click → Signup → Application" and "Application Value by Channel."

3

Revenue-True ROAS

Measuring Funded Amount, Not Actual Revenue

ROAS that counted the wrong dollars.

The Challenge:

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.

The Matchbox Solution:

We restructured the revenue model inside the app_complete event so tracking reflected real margin rather than gross funding.

  • Added 4 new revenue fields to the app_complete push: purchased_commission, gross_revenue, promo_credit, and net_revenue.
  • Switched the Google Ads conversion value from advance_amount to net_revenue, so bidding optimized toward true revenue.
  • Configured custom metrics for all 6 revenue fields plus custom dimensions for every agent and application parameter.
  • Updated the "Application Value by Channel" report to surface net revenue by channel.

4

Reconciliation & Integrity

GA4 and the Database Telling Different Stories

Two systems, two numbers, no source of truth.

The Challenge:

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.

The Matchbox Solution:

We ran a structured reconciliation against the system of record and fixed the integrity issues feeding the gap.

  • Diagnosed the signup inflation — both events firing on /dashboard/mainmenu.php — and specified a server-side flag with a reload guard so signup_complete fires only for genuine new signups.
  • Traced the GA4-to-Postgres gap to uncaptured partner submissions (SkySlope, Lone Wolf, ZipLogix), cancellations, double-dips, and reporting timing.
  • Narrowed the March 27 discrepancy from 33 applications to roughly 7 unexplained submissions.
  • Established ongoing reconciliation, later catching a financial-tracking fall-off when revenue events stopped firing after a session-expiry change.

The Matchbox transformed eCommission's marketing measurement from a cluttered, unreliable data layer into a clean, reconciled, revenue-true funnel. By rebuilding the tracking stack from the 4D backend through GTM, GA4, and Google Ads — and reconciling every conversion against the system of record — we gave eCommission conversion data its team and board could finally trust. That foundation is what made the paid media scaling that followed possible: you can't optimize what you can't measure.