Adropic/Documentation
Documentation

Measurement and attribution

Conversion tracking, attribution windows, and what platform reports cannot see.

Attribution is a set of rules for deciding which ad gets credit for a sale — not the truth itself. Different rules look at the same account and produce different answers. Getting measurement right is not about picking the correct rule; it is about knowing where the rule is wrong.

How signal flows

LayerFunctionTypical loss
Browser pixelCaptures on-site eventsAd blockers, cookie restrictions, ITP
Server-side APISends the event from your serverMissing parameters, late delivery
MatchingTies the event to a userWeak customer data (no email, no phone)
ReportingCredits the event to an adAttribution window and model differences

The browser pixel alone has not been sufficient for years. Server-side delivery (Conversions API on Meta, enhanced conversions on Google) both recovers lost events and improves match quality. If match quality is poor, server-side integration will not save you — send hashed email, phone, name and location fields as completely as you can.

Attribution window

The window answers: "how many days after seeing the ad should I still credit the sale to it?" Widening the window does not improve performance; it just assigns more sales to the channel.

WindowWhen it fits
1-day clickShort consideration, impulse purchases
7-day clickThe default for most ecommerce
7-day click + 1-day viewVideo-heavy accounts with upper-funnel investment
28 days or moreLong sales cycles, high-ticket products

Changing the window breaks comparison with prior periods. Pick one, keep it fixed across the account, and state which one your reports use.

UTM discipline

The platform report is the channel's own claim; your analytics is your record. To compare the two you need a consistent UTM taxonomy.

utm_source   = platform          (meta, google, tiktok)
utm_medium   = traffic type      (paid_social, cpc)
utm_campaign = campaign name     (winter-sale-2026)
utm_content  = creative identity (ugc-hook-a-9x16)

The rule is simple: lowercase, no spaces, one fixed abbreviation standard. If you do not break utm_content down to the creative level, your analytics will never tell you which asset actually sold.

The structural problem with platform reports

Each platform sees only its own impressions and claims credit on its own window. That has three direct consequences:

  • Overlap. The same sale can appear in both the Meta and Google reports.
  • Harvesting. A retargeting ad shown to someone who was already going to buy claims a sale it did not create.
  • Invisibility. The upper-funnel video that triggered a branded search loses the credit to the search campaign.

This is why allocating channel budgets purely on platform ROAS systematically overfeeds the bottom of the funnel and starves the top.

Incrementality: measuring causation

The only real question is: if I stopped this spend, would these sales still happen? Attribution cannot answer it. Experiments can.

MethodHow it worksWhen it fits
Geo testAds run in some regions, are held back in others; the gap is measuredBrands spending at national scale
Audience holdoutA percentage of the audience is never shown adsWhen the platform has a built-in lift tool
Blackout testA channel or campaign is fully paused for a set periodSmall budgets — the most practical option

The cheapest starting point is a blackout test: pause the campaign you suspect for two weeks and watch total revenue. If total revenue does not fall, that spend was not producing sales.

Never run a blackout test across a peak season, a promotion, or an inventory change. You will not be able to read the result.

Practical setup order

  1. Set up server-side conversion delivery and check match quality
  2. Choose one attribution window and lock it
  3. Push the UTM taxonomy down to the creative level
  4. Start weekly MER tracking
  5. Run an incrementality test on your largest line item once a quarter
Measurement and attribution — Adropic