TV & CTV
Linear TV spike attribution from post-logs, CTV impressions with household matching, and the connected-TV app platforms supported by the SDK.
Updated 2026-09-02
Linear TV#
Upload post-logs with POST /api/v1/tv-airings (or CSV under TV):
{ "airings": [ { "network": "ATV", "program": "Evening news", "region": "TR", "aired_at": "2026-09-01T19:32:00+03:00", "spot_length_sec": 30, "cost": 8500, "campaign_external_id": "tv-sep", "window_min": 8 } ] }For each airing the engine compares site / app traffic in the window_min minutes after the spot to the same-minute baseline from the previous 4 weeks (excluding other spots) and attributes the lift — clicks, installs, conversions — to the airing. Regional airings only consider traffic from that region. Results appear per airing and per network / program / daypart with cost-per-incremental-install.
CTV impressions#
Connected-TV campaigns fire the impression pixel from VAST tags (p=roku, p=samsung, …). Because TV devices share the household network with phones, installs on other devices are matched by the household hash (/24 IPv4, /48 IPv6) within householdWindowHours.
CTV apps#
The CTV SDK (sdk/ctv) supports: tvOS, Android TV, Fire TV, Roku (BrightScript), Samsung Tizen, LG webOS, Windows, macOS, PlayStation, Xbox, Nintendo, and web. Platform values for POST /api/sdk/v1/install: tvos, android_tv, roku, fire_tv, samsung_tv, lg_tv, windows, macos, playstation, xbox, nintendo, web.
Reporting#
TV dashboard: lift per airing, response curves by minute, best dayparts and networks, CTV impressions → household installs, and blended CPI including TV cost.