Skip to content

July 7, 2026

Attribution: How to Track What’s Actually Driving Sales — and Why Every Platform’s Numbers Lie a Little

Sale attribution

Run ads on two platforms for a month, then open the reports. Meta says it drove 40 sales. Google says it drove 35. Your store’s order count says you made 50 sales total — and some of those came from a customer who just walked in. Everyone is claiming credit for the same money, the math doesn’t add up, and you’re supposed to decide next month’s budget with it.

Welcome to attribution: the science of figuring out which marketing actually caused a sale — and the art of knowing how much to trust the answer. This post covers both halves: how to set up tracking properly (UTMs, pixels, GA4), and then the part most guides skip — all the ways the numbers go wrong, because they do, on every platform, for reasons that are structural rather than fixable.

What attribution actually means

A customer rarely sees one thing and buys. They see your Instagram Reel, ignore it. See a retargeting ad, click, browse, leave. A week later they Google your name and order. That’s three touchpoints and one sale — attribution is the set of rules deciding which touchpoint gets the credit.

The common rulebooks, in plain English: last click gives all credit to the final touch (simple, but systematically over-credits whatever happens to be last — usually branded search); first click credits whatever introduced you (over-credits discovery); linear and position-based split credit across touches by formula; and data-driven lets an algorithm assign fractional credit based on patterns in your data — which is what GA4 uses by default now. No model is “true.” They’re different accounting policies for the same messy reality, and knowing which policy produced a number is half of reading it correctly.

Step by step: UTM-tag your links

UTMs are the foundation — little labels added to your links so your analytics knows exactly where a visitor came from. They cost nothing, they’re platform-neutral, and they’re the one part of attribution you fully control. Here’s the whole system:

  1. Understand the three tags that matter. A UTM link is your normal URL plus parameters: utm_source (where the click came from — google, facebook, instagram, newsletter), utm_medium (the type of traffic — cpc for paid clicks, social, email), and utm_campaign (which effort — spring-sale, brake-video, gbp-post). Two optional extras: utm_content to tell ad variants apart and utm_term for keywords.
  2. Build the link. By hand, or with Google’s free Campaign URL Builder — paste your URL, fill the fields, copy the result. A finished link looks like:
    https://yoursite.com/brakes/?utm_source=facebook&utm_medium=cpc&utm_campaign=spring-brake-special&utm_content=video-a
  3. Pick naming conventions and never deviate. This is where UTMs quietly die: Facebook, facebook, and fb become three different sources in your reports. Decide once — all lowercase, hyphens not spaces, a fixed vocabulary for source and medium — and write it in a shared doc. Boring discipline, clean data.
  4. Tag everything you control. Ad final URLs (Google Ads can auto-tag — see below — but Meta and TikTok ads should carry manual UTMs), email links, social bio links, individual post links, QR codes on print, even your Google Business Profile website link. Untagged = invisible.
  5. Never UTM your own internal links. Tagging a link from your homepage to your services page overwrites the visitor’s real source with a fake one. UTMs are for arrivals from outside only.
  6. Verify in GA4. Click your own tagged link, then check Reports → Acquisition → Traffic acquisition. Your source/medium should appear. If it doesn’t, the tag is malformed — usually a stray space or a missing.

Free tool — no sign-up

Skip the hand-typing. Use our UTM Builder.

Everything this section just covered, as a tool: paste your link, tap a platform preset, and get a correctly tagged URL — lowercase enforced, conventions baked in, nothing you type ever leaves your browser.

Open the Free UTM Builder
Google Ads shortcutGoogle Ads and GA4 link natively: turn on auto-tagging (the GCLID parameter) and Google handles its own labeling with more detail than manual UTMs can. Manual UTMs remain the tool for everything Google doesn’t own — Meta, TikTok, email, organic social, print.

How the pixels work — Meta, TikTok, and Google

UTMs tell your analytics where visitors came from. Pixels tell the ad platforms what those visitors did after clicking — which is how the platforms report conversions and, more importantly, how their algorithms learn who to show ads to. Mechanically, they all work the same way:

  • A snippet of code on your site (the Meta Pixel, the TikTok Pixel, the Google tag) loads on every page and sets an identifier in the visitor’s browser.
  • Events report behavior back — page viewed, item added to cart, purchase completed, form submitted — each tied to that identifier.
  • The platform matches the identifier against people who saw or clicked your ads, and claims conversions accordingly: “this purchaser is the same person who clicked your ad Tuesday.”
  • The algorithm feeds on it. This is the under-appreciated part: conversion data isn’t just reporting — it’s targeting fuel. Platforms optimize delivery toward people who resemble your converters, which means a broken or starved pixel doesn’t just misreport; it makes your ads objectively worse.

Because browsers and privacy rules increasingly restrict cookies (more on that below), all three platforms now push a server-side companion — Meta’s Conversions API, TikTok’s Events API, Google’s enhanced conversions — where your website reports events directly from the server alongside the browser pixel. For a WooCommerce store, running pixel + server-side together, with events deduplicated, is the current correct setup, and it’s a genuine difference-maker in both reporting accuracy and ad performance.

GA4: the referee (with its own opinions)

GA4 sits on your site rather than inside any ad platform, sees traffic from all sources, and is therefore your closest thing to a neutral scorekeeper. Its default lens is data-driven attribution: an algorithm distributing conversion credit across the touchpoints it observed. Useful things to know: you can view the same conversions under different models in Advertising → Attribution to see how much the story changes (it changes plenty); attribution windows matter (GA4’s defaults differ from the ad platforms’, which is one reason the numbers never reconcile); and GA4 only sees what happens on your website — it cannot see the ad views, the store walk-ins, or the DM conversations that also drove sales.

Practical setup: mark your real conversion events (purchase, form submit, phone click) as key events, link Google Ads, and lean on Traffic acquisition + Attribution reports as your cross-platform tiebreaker.

Now the honest part: why the numbers are wrong

Set all of that up perfectly and your platforms will still disagree — with each other and with your bank account. Not because you botched the setup: because attribution has structural cracks. The big ones:

  • Every platform grades its own homework. Meta counts a Meta-touched sale, Google counts a Google-touched sale — and when a customer touched both, both claim it in full. Add the platforms’ dashboards together and you’ll routinely “have” more conversions than orders. None of them can see the others’ touches, and none has any incentive to under-count itself.
  • View-through conversions pad the score. Platforms may claim credit when someone merely saw an ad and later bought — no click involved. Sometimes the ad really did influence them; often they were buying anyway. Check which attribution setting your campaigns use (e.g., Meta’s 7-day click / 1-day view), because a “1-day view” conversion and a click conversion are very different animals wearing the same number.
  • Privacy changes broke the tracking — and modeling filled the gap. iOS’s App Tracking Transparency, Safari and Firefox cookie restrictions, and ad blockers mean a meaningful slice of visitors simply can’t be followed. The platforms’ answer is modeled conversions: statistical estimates of the sales they believe happened but couldn’t observe. Your dashboards now contain educated guesses presented with the same confident decimals as measured facts.
  • Last-click bias punishes the top of the funnel. In a last-click view, the Reel that introduced the customer gets nothing and the branded search they used to find you again gets everything. Judge channels purely on last click and you’ll defund the very content doing the introducing — then wonder why the “efficient” channels dry up.
  • Self-driving campaigns love your brand traffic. Broad automated formats (Performance Max and friends) will happily serve on searches for your own business name — intercepting customers who were already coming — and report those as conversions it “drove.” The dashboard ROAS looks heroic; the incremental reality is smaller. Brand exclusions and a skeptical eye are the tools here.
  • Cross-device and dark gaps. Research on a phone, buy on a laptop — the chain breaks. Hear about you in a group chat, a podcast, or over a fence — that’s “direct” or “organic” traffic in your reports, credit assigned to nobody. And the customer who saw the ad but walked in and paid cash exists in no dashboard at all unless your team asks.
The mindset that survives all thisPlatform numbers are directional instruments, not accounting. They’re excellent at comparing things inside one platform — ad A vs. ad B, this audience vs. that one — and unreliable as absolute truth about revenue. The moment you treat a dashboard ROAS as gospel, it starts making your decisions for you, and it has a conflict of interest.

How to get to a trustworthy answer anyway

  1. Triangulate three views. Platform dashboards (inflated, but great for in-platform comparisons), GA4 (conservative, sees all channels, misses offline), and the only number that can’t lie: total revenue vs. total marketing spend (blended return, sometimes called MER). When a platform’s story and the blended number disagree, believe the bank account.
  2. Watch trends, not absolutes. Meta claiming 40 sales when reality is 25 still tells you something real when it claims 60 next month under the same settings. Consistent measurement of a biased instrument beats constantly re-rigged “accuracy.”
  3. Run crude incrementality checks. The unglamorous gold standard: pause a channel for two or three weeks and watch total sales. If revenue barely moves while a dashboard swore that channel drove 30% of it, you’ve learned the most valuable fact in your marketing. (Geo tests and budget step-ups are gentler versions of the same idea.)
  4. Keep the human layer running. “How did you hear about us?” — on the phone, at the counter, on the form — catches everything the pixels can’t: word of mouth, podcasts, drive-bys, group chats. Tally it. It’s embarrassingly effective.
  5. Fix what’s fixable. Structural cracks aside, plenty of attribution error is just plumbing: missing server-side events, untagged links, inconsistent UTM naming, duplicate pixels firing double purchases, conversion events counting page reloads. An hour of cleanup — or a proper tracking audit — routinely changes the story the numbers tell.

The attribution setup checklist

  • UTM naming convention written down — lowercase, hyphens, fixed vocabulary
  • Every external link you control is tagged; internal links never are
  • Google Ads auto-tagging on; GA4 and Google Ads linked
  • Meta/TikTok pixels installed with purchase and lead events
  • Server-side events (Conversions API / Events API) running and deduplicated
  • GA4 key events marked for your real sale actions
  • You know each platform’s attribution window setting — and wrote it down
  • Brand exclusions reviewed on automated campaigns
  • Blended revenue-vs-spend tracked monthly alongside dashboards
  • “How did you hear about us?” asked and tallied by everyone customer-facing

Common questions

Meta and Google together claim more sales than I actually made. Which is lying?

Neither, technically — both counted every sale they touched, and customers touch multiple channels. That’s double-counting by design, not fraud. It’s also exactly why the blended revenue-vs-spend number belongs in your monthly review: it’s the only view where a sale can’t be counted twice.

Is attribution even worth setting up if the numbers are all a little wrong?

Absolutely — “a little wrong but consistent” is enormously useful, and “no tracking” is flying blind. The setup work (UTMs, pixels, server-side, GA4) is what makes the numbers directionally trustworthy. The mistake isn’t using imperfect data; it’s forgetting it’s imperfect.

What attribution window should my ads use?

Shorter, considered-purchase-appropriate windows keep you honest: for most small businesses, click-based windows (7-day click is Meta’s common default) with a skeptical eye on view-through. The deeper point: know what your setting is, keep it constant, and compare months only under the same rules — a window change mid-year makes your history unreadable.

Do I need a fancy third-party attribution tool?

At small-business scale, usually no. The free stack — disciplined UTMs, properly configured pixels with server-side events, GA4, and a blended-return spreadsheet — answers the budget questions you actually face. Paid attribution tools earn their keep at spend levels where a 5% allocation mistake costs more than the tool does.

What’s the single most common tracking mistake you see?

Tied: purchase events firing twice (duplicate pixel installs — inflates everything by ~2x), and the December problem — someone changed a conversion setting or naming convention months ago and nobody wrote it down, so year-over-year comparisons are quietly comparing different rulebooks. Both are found in an afternoon by an audit and cause months of bad decisions until then.

The short version

Attribution is the rulebook for crediting sales to marketing — and every scorekeeper you have runs a different rulebook with a thumb on its own scale. So build the plumbing properly: disciplined UTMs on everything you control, pixels with server-side events feeding the ad algorithms, GA4 as the neutral-ish referee. Then hold it all loosely: platforms double-count, view-throughs flatter, privacy gaps get papered over with modeled guesses, and last click starves the content that introduces you. Trust trends over absolutes, check the blended revenue-vs-spend number monthly, run the occasional turn-it-off test, and keep asking customers how they found you. Imperfect data, read honestly, beats perfect-looking data believed blindly — every single quarter.

Suspect your tracking is lying to you? A campaign and tracking audit finds the double-fired pixels, the misattributed brand traffic, and the leaks — in 72 hours, for a fixed price. Or tell us what the dashboards are claiming and we’ll tell you whether to believe them.

GP / QUOTE

Free quote — one business day

Tell us what you need. We'll tell you exactly what it costs.

Get a Free Quote →