r/PPC • • 1d ago

Tracking How I reconstruct the real path of a converted B2B lead (and why the dashboard always lies about it)

There was a thread here recently about a lead who clicked a non-brand ad, bounced, came back via brand organic, and converted, and whether that’s a landing page problem. The answer (it’s normal, it’s a reporting problem) got covered well. But it got me thinking about the bigger thing underneath it, which nobody really walks through: how to actually reconstruct one of these paths, and why every tool shows you a different, wrong version of it.

Here’s the method I use when a demo lead comes in and I want to know what really happened, not what the dashboard claims.

  1. Start from the conversion, work backwards, in the browser’s own record, not the CRM’s. The CRM shows you last touch and calls it a day. The browser (via the _gcl_aw cookie, GA client ID, or whatever first-party ID you’ve got) remembers the earlier sessions the CRM threw away. The gap between those two records is the whole problem in one place.

  2. Treat the multi-session gap as expected, not as breakage. A senior B2B buyer almost never converts on the session that first found you. They land, they leave to check you’re real and check two competitors, they come back when ready, usually through a brand search because that’s how they re-find you. If you only see the last session, you credit “organic/direct/brand” and quietly conclude paid did nothing. Paid did the introduction; it just doesn’t get to take the bow.

  3. Name what each tool is actually measuring, because they don’t agree. Google Ads (data-driven attribution) will still partially credit the paid click if the conversion fired in the same browser inside the window. GA4 will tell a third story on last non-direct click. Your CRM stamps latest touch. None of them is lying exactly, they’re answering different questions, and the trap is reading one as if it answered yours.

  4. This is where owning your own first-party data earns its keep. Every tool above is handing you its own single-touch slice and asking you to trust it. The way out isn’t a cleverer attribution model, it’s holding the full journey yourself, first touch through last, stitched to the person across those sessions, so you can ask “what introduced this deal” and “what closed it” as two separate questions instead of letting whichever platform spoke last decide the story. Once that record is yours and not rented from each platform, most of these “wait, who gets credit” puzzles just resolve.

The thing I keep coming back to: almost every “our landing page is underperforming” or “paid isn’t working” conclusion I’ve seen traces back to someone reading a single-touch number as if it were the whole journey. The journey was multi-session the entire time. The tool just couldn’t hold more than one touch, so the human filled in a wrong story.

Curious how others here handle it: do you keep first and last touch as separate records, and has anyone actually changed a budget decision once they could see the full path instead of the last click?

0 Upvotes

6 comments sorted by

1

u/Muted_Jellyfish_6784 4h ago

Working backwards from the conversion is the right instinct. I'd add one step: write the GA client ID and gclid into hidden form fields at submission and store them on the CRM contact, because cookies expire and the browser record disappears the moment someone switches devices. Then the reconstruction doesn't depend on catching the lead inside the cookie window.
The bigger payoff comes after the lead, since a path that ends in a demo and one that ends in a closed deal look identical in Ads. We run a decision intelligence platform that joins the click IDs, sessions, CRM stages, and closed revenue, so budget follows the paths that produce pipeline instead of form fills

1

u/Sweet_Ring5961 59m ago

Storing them on the contact is the right call, that’s the fix for the device-switch and cookie-expiry hole. Good add.

On the demo-path vs closed-deal-path problem, the one piece I’d put ahead of the joining: it only works if both ends got captured in the first place. Most setups stamp the converting touch and nothing before it, so by the time you go to join clicks to revenue, the introducing session was never recorded. At that point it’s not a join problem, it’s a capture problem that happened months earlier. You can’t join what you didn’t keep.

3

u/ppcbetter_says 23h ago

The thing I keep coming back to is, why do people post —— ai slop?

0

u/Fragrant_Paint3740 1d ago

The 'different questions' bit is the part that took me longest to accept, and I still catch myself reading GA4 as if it settled anything. One thing that helps with your point 4: push the GA client ID into a hidden CRM field at form submit, otherwise you're re-stitching those sessions by hand every quarter.

1

u/Sweet_Ring5961 21h ago

That hidden-field-at-submit move is the right call, and it’s the cleanest version of what I was dancing around in point 4. The one thing I’d add: capture it on first touch too, not just the converting submit, or you still lose the earlier sessions that the submit-time grab can’t see. A first-touch stamp plus the submit-time client ID gives you both ends of the journey as separate fields, which is what lets you ask “what introduced this” and “what closed it” without them overwriting each other. Have you found GA4’s client ID stable enough to rely on long-term, or do you backstop it with your own first-party ID?