Attribution is the messiest topic in marketing. The reason: every platform's "conversions" column is reported from their point of view. If Meta saw the user click an ad and convert later that day, Meta claims credit. If Google saw the same user search your brand name and convert, Google also claims credit. Add it up across five networks and your "conversions" total can be 2–3× your real number of customers.
Why over-counting happens
Each ad platform's conversion model has a "lookback window" — usually 7 or 28 days for clicks, 1 day for views. Anyone who touched any of your ads in that window gets credit if they convert. Multiple platforms each claim the same conversion as theirs.
The four attribution models you'll see
Last click
The platform that delivered the final click before the conversion gets 100% of the credit. The default in Google Analytics for years.
Strength: simple. Weakness: radically over-credits "closer" channels (branded search, email, retargeting) and starves "discovery" channels.
First click
The platform that delivered the first click gets 100% of credit.
Strength: rewards discovery channels. Weakness: ignores everything that happened in between (and most users have many touches).
Linear
Credit is split evenly across every touch in the path. If the user saw a Meta ad, then a Google search ad, then a retargeting ad, then converted — each gets 33%.
Strength: fair. Weakness: doesn't reflect that some touches matter more than others.
Data-driven (Google's default in GA4)
Machine learning splits credit based on actual conversion paths from your account. The closest thing to a "true" answer for big accounts; meaningless on small accounts where there isn't enough data.
Strength: account-specific. Weakness: opaque and platform-bound.
What to actually do
1. Pick one source of truth — your CRM, not a platform
Your CRM (or Stripe / Shopify / etc.) knows the real number of paying customers in a period. That's your denominator. Don't add up "conversions" from each platform — that always over-counts.
2. Use UTM parameters on every ad URL
Every ad's destination URL should have a UTM tag: ?utm_source=google&utm_medium=cpc&utm_campaign=spring-sale. When the user converts, your form / order can capture the first-seen UTM and assign it to the contact.
3. Watch first-touch and last-touch separately
Don't pick one. Look at both:
- First-touch attribution tells you which channel is bringing in new customers.
- Last-touch attribution tells you which channel is closing.
A platform that's strong on first but weak on last is a discovery channel — keep it, it's filling the funnel. A platform strong on last but invisible at first is a closer — keep it for retargeting and branded search.
4. Run incrementality tests
The honest way to know if a platform is working: turn it off in one geography for two weeks, leave it on elsewhere, and compare. If revenue drops only in the off-region, that platform was incremental. If revenue stays flat, that platform was just claiming credit for sales that would have happened anyway.
The "Google branded search" trap
If you bid on your own brand name in Google search, those ads will look like the highest-ROAS thing in your account. Of course — you're paying to bring customers who already know you back to your site. That's not incremental, that's tax. If you turn off branded search, most of those people will still find you organically.
Some businesses still buy branded search to keep competitors out of their results. That's defensible. But don't congratulate yourself for the low CPA — it's not a real performance number.
contacts count in the CRM (filtered by source UTM) or your Stripe revenue. We'll add a built-in "incrementality view" in a future release.