Attribution is broken when every platform claims credit for the same conversion. Meta says it drove the sale, Google agrees, your email tool agrees too. Add up the self-reported numbers and you have “acquired” each customer three times. When that is your data, every budget decision is a guess dressed up as a metric.
Attribution will never be perfect. Buyer journeys are messy, cross-device, and partly invisible. But you still set it up properly, because clean and consistent data is the closest you get to the truth, and the truth is what lets you make the right call on where to spend.
Signs your attribution is broken
- Platform numbers do not reconcile. The sum of platform-reported conversions is larger than your actual customer count.
- You cannot answer “which channel drives revenue?” without hedging.
- Browser-only tracking. No server-side events, so you miss conversions and misattribute the rest.
- Cost per lead, not per customer. You measure the cheap part of the funnel and ignore which leads actually close.
- Decisions made on the loudest platform. Budget follows whichever dashboard looks best, not whichever channel produces revenue.
How to fix attribution
1. Install server-side tracking
Set up GA4 and Google Tag Manager properly, then add server-side conversion tracking (Meta CAPI and equivalents). Server-side data is harder for platforms to inflate and catches conversions browser tracking misses.
2. Tie conversions to revenue events
Map tracking to actual revenue milestones (closed deal, paid signup), not just form fills. A channel that produces cheap leads that never close should look expensive, not cheap.
3. Build a single source of truth
Pull everything into one place (PostHog, Mixpanel, or a Looker Studio model on clean data) so you have one number per conversion instead of three competing claims. This is the dashboard budget decisions get made on.
4. Accept imperfect, insist on consistent
Stop chasing perfect attribution. Insist on consistent, server-side, revenue-tied data. Consistency over time is what reveals real trends and lets you reallocate with confidence.
What this looks like built
Fixing attribution from zero is often the first real deliverable in an engagement. For a B2B email platform, the build was attribution and analytics from scratch plus a PostHog dashboard across every channel and conversion stage, replacing total blindness with a single source of truth.
Fixing CAC and attribution at the same time
Most teams try to fix these in sequence: perfect the attribution first, then work on CAC. In practice the attribution project never ends, and CAC keeps rising while it runs. The faster path is to fix them together, with one rule: channel-level credit is for optimizing inside a channel; blended CAC is for deciding where the money goes.
Blended CAC is total acquisition spend divided by new paid customers over the same period. It does not care which platform claims the sale, and it does not shift when you change a tag.
Why your pipeline attribution keeps shifting
If channel credit moves every time you update tracking, the numbers are describing your tracking setup, not your buyers. Common causes:
- A new or duplicated tag starts firing on a page it did not fire on before
- UTM conventions change, so the same campaign appears under a new source
- A consent banner or browser change drops part of the browser-side data
- Someone changes the attribution model or lookback window in one tool but not the others
The fix is boring and it works: keep a changelog of tracking changes with dates, annotate them in your dashboards, lock the UTM naming rules, and move the conversions that matter to server-side events. Then compare blended CAC before and after any change. If blended CAC did not move but channel credit did, the business did not change; the measurement did.
How it worked at Enginemailer
Enginemailer, an established email-marketing SaaS, had no reliable full-funnel measurement. Customer feedback, reviews, support tickets, and pricing objections showed three groups buying for different reasons: founders and small businesses cared about subscriber-based pricing, marketers cared about deliverability, and developers and IT managers cared about API reliability.
Each group got its own ads, benefit explanation, and landing page leading into the self-serve product. Full-funnel tracking and a PostHog view across acquisition and conversion were installed before the paid test, so each journey could be followed from first click to paid account.
The paid test spent $950 in total: $550 on LinkedIn as a narrow qualification layer by role and company, $250 on Google, and $150 on Meta for cheaper retargeting. Over the two-month run it produced 850+ sign-ups and 450+ paid customers. The mix was judged by blended acquisition cost and paid conversion, not by asking each platform to award itself the sale. In a mix like this, the qualification layer tends to look expensive on its own platform numbers while retargeting claims the last click. Judging the blend keeps you from cutting the channel that makes the cheap one work.
The same approach is covered from the cost side in how to reduce CAC for B2B SaaS.
Clean attribution is the foundation everything else sits on. You cannot reduce CAC or build lead scoring on data you do not trust. It is the first thing a 90-day growth sprint installs.
Not sure which channels actually drive your revenue? Book a diagnostic call and I’ll audit your attribution. Or try the free growth tools.