GTMLab
Our focus

Paid ads growth — and nothing else.

We don't do brand. We don't do generalist work. Five disciplines stacked together to make one outcome: a paid engine that compounds every month.

The 5 services we shipPerformance MarketingThe growth engine itself. Paid acquisition across every channel.Performance CreativeAds that win the auction. AI-tuned creative production at scale.Funnel Strategy & CROConversions, end to end. Landing pages, funnel rebuild, A/B testing.Data & AnalyticsEvery dollar traced. Dashboards, attribution, AI signal monitoring.GTM & Growth LabStrategy that ships Monday. Channel tests, positioning, expansion.
All 5 in motion
Full-stack engagementJAQS
We built JAQS's sales team its first real lead engine — in under 30 days.
Over 8xfirst month ROI on engagement investment
Millionsworth of pipeline value generated in <30 days
Our WorkCase StudiesClientsProofTestimonialsCreativesFunnels (coming soon)
Featured case study
FeaturedJAQS
We built JAQS's sales team its first real lead engine — in under 30 days.
Over 8xfirst month ROI on engagement investment
Millionsworth of pipeline value generated in <30 days
IndustriesHealthcareWellnessEcommerceHospitalityTourismTech StartupsProperty
ResourcesBlogTeardown Library (coming soon)Events (coming soon)Talks (coming soon)
WorkshopsGTM Mapping0→1 / pre-revenue founders. Map your full GTM.Growth DecodePMF + paid spend. Decode competitors, rebuild engine.Bali Tour 2026 (ended)20 workshops · 2 weeks · May 2026 wrap-up.Australia Tour 2026 (planning)Sydney · Melbourne · Jun–Jul 2026.
From the blog →
GTM & Strategy11 min
How GTMLab built Ashley Hotel Group's direct booking engine across 6 properties.
GTM & Strategy9 min
AI Alone Is Useless — Why I Built GTMLab.
Performance Marketing11 min
Building a growth system, not a campaign treadmill.
Performance Creative12 min
How to audit your creative without hiring an agency (yet).
Join the bench
CareersJoin our team
100 specialists. Operator-grade pedigree. Currently hiring 5 senior roles.
5Open roles
6+Countries
100+On bench
Our story
AboutAbout GTMLab
Operator-led, senior-only, built by tech-founders.
2024Founded
~100Senior marketers
200+Teams shipped for
Book a call →

Still paying for guesswork?

Free 30-min teardown · no obligation · 200+ teams shipped

Book a call →
GTMLab

Paid ads growth — and nothing else. Five disciplines, one engine, every dollar traced.

Available for Q3
Jakarta · GMT+7 · global delivery

Services

  • Performance Marketing
  • Performance Creative
  • Funnel Strategy & CRO
  • Data & Analytics
  • GTM & Growth Lab

Our Work

  • Case Studies
  • Clients
  • Proof
  • Testimonials
  • Industries

Resources

  • Blog
  • Growth Letter (soon)
  • Teardown Library (soon)
  • Events
  • Talks

Company

  • About
  • Careers
  • Contact
© 2026 GTMLAB.AI · 200+ growth teams · $20M+ ad spend operated
Resources  /  Attribution
AttributionHealthcareWellness+2Google AdsMeta

Why attribution is broken in 2025 — and the four fixes that work.

Last-click is lying to your CFO. Here’s what we learned rebuilding the attribution stack on $20M+ of operated spend.

Albert Lie
Co-Founder · Oct 14, 2025 · 12 min read

If you opened your CFO’s ROAS dashboard this morning and the number looked too good, congratulations: your attribution is lying. If it looked too bad, also congratulations — the lie just runs in the other direction. Either way, you are not measuring what you think you’re measuring, and the gap between “what the dashboard says” and “what the bank account does” has gotten wider every quarter since 2021.

We’ve spent the last three years rebuilding the attribution stack on $20M+ of operated spend across 200+ growth teams. Some of the rebuilds were surgical. Some were salvage operations. The patterns are the same. This post is what we’ve learned.

The signal got worse, fast

Three things happened between 2021 and 2025 that broke client-side tracking for almost every paid channel.

iOS 14.5 introduced ATT and gutted Meta’s pixel-level signal. The remaining click-through events became modeled estimates, and the modeling got more aggressive year over year. By 2024, a meaningful share of “reported conversions” in any Meta ad account is no longer a conversion at all — it’s a probabilistic guess based on aggregated post-event signal.

Safari ITP and Firefox ETP started capping first-party cookie lifetime to 7 days, then to 24 hours for some scripts. Most attribution windows are 30+ days. The math broke quietly.

Third-party cookies began their slow deprecation in Chrome — partial, repeatedly delayed, but real. Display, retargeting, and view-through measurement on the open web have already lost most of their fidelity, and the writing on the wall is what every senior media buyer is reading.

The signal got worse, but most reporting dashboards kept reporting like nothing happened. That’s the lie.

The platforms responded by leaning harder on modeling. Google’s conversion modeling, Meta’s post-event attribution, TikTok’s VTA — all of them turned dials toward “estimate more, observe less.” That’s rational from the platform’s perspective. From the advertiser’s perspective, it means the conversions credited to your campaigns are increasingly statistical fiction.

Last-click is a fairy tale

Last-click attribution was always a fairy tale, but in 2025 it’s a fairy tale told by someone who’s lost half their library. The remaining clicks the system can see are even more skewed toward the bottom of the funnel than they used to be, because:

  • Branded search still tracks cleanly — people search your brand, click, convert. Easy. Last-click loves it.
  • Cold prospecting via Meta now relies on modeled conversions stitched from anonymized signal. Last-click sees half of what actually happened, at best.
  • YouTube, TikTok, Display — the channels where the customer first hears about you — get systematically under-credited because the click that closes the deal is almost always somewhere else.

The predictable result: most accounts cut their prospecting spend, double down on branded search, and then wonder why blended CAC slowly climbs while reported ROAS goes up. The dashboard celebrates. The bank account doesn’t.

Four fixes work. None of them are new. All of them require commitment to running differently from how most agencies run.

Fix #1: Server-side everything

Move every important conversion event to server-side. This is not optional anymore.

The mechanics: instead of a pixel firing in the browser when a user converts, a server-side container (GTM Server, Stape, RudderStack, Segment — we’ve shipped on all of them) fires the event from your infrastructure to the platform’s conversion API. This bypasses browser-level restrictions (ITP, ad blockers, third-party cookie blocking) and dramatically improves the platform’s ability to match the event to a user.

The proof point: Event Match Quality on Meta. On client-side pixel, EMQ for most accounts sits around 4–6 out of 10. Move to CAPI through a server-side container with proper user-data hashing, and EMQ climbs to 8–10. The same conversion event, transmitted differently, is worth ~30–40% more to the algorithm.

What “more” means in practice: more conversions credited (because more matches), tighter optimization (because the algorithm has cleaner signal to learn from), better lookalike audiences (because the seed data is bigger). It compounds.

Fix #2: Offline conversion import

Most B2B and considered-purchase funnels don’t convert in-session. A lead form submission is not a customer. A booked consult is not yet revenue. Last-click attribution stops at the form. The CRM picks up the story from there. The two systems never talk.

Fix it by stitching them. Offline conversion import (OCI) is the mechanism: the CRM pushes events back to the ad platform when a lead becomes a paying customer (or a booked appointment, or a closed deal), with the original click ID stitched to the event. The platform then knows which ad — which ad set, which campaign, which creative — produced that revenue, not just that lead.

This single change reframes the conversation in every monthly review we’ve run for healthcare and B2B clients. The CMO stops saying “we got 240 leads last month” and starts saying “we got 42 booked patients from Google, 11 from Meta, and our blended CAC by booked patient is $312.” The CFO leans in. The conversation changes.

The data hygiene that makes this work

OCI requires that gclid, fbclid, and equivalent click IDs are captured at lead-submission time and stored on the lead record in the CRM. That’s a 90-minute integration job most agencies skip. Done well, it’s the single highest-leverage piece of plumbing in the entire stack.

Fix #3: Cohort-based ROAS

Single-month ROAS is a single-purchase metric. Most categories — wellness, healthcare, subscription, marketplaces — are multi-purchase businesses. The metric and the business don’t match.

Cohort-based ROAS fixes this by tracking revenue by acquisition month, then projecting forward at month-3 and month-6 checkpoints. The metric becomes “the customers we acquired in March generated $X by June, $Y by September, $Z by December.” That number can be projected, modeled, and trusted in a way single-month ROAS cannot.

For wellness brands specifically, we’ve watched accounts triple their paid budget on the back of a properly modeled month-6 cohort ROAS where month-1 ROAS would have suggested cutting spend by 40%. The difference between the two numbers is whether the brand chooses to scale or stall. The business doesn’t change; the lens changes; the outcome diverges.

Fix #4: Creator-stitched attribution

For consumer brands — especially wellness, beauty, and supplement D2C — creators now drive a large fraction of revenue, often 30–50%. Most accounts attribute none of it. Creator spend goes into a black box; conversions sit in “direct” or “organic social” on the dashboard; the feedback loop never closes.

Stitch it. Three layers:

  1. Creator-specific UTM codes on every link the creator posts. The code carries the creator’s ID, the platform, the campaign, and the date.
  2. Post-purchase “how did you hear about us?” survey on the order confirmation. Multi-select. The data’s rougher than UTM-stitched conversions, but it captures the creators whose content didn’t get a click but did get a sale.
  3. Weekly creator-level ROAS report, computed from the stitched data and aged at the same cohort cadence as the rest of your paid. Top performers get paid amplification; under-performers get rotated out.

This is the most operationally heavy of the four fixes. It also produces the largest single behavioral change in how the brand spends. Once the data is on the table, the conversation goes from “we work with 47 creators” to “we work with 12 creators that produce 80% of attributable creator revenue — let’s amplify those.”

What this looks like in practice

The accounts we’ve rebuilt this way share a few visible markers six months in:

  • The blended CAC line on the dashboard agrees with the CRM-side blended CAC line, plus or minus 10%. (Before the rebuild, divergence of 40–60% is the norm.)
  • Branded search budget gets cut. Prospecting budget gets increased. Total paid spend usually goes up, not down, because the team has finally found the channels that were under-credited and is willing to scale them.
  • Monthly business reviews stop being about ROAS arguments and start being about cohort projections. The CFO joins. The conversation is shorter.

The fixes aren’t hard to describe. They are hard to commit to. Each one requires saying “the dashboard I’ve been staring at for years is wrong, and the new number will look worse before it looks better.” That’s the part most teams choke on. The teams that don’t are the ones that compound.

The bottom line

Attribution in 2025 is broken in a way that’s structural, not cyclical. The platforms aren’t going to fix it for you. The browsers aren’t going to roll back ITP. The regulators aren’t going to ease ATT. The signal that you used to get for free is gone, and the only way back to a clean read on your paid acquisition is to rebuild the plumbing.

Server-side conversions. Offline import to and from the CRM. Cohort-based ROAS. Creator-stitched attribution. None of these are new ideas. All of them are things most accounts haven’t shipped. The accounts that ship them stop arguing about whether paid is working and start arguing about how to scale it.

If you want the second conversation instead of the first, the rebuild starts with the plumbing.

On this page
The signal got worse, fastLast-click is a fairy taleFix #1: Server-side everythingFix #2: Offline conversion importFix #3: Cohort-based ROASFix #4: Creator-stitched attributionWhat this looks like in practiceThe bottom line
About the author
Albert Lie
Co-Founder

Co-founded GTMLab in 2022 after a decade leading paid acquisition for marketplaces and consumer brands across SEA, HK, and India. Writes about the operator side of growth.

Share this article
Keep reading

More field notes from the bench.

Attribution
AttributionWellnessEcommerceMeta AdsTikTok Ads+1
AUGUST 4, 202510 min

Why first-purchase ROAS lies in supplement D2C — and what to optimize for instead.

ROAS is a single-purchase metric. Wellness is a multi-purchase business. Here's the cohort model that breaks the lie.

Albert Lie
Co-Founder
Attribution
AttributionWellnessEcommerceAffiliate & CreatorTikTok Ads+1
SEPTEMBER 10, 20257 min

Creator attribution without the spreadsheets — what actually works.

Wellness brands run 30-50% of their growth through creators, but most can't tell which one drove what revenue. The stack we shipped to fix it.

Anna Tan
Creative Director
Let’s get started

Audit your attribution stack in 30 minutes.

Server-side tracking review of your current setup
Offline conversion import gap analysis
Three specific moves your team can ship next week

“The accounts that ship the four fixes stop arguing about whether paid is working and start arguing about how to scale it. The conversation changes. Everything downstream follows.”

Albert Lie
Co-Founder
★★★★★
Trusted by 200+ growth teams