Measuring ROAS after IDFA without fooling yourself
A practical framework for combining SKAdNetwork, modeled conversions, and incrementality tests.
After IDFA, a lot of teams quietly replaced measurement with vibes. The dashboards still say "ROAS," but the number is now a modeled estimate resting on another modeled estimate, and nobody wants to say so out loud. Here is the framework we use to keep ourselves honest.
Three signals, ranked by trust
- Deterministic outcomes. SKAdNetwork postbacks and any first-party, consented data. Sparse and delayed, but real. This is your anchor.
- Modeled conversions. Platform-provided or built in-house. Useful for direction and pacing, dangerous as a source of truth. Always calibrated against signal 1.
- Incrementality tests. Geo holdouts and PSA tests that measure lift, not attribution. Expensive to run, so reserve them for validating the model, not for daily reporting.
The mistake is treating these as interchangeable. They are a hierarchy. When they disagree, the more deterministic signal wins and the model gets re-fit.
A monthly cadence that works
- Weekly: report modeled ROAS for pacing decisions, clearly labeled as modeled.
- Monthly: reconcile modeled numbers against the deterministic postbacks that have matured. Track the gap. A stable gap is fine; a widening gap means the model is drifting.
- Quarterly: run one incrementality test per major channel. Use the result to recalibrate, then throw the raw number away — it is a checksum, not a KPI.
What we report to partners
Advertisers on BidRole get modeled ROAS for speed, deterministic postbacks as they arrive, and the reconciliation gap between them. On campaigns above a spend threshold we will run an incrementality test on request. The point is not to have a perfect number. The point is to always know how wrong the number could be.
Turn the playbook into a campaign
We'll bring the inventory and the creative team. You bring the goal.