- What is marketing attribution, and how accurate can it actually be?
- Attribution is the practice of deciding which marketing touchpoint gets credit for a sale. The honest framing is that it is an estimate, not a measurement. Your bank statement measures revenue. Attribution guesses at cause, using whatever identifiers survived the trip from ad click to order. Since 2017 those identifiers have been progressively cut off, so every attribution number you now read contains a modelled component you cannot inspect. That does not make it useless. A stack that is roughly right and stable month to month is enough to make spend decisions with. Chasing the last few percent costs more than it returns, and anyone promising perfect attribution is selling you something.
- What is the difference between last-click, data-driven, multi-touch attribution and marketing mix modelling?
- Last-click gives 100 percent of the credit to the final click. It is simple, defensible, and systematically over-credits branded search, email and retargeting, because those are usually the last thing a buyer touches. Data-driven attribution compares converting and non-converting paths and splits the credit statistically. Google Ads and GA4 now offer only data-driven and last-click variants; the linear, time-decay, position-based and first-click models were retired in 2023. Multi-touch attribution is the wider family that distributes credit across every touch, which requires recognising the same person across sessions, devices and platforms. Marketing mix modelling ignores individuals entirely and infers each channel's contribution from aggregate weekly spend and revenue.
- Which attribution model belongs in a business turning over $2M to $20M?
- In-platform data-driven attribution for tactical decisions, reconciled monthly to the CRM, with a quarterly incrementality test as the strategic check. That is the whole answer for most operators in this band. Cross-platform multi-touch attribution in a third-party tool needs unified CRM data carrying channel and timestamp at the lead level, plus somebody whose actual job is to read the dashboard. Without both, it produces confident numbers nobody acts on. Formal marketing mix modelling needs roughly two years of weekly data with real spend variance per channel, and rarely pays back below about $250K a month in spend. Below that, plot weekly spend against weekly revenue per channel and look for the bend in the curve.
- What did iOS 14.5 App Tracking Transparency actually change, and what did it not change?
- From April 2021, iOS apps had to show a prompt before tracking the user across other companies' apps and websites, and most users declined. The IDFA went dark, so Meta lost the deterministic link between an impression served inside its app and a conversion on your site. The pixel and the Conversions API still send events. What changed is what Meta is allowed to do with them: web conversions from iOS users who did not grant permission are processed through Aggregated Event Measurement, which limits you to eight prioritised conversion events per verified domain and, for those users, credits only the highest-priority event that fired. An ad set optimising for an event outside those eight cannot serve against that traffic at all, which is why event prioritisation is a commercial decision and not a tagging chore. What did not change: tracking on your own site, your CRM, Android, search intent on Google, and your ability to send conversions from your own server. ATT is also separate from Safari's tracking prevention, which was already running from 2017 and continues on its own timeline.
- Why does Meta report more revenue than our accounting system does?
- Four mechanisms inflate the number directly, and a fifth explains the rest. View-through windows credit ads that were shown and never clicked. Cross-platform double counting means Meta and Google each claim the same order in full, so the platform totals sum to more than you banked. Pixel and server events that are not deduplicated on a shared event ID count the same purchase twice. And a conversion set to fire on a thank-you page view rather than on a real order counts refreshes, bookmarks and repeat visits as revenue. Those four we find and fix. The fifth is indirect and matters more than it looks: consent tooling that blocks the call, ad blockers, and browser tracking prevention all remove real events before they reach Meta. Blocked events do not simply drop out of the report, they get replaced by a modelled estimate you cannot audit, and an estimate built on a thinner signal has more room to overshoot. Fixing the first four is a configuration job. Shrinking the fifth means sending the events from your server instead of the browser.
- What is a view-through conversion, and should we count it?
- A view-through conversion is credited when someone was shown your ad, did not click it, and converted inside a set window. The two platforms handle it differently and the difference is the whole point. Meta caps the view window at one day and folds those conversions into the headline results by default, so the ROAS on your dashboard already contains them unless you deliberately break them out by comparing attribution settings. Google Ads goes the other way: view-through conversions sit in their own column rather than in the Conversions column, but the view-through window on the conversion action can be set as wide as 30 days. Widening it is the fastest way to make a dashboard look better without changing anything real, because a wider window sweeps in organic, brand search and email conversions that were going to happen anyway. The working rule: keep view-through revenue in its own column, never blended into a headline ROAS figure, and never scale a channel on a number that turns out to be mostly view-through.
- What are modelled conversions, and how much should we trust them?
- When a platform cannot match a conversion to a person deterministically, it estimates one statistically from the users it could observe. Both Meta and Google blend observed and modelled conversions into the same reported figure and neither publishes the split, so any rule telling you to hold the modelled share under some threshold is a number you cannot go and check. Watch the inputs instead, because those you can see. Three of them: the share of orders or leads in your CRM that arrive with a click ID captured at the point of conversion, the share carrying a hashed email you have permission to send, and Meta's Event Match Quality read per event type. When those three fall, the modelled portion is rising whether or not anything in the dashboard says so. The model is only as good as the signal feeding it, so a broken event setup produces confident wrong estimates rather than obvious gaps. And never compare a modelled platform number to a CRM number and conclude the CRM is wrong. Reconcile first, then decide.
- How do we reconcile ad platform numbers back to the bank?
- Pick one source of truth and make everything else report to it. Ours is the CRM or the commerce platform, cross-checked against the bank monthly. Then build one view with three columns for the same period: platform-reported revenue per channel, CRM revenue tagged to that channel, and the gap as a percentage. Two things will break that comparison before you start. The platforms credit a conversion back to the date of the ad click, not the date of the order, so a seven-day click window smears revenue across your month boundary and creates a gap that is not real. And the ad account reports in whatever time zone it was set up in, which is often not the one your CRM runs on. Sort the date basis and the time zone first, pin the attribution window so it is identical every month, then compare order counts as well as dollars, because a currency or double-count problem shows up in one and not the other. The target is not zero. It is a gap that is small and stable. Under five percent is healthy, and a gap that widens by more than five points in a month means something broke quietly.
- What does server-side tagging fix, and what does it not fix?
- It fixes signal loss in the browser, and how much it fixes depends on where the event starts. Events sent to a subdomain you control survive the tracking prevention and blocklists that strip calls to platform domains, but that is a large reduction, not immunity: extensions and browsers like Firefox and Brave can still block a tagging subdomain once the pattern is known, and an event that begins in the browser still dies with a dropped connection. The events worth the most are the ones that never touch the browser, fired from your backend or from the commerce platform's order webhook when the order is actually created, because those arrive regardless of the device, the network or the blocker. Server-side also gives you one place to attach hashed first-party data at the moment of conversion instead of depending on a cookie Safari clears after seven days, one place to deduplicate on an order or lead ID, and one place to apply consent rules consistently across every platform. What it does not fix: a funnel that does not convert, an offer nobody wants, a CRM that never records which channel the lead came from, or a consent banner that was blocking the call in the first place. It moves plumbing, not economics.
- What is Event Match Quality and what score should we be aiming for?
- Meta scores each conversion event you send from 0 to 10 on how many usable identifiers arrive with it. The ones that move it: hashed email, hashed phone, hashed first and last name, city, state and postcode, the FBP cookie, the FBC click ID, IP address and user agent, plus an external ID. That external ID has to be a stable person-level identifier such as your CRM customer ID, because Meta matches it against the same ID seen on earlier events and audience uploads. An order number is unique to a single transaction, so it matches nothing and adds nothing. The order ID has a different job: it is the deduplication key that stops the pixel and the server event counting the same purchase twice. A higher score means more conversions matched deterministically and less guessing, which improves both the reporting and how the bidding algorithm learns. Setups nobody has touched usually sit between 3 and 5. A clean server-side rebuild typically lands between 7 and 8.5. Read it per event type rather than as one number, because a strong Purchase score can hide a weak Lead score. Then check volume alongside it, since a high score on a third of your orders is worse than it looks.
- How do we know an ad actually caused the sale?
- You do not, from attribution alone. Attribution tells you which touchpoint was present. Incrementality tells you which one was necessary, and the only way to get that is to turn something off and watch. The practical versions at this scale are a geo holdout, where matched regions run with and without the channel, a brand-search pause over a defined period, and the conversion lift tests built into Meta and Google. Run one a quarter on the channel you are least sure about. The output is not a percentage in a dashboard, it is a comparison: with this channel running, revenue did X, and without it, revenue did Y. That comparison holds up in a finance meeting in a way a modelled number does not.
- When is attribution work not worth doing?
- Four situations. Under roughly $20K a month in paid spend, a rebuild costs more than it recovers, so fix the offer and the funnel first. When the funnel is not converting, better measurement makes the problem more visible without making it more profitable, so sequence the work. When a re-platform is coming in the next quarter, migrate first or you pay for the build twice. And when nobody in the business will change a decision because of the number, in which case the honest recommendation is to stop paying for reporting. Between $20K and $40K a month, the usual answer is a two-week diagnostic and a prioritised fix list rather than a full rebuild.