← All playbooks·Digital attribution

Playbooks · Digital attribution

Link a TV exposure to a later app install

This job produces a TV-driven install count and an effective CPI for a TV flight, computed by matching spot air times to install spikes in the MMP. It feeds the channel mix decision on the media plan: keep, cut, or reallocate TV budget against digital channels with lower CPIs.

What you need first

  • As-run TV spot log with exact air second, channel, and GRP per spot, from the media agency's post-buy report
  • MMP install event export at minute-level granularity for the flight dates plus 2-4 prior weeks, from Adjust or AppsFlyer
  • TV campaign net cost, from the media invoice
  • Post-exposure match window or decay curve, from the TV attribution vendor if one is used, otherwise set from prior campaigns
  • Conversion lift or geo holdout test result if one ran in parallel, from the lift vendor or in-house test

The procedure

  1. Pull the as-run TV spot log, since networks preempt and shift the booked schedule, with exact air second, channel, and GRP for every spot in the flight
  2. Export MMP install events at minute-level granularity for the flight window and a 2-4 week pre-flight baseline period, split by organic and non-organic
  3. Calculate the baseline install rate per minute from TV-free hours in the pre-flight period
  4. Set the post-exposure match window, 10-20 minutes, per the TV attribution vendor's decay curve if one exists, and count observed installs in that window after each spot
  5. Subtract the baseline expectation from observed installs per spot to get incremental installs, then sum across all spots for total TV-driven installs
  6. Divide TV net cost by total incremental installs to produce the TV-driven CPI
  7. Reconcile against a conversion lift test result if one ran in parallel, and flag the estimate as provisional if none exists
  8. Report the incremental install count, CPI, and confidence caveat to the media plan

Worked through with numbers

Flight: 320 spots over 3 weeks on a Dutch commercial network, net cost €150,000. MMP export (Adjust) at 1-minute granularity shows a TV-free baseline of 3.2 installs per minute across the market. Match window set to 20 minutes based on the TV attribution vendor's decay curve. Observed installs in the 20-minute post-spot window average 91 per spot; baseline expectation for 20 minutes is 3.2 x 20 = 64. Incremental installs per spot: 91 - 64 = 27. Total incremental installs: 320 x 27 = 8,640. TV-driven CPI: €150,000 / 8,640 = €17.36. A parallel geo holdout test over the same 3 weeks shows 51,800 installs in TV-exposed regions against 43,900 in a population-matched holdout, a lift of 7,900 installs (18.0%), within 9% of the spot-level estimate of 8,640, so the spot-level number stands. Read: at €17.36 TV-driven CPI against a €9 blended paid-social CPI, TV costs about 1.9x more per install but reaches audience paid social can't scale into. Keep TV if paid social is near saturation, cut if it isn't.

Where it goes wrong

  • Match on the as-run log, since a 2-minute misalignment against the booked schedule breaks the post-exposure window match
  • Keep the match window tight, 10-20 minutes; a 60+ minute window pulls in noise from other channels' click-through and inflates the lift
  • Compute baseline and observed installs from total installs, since TV lifts organic search and direct app-store browsing too; filtering to paid-attributed installs only undercounts the true effect
  • Treat a single-market spot-level match as directional; confirm it against a geo holdout lift test, since same-time radio or OOH digital can confound the spot-level correlation

How to know it is right

Confirm the spot-level incremental estimate falls within about 10-15% of the conversion lift test's incremental figure before sending a CPI to the marketer.

Terms used