Linkrunner for OTT, Media and News

Attribution for streaming, audio and news apps, title by title

Tie every trailer, creator post and match-day campaign to the viewer who pressed play, finished the trial and paid. Each link opens the exact show, episode or article, even after a fresh install.

Streaming, audio drama and news teams measure installs to first play and paid subscription with Linkrunner

Customers include SnapTV, The Tatva, Flick TV, Piku TV, SermonTV, TIMIO News.

SnapTVThe TatvaFlick TVSermonTVTIMIO News

Optimise on the viewer who pays or keeps watching

For subscription tiers, the value event is the first paid subscription; for ad-supported tiers and news, it is a watch-time threshold such as 10 minutes watched or three articles read. A viewer who never presses play is worth nothing to either model, so installs alone tell you little. Every post-install event stays tied to the attributed install, whether it happens on day 0 or day 40.

  1. Install
  2. 1First play or first article openedSame sessionProves the deep link landed on content and the creative matched the title
  3. 210 minutes watched (or 3 articles read)Day 0 to day 2Best early predictor of a D7 return for ad-supported and news apps
  4. 3Free trial started (RevenueCat TRIAL_STARTED)Same session to day 1Intent signal only, ahead of trial-to-paid conversion; carries no revenue
  5. Optimise on thisFirst payment (RevenueCat FIRST_PAYMENT, or server API for web)Day 3 to day 30, depending on trial lengthThe value event for subscription tiers; the first real money
  6. 5Subscription renewedDay 30 onwardsSeparates campaigns that bring payers from campaigns that bring one-month viewers
Challenges

Why streaming and news attribution breaks in standard setups

Campaigns sell a title, so links must open that title

A trailer ad for one show or a creator post about one episode should land on that show, not the home screen. Linkrunner links are deferred by default, so the title, season and episode survive the install and open on first launch. Name campaigns by title and the dashboard ranks shows, not just channels.

See how deep links carry content through install →
  1. 1. Campaign destination

    https://get.example.com/product
  2. 2. The link a user taps, with your parameters

    https://get.example.com/AbCdEf?variant_id=987&promo=summer
  3. 3. getAttributionData() on first open after install

    {
      "deeplink": "https://get.example.com/product?variant_id=987&promo=summer",
      "campaignData": { "name": "Summer sale", "type": "INORGANIC" }
    }
  4. 4. Your app routes the user

    navigate("Product", { id: url.searchParams.get("variant_id") }) // 987

Release days and live sport bend every chart

A season drop or a big cricket match can triple installs for 48 hours, and a cheap spike can hide weak viewers. Give each release or match its own link and campaign, compare D1 and D7 retention against your baseline, and watch for click flooding when spend jumps.

See Fraud Control rules for high-spend days →
Templates
Click injection
Install hijacking
SDK spoofing
Installs from fraudulent clicks
Create rulePick a template
Checks installs when all matchClick to install time is under 3 secondsPlay referrer click timestamp is present
When it matchesTag only

Subscriptions arrive through the store and the web

Store purchases flow in through RevenueCat, but web checkouts never touch the store. Send those payments from your backend through the server API, so they credit the campaign that drove the install. Only completed payments count as revenue, and app payments are deduplicated by payment ID.

See how revenue tracking handles every payment route →
App SDKReact Native
await linkrunner.capturePayment({ amount: 4.99, userId: "user_2041", paymentId: "ord_88213", type: "FIRST_PAYMENT", status: "PAYMENT_COMPLETED",});
Or from your backendPOST /capture-payment
Payment recordedCompleted
Credited toIN_Prospecting_Sep+$4.99

TV and CTV ads drive installs that look organic

A viewer sees your show advertised on a connected TV, picks up a phone and searches the store, so the install arrives with no click. With CTV attribution, the CTV partner sends impressions to Linkrunner server to server, so installs driven by TV spend stop hiding inside organic.

See CTV attribution →
CTV impressions
From your CTV partnerServer to server
TimeCampaignHousehold IP
  • 20:14festive_tv_oct49.36.x.12
  • 20:14festive_tv_oct106.51.x.88
  • 20:13cricket_tv_oct122.171.x.4
  • 20:13festive_tv_oct157.45.x.30
  • 20:13cricket_tv_oct49.207.x.61
App install at 20:5249.36.x.12View-throughfestive_tv_oct

Where streaming and news teams find viewers who stay

  • Meta (Advantage+ app campaigns and Reels): Trailer cuts and episode clips work as Reels creatives, and the Creatives tab shows which clip brought paying viewers, not just the cheapest install.
  • Google App campaigns (YouTube and Search): Searches for a show or match name convert well; a deep link destination opens the searched title after install.
  • Creators on Instagram and YouTube: One link per creator per title, grouped under an Influencers channel. The social intermediary page gets viewers out of the Instagram in-app browser and into the store.
  • WhatsApp and push for news and live sport: Article and match links shared on WhatsApp open the story or the live stream, so returning readers land where the message promised.
  • CTV and TV: For releases backed by TV spend, CTV attribution moves installs driven by TV impressions out of organic.
  • ShareChat and Moj, Jio Ads: Regional OTT and audio drama apps reach Hindi and regional-language audiences on India-native inventory.

Frequently asked questions

Know which title brought your paying viewers

Live within a week, before your next release, with your first 25,000 attributed installs free.