Ad Attribution Is Broken. Here's How We Actually Track What Works.
Facebook says it drove the sale. Google says it drove the sale. Your email platform says it drove the sale. They can't all be right. Here's how to figure out what's actually working.

Mark Cijo
Founder, GOSH Digital
Ad Attribution Is Broken. Here's How We Actually Track What Works.
I had a client last year who was spending $40K a month on ads across Meta, Google, and TikTok. According to Meta, their campaigns drove $180K in revenue. According to Google, their campaigns drove $150K in revenue. According to TikTok, their campaigns drove $60K.
Total claimed revenue: $390K.
Actual revenue that month: $210K.
Where did the extra $180K come from? Nowhere. Every platform was taking credit for the same customers, double and triple counting the same purchases, and inflating their numbers to look like the hero.
This is the attribution problem. And it is worse now than it has ever been.
After iOS privacy changes, cookie deprecation, cross-device behavior, and a dozen other factors, no single platform can accurately tell you which ad drove which purchase. And if you are making budget decisions based on what the platforms report, you are almost certainly misallocating money.
Let me walk you through how we actually figure out what is working.
Why Every Platform Lies (They Don't Mean To)
Let me be fair here. Meta, Google, and TikTok are not intentionally lying. They are each using their own attribution model, which by design gives themselves the most credit possible.
Meta's default attribution window: 7-day click, 1-day view. If someone saw your ad (didn't even click it) and bought within 24 hours, Meta claims that sale. If someone clicked your ad and bought within 7 days — even if they also clicked a Google ad in between — Meta claims it.
Google's default attribution: Data-driven attribution across Google touchpoints. Google gives itself partial credit for every Google touchpoint in the journey. If someone searched your brand name and clicked the organic result, Google still tries to attribute value to the Shopping ad they saw last week.
TikTok's attribution: Similar to Meta, 7-day click, 1-day view. But TikTok is even more aggressive because many TikTok views are passive (autoplay in the feed), and the platform still counts those as "views" for attribution purposes.
Klaviyo/email attribution: If someone received an email within the attribution window and then purchased, Klaviyo claims it. Even if that person clicked a Google ad, browsed for 20 minutes, and then bought directly. The email gets credit because it was "in the window."
Every platform is looking at the customer journey through its own lens and saying "I caused this." In reality, most purchases involve 5-8 touchpoints across multiple channels. The customer saw a TikTok ad, Googled the brand, clicked an organic result, signed up for email, got a welcome flow email, came back through a retargeting ad on Instagram, and then typed the URL directly to purchase.
Who gets credit? All of them claim it. None of them deserve 100%.
The Three Attribution Models That Actually Help
Instead of trusting any platform's self-reported numbers, you need models that look at the whole picture.
Model 1: Blended ROAS (The Simple Version)
This is the simplest and often most useful approach for brands spending under $100K/month on ads.
Formula: Total revenue divided by total ad spend equals blended ROAS.
That's it. You don't try to attribute individual sales to individual channels. You look at the total marketing investment and the total revenue output.
Example: You spend $40K across all paid channels. You generate $210K in total revenue. Your blended ROAS is 5.25x.
How to use it: Track blended ROAS weekly. When you increase spend on a specific channel, does blended ROAS go up, stay flat, or decline? That tells you whether the incremental spend is productive — regardless of what the individual platform claims.
Limitations: It doesn't tell you where to allocate within the $40K. If you are split 50/30/20 across Meta/Google/TikTok, blended ROAS can't tell you if you should shift to 40/40/20 instead.
Model 2: Incrementality Testing (The Gold Standard)
Incrementality testing answers the fundamental question: "Would this sale have happened without the ad?"
How it works: You turn off a specific channel or campaign for a defined period in a defined geographic region, and compare sales to a control region where the ads stayed on.
Example: You pause Meta retargeting ads for 2 weeks in California while keeping them running in Texas (similar population, similar customer base). If California revenue drops by 15% while Texas stays flat, you know Meta retargeting is driving approximately 15% incremental revenue.
This is the only way to truly know if a channel is working. Platform-reported ROAS can be 5x while true incremental ROAS is 1.5x. We have seen this happen. Brands spending big on retargeting that is mostly capturing sales that would have happened anyway through email or direct visits.
How to implement:
Start with your biggest spend channel. Turn it off in one market or for one audience segment for 2-4 weeks. Compare results to a control group.
The key is geographic or audience holdouts, not time-based tests. Turning ads off for a week and comparing to the previous week has too many confounding variables (seasonality, promotions, day of week).
Limitations: You need enough volume to get statistically significant results. If you are spending $5K/month on TikTok, a 2-week geo holdout probably won't have clear enough signal. This works best for channels with $10K+ monthly spend.
Model 3: Media Mix Modeling (The Sophisticated Version)
Media mix modeling (MMM) uses statistical analysis of historical data to determine the contribution of each channel to overall revenue.
How it works: You feed 12-24 months of data — ad spend by channel, revenue, seasonality, promotions, external factors — into a model that estimates the marginal contribution of each dollar spent.
What it tells you: "For every additional dollar spent on Meta prospecting, you generate $3.20 in revenue. For Google brand search, $8.50. For TikTok, $1.80."
This is how large brands allocate budgets. Instead of looking at platform-reported ROAS (which is inflated), they use MMM to understand true channel contribution and optimize allocation accordingly.
Limitations: You need a lot of data (12+ months minimum). You need variance in spend (if you spend the same amount every month, the model can't distinguish the channel's effect from the baseline). And the models are backward-looking — they tell you what worked, not necessarily what will work as you scale.
The Practical Attribution Stack We Use
For most eCommerce brands doing $1M-$20M, here is the attribution approach that gives the clearest picture without requiring a data science team:
Layer 1: Post-Purchase Survey ("How did you hear about us?")
Dead simple. Add a post-purchase survey to your order confirmation page. "How did you first hear about us?" with options like Social media ad, Google search, Friend referral, Email, Podcast, TikTok, Other.
This gives you directional data on first-touch attribution from the customer's own memory. It is not perfect — people misremember and oversimplify — but it is useful.
Key insight: Post-purchase surveys consistently show that Meta and TikTok ads drive more initial discovery than Google or email. But Google and email are where people convert. This matches the "discovery vs. conversion" model that platform-reported data obscures.
Layer 2: UTM Discipline
Every single link you publish — every ad, every email, every social post — should have proper UTM parameters. Every one.
Source, medium, campaign, and content should be filled out consistently. Your Google Analytics then becomes a reliable record of which links people actually clicked before purchasing.
The key is consistency. If one team member tags Meta ads as source=facebook and another uses source=meta and a third uses source=fb, your data is useless. Create a UTM naming convention document and enforce it.
Layer 3: Blended ROAS Dashboard
Build a simple dashboard (Google Sheets works fine) that tracks:
- Total ad spend by channel (weekly)
- Total revenue (weekly)
- Blended ROAS (weekly)
- Channel-specific platform-reported ROAS (for directional reference)
Watch blended ROAS as you shift budgets. If you increase Meta spend by 20% and blended ROAS drops, Meta was less efficient at the margin. If blended ROAS stays flat or improves, the increase was productive.
Layer 4: Quarterly Incrementality Tests
Once per quarter, run a geo holdout test on your highest-spend channel. Pause it in one region for 2-4 weeks and measure the impact on total revenue in that region.
This is your reality check. It keeps you honest about whether platform-reported numbers are anywhere close to true incremental value.
Common Attribution Mistakes
Mistake 1: Optimizing each channel to its own ROAS target independently. If Meta reports 4x ROAS and Google reports 6x ROAS, it seems obvious to shift budget to Google. But if Meta is driving top-of-funnel awareness that eventually converts through Google brand search, cutting Meta spend will tank your Google performance too.
Mistake 2: Ignoring organic and direct traffic. Most attribution frameworks only look at paid channels. But if 40% of your revenue comes from organic search, email, and direct visits, you need to understand how paid media influences those channels. A Meta ad might not generate a click, but it might generate a brand search on Google 3 days later.
Mistake 3: Using last-click attribution for everything. Last-click gives 100% credit to the final touchpoint. This almost always over-credits Google brand search and email (because those are typically the last click) while under-crediting awareness channels like Meta, TikTok, and YouTube.
Mistake 4: Changing attribution windows to make numbers look better. If your Meta ROAS looks bad at 7-day click, switching to 28-day click will make it look better. But that doesn't mean Meta is actually performing better. It just means you are counting sales that happened a month after someone clicked an ad, during which a dozen other touchpoints also happened.
Mistake 5: Not accounting for organic growth. If your revenue is growing 20% year-over-year, some of that growth is from your brand getting more well-known, word of mouth, press, content marketing, and other non-paid factors. Attribution models that give all revenue credit to paid channels will overstate their contribution.
The Uncomfortable Truth
Here is what most media buyers and agencies don't want to hear: for most eCommerce brands, paid media is responsible for 30-50% of revenue, not the 80-90% that platform-reported numbers suggest.
The rest comes from organic search, direct visits, email, word of mouth, and brand equity. Paid media helps build brand equity and drives initial discovery, but the conversion often happens through other channels.
This doesn't mean paid media isn't valuable. It is crucial. But it means the way most brands evaluate paid media — by looking at platform-reported ROAS in isolation — leads to over-investment in some channels and under-investment in others.
The brands that figure out true attribution don't necessarily spend less on ads. They spend smarter. They allocate budgets based on real incrementality data, not inflated platform reports. And they consistently outperform competitors who are flying blind.
If you are spending $20K+ a month on ads and don't know which dollars are actually driving sales, you are guessing. And guessing gets expensive.
Book a call and let's figure out where your ad dollars are actually working.

Written by Mark Cijo
Founder of GOSH Digital. Klaviyo Gold Partner. Helping eCommerce brands grow revenue through data-driven marketing.
Book a free strategy call →