Early access · iOS

Know which ad
brought the install.

Web-to-app attribution for iOS ads on Meta and TikTok. Every install is matched to the click that caused it, with its confidence, and shown next to trials and revenue. No Meta or Firebase SDK in your app.

Live activity·Pulse Fitness
timeeventsourcedeviceoutcome
14:02:11clickmeta · summer-lookalike · ugc-v2iPhone · Berlin·
14:03:47installPulse Fitness · first openiPhone 15 Pro · BerlinMATCHED0.97→summer-lookalike
14:05:02clicktiktok · creators-q3 · hook-biPhone · Hamburg·
14:05:19clicktiktok · creators-q3 · hook-biPhone · Hamburg·
14:06:40installPulse Fitness · first openiPhone 13 · HamburgAMBIGUOUS2 candidates · not counted
14:09:12eventtrial started · $59.99 / yrvia RevenueCat→summer-lookalike
What you get

From a link in your ad to revenue per campaign

Built for iOS apps that buy installs on the web and want to know what each ad is actually worth.

ROAS per campaign

Clicks, installs, trials, revenue and spend for every campaign. The click IDs and macros Meta and TikTok already put in your URL do the naming, so your dashboard reads like your Ads Manager.

Matches you can defend

Every install gets one of three outcomes: matched, ambiguous or unmatched. A match carries its confidence. An ambiguous one is shown, not counted, so over-attribution never inflates your ROAS or your invoice.

Nothing to explain in App Review

One small SDK, as a Swift Package or for React Native, reporting a first open. No Meta SDK, no Firebase, no ad network code in your binary, and no third-party tracking prompt.

How it works

Live in an afternoon

No SDK from the ad networks, no server of yours to touch. Three things, in this order.

  1. destination url
    appdownload.link/pulse
    ?fbclid=IwAR2x…&utm_campaign={{campaign.name}}&campaign_id={{campaign.id}}
    Step 1

    One link for all your ads

    Your app’s link is the destination of every ad on Meta and TikTok, with each network’s URL parameters. The network adds its click ID and fills in the campaign; the tap is recorded and the person is sent straight on to the App Store.

  2. // AppDelegate.swift
    import TrueOrigin
    
    TrueOrigin.configure(apiKey: "to_…")
    Step 2

    Add the package

    A Swift Package or the React Native module, and one call at first open. iOS 15 and up, and nothing runs in the background.

  3. campaignclicksinstallstrialsrevenue
    summer-lookalike1,20441238$2,281
    creators-q396824017$1,020
    Step 3

    Read revenue per campaign

    Installs appear in the dashboard seconds after the first open. Trials and purchases arrive through RevenueCat webhooks and land on the campaign that brought the install.

Request access

We’re onboarding a few iOS apps at a time.

Book a call with the founder, or tell us about your app and where you buy installs. You’ll hear back from the founder, not a sequence, and early partners shape what gets built next.

iOS 15+
Swift Package or React Native
Per install
priced on matched installs, never seats
Meta · TikTok
with RevenueCat for trials and revenue
Where you run ads

No newsletter. We only use this to get back to you.

Stop guessing
which ad worked.