Skip to main content
When you finish, an install that started from your ad reports the campaign, and the in-app purchase that follows attributes to it.

Before you start

  • Install the iOS or React Native SDK and confirm an app_install event in Events.
  • Connect your revenue source: RevenueCat, Superwall, or Stripe.
  • Use a physical device for every test. A simulator does not reproduce store handoff, App Tracking Transparency, or the install referrer.

The four bridges, in order of accuracy

A browser cookie can’t reach a native app, so we use four different bridges instead. Build the first two. Treat the last two as fallbacks.
  1. Open Track.
  2. Create a link and choose the app destination.
  3. Add the App Store URL and the Play Store URL.
  4. Use the link in your ad, keeping the platform’s click-ID macro intact.
The link records $link_click, then shows an interstitial on your own host that fires $app_download_click and forwards to the store. On Android, Datalyr appends the Play Store referrer parameter carrying dl_click_id, dl_click_id_type, and your UTMs. The SDK reads it after install. These click IDs pass through a link: fbclid, gclid, gbraid, wbraid, ttclid, sclid, msclkid, twclid, li_fat_id, epik, dclid.

Bridge by email

This is the only deterministic bridge on iOS.
  1. Turn on Auto-capture email in Settings → Identity & Attribution.
  2. Capture the email on your web landing page.
  3. Call identify() in the app with the same email trait.
The SDK asks us to resolve that email against the last 90 days of web sessions. A touch carrying a click ID always wins over a newer touch carrying only UTMs.

Bridge by client IP

After a first install, the mobile SDK asks Datalyr whether a recent web session shares the device’s IP address.
The ambiguity rule is what keeps this honest on carrier-grade NAT. Widening the window returns nothing more often, not less, because more visitors collide on one IP address.
A successful match records $web_attribution_matched with match_confidence: "probabilistic".

SKAdNetwork

  1. Set NSAdvertisingAttributionReportEndpoint in your app’s Info.plist to https://ingest.datalyr.com.
  2. Ship the build.
Apple posts to https://ingest.datalyr.com/.well-known/skadnetwork/report. The path is fixed by iOS, so it carries no workspace ID. Datalyr maps the postback to a workspace by its Apple app ID. We verify Apple’s signature and store the result either way, so a postback that fails verification is flagged rather than dropped.

Verify

  1. Uninstall the app from a physical device.
  2. Open your tracking link on that device.
  3. Install from the store and open the app.
  4. Open Events and confirm app_install arrives.
  5. Confirm the event carries utm_source or a click ID.
  6. Sign in to the app.
  7. Complete a test purchase.
  8. Open Conversions and confirm the row carries the same campaign.

When it does not work

Next