Skip to main content
SKAdNetwork (SKAN) is Apple’s privacy-preserving framework for iOS attribution. With Linkrunner, SKAN setup happens in three places:
  1. Your app: update the SDK and add the SKAN keys to Info.plist
  2. Linkrunner: configure the SKAN schema (events, priority, ranges)
  3. Your ad networks: complete the Google Ads and Meta Ads specific steps
This page covers the first two, which are shared across all networks. Then follow the network guide for each platform you advertise on.

1. Prepare Your App

Minimum SDK Versions

Make sure your app is using at least these SDK versions before enabling SKAN. Linkrunner uses the SDK to update conversion values as users perform events.

Native iOS

linkrunner-ios >=3.1.0

React Native

rn-linkrunner >=2.3.0

Flutter

linkrunner >=3.1.1

Expo

expo-linkrunner >=3.2.0
Capacitor, Cordova, and Unity apps use the native iOS SDK (LinkrunnerKit) under the hood, so the **linkrunner-ios
=3.1.0** requirement applies to them as well.

How the SDK updates conversion values

You don’t need to call any SKAN APIs yourself. On first launch the SDK registers an initial conversion value (0/low), and every trackEvent, capturePayment, and signup call returns the updated conversion value from Linkrunner, which the SDK applies automatically. On iOS 17.4+ the SDK uses Apple’s AdAttributionKit; on iOS 14.0–17.3 it falls back to SKAdNetwork.

Add Ad Network Identifiers

Apple only generates SKAN postbacks for ad networks listed under SKAdNetworkItems in your app’s Info.plist. Add the identifiers for the networks you run campaigns on:
Without these entries, Apple never sends SKAN postbacks for those networks, even if everything else is configured correctly. Identifiers are lowercase and must end in .skadnetwork.
If you run campaigns on other networks, add their identifiers too. Each network publishes its own list (for example, Google and Meta).
On Expo, add these under ios.infoPlist.SKAdNetworkItems in your app.json instead of editing Info.plist directly.

Configure Postback Copies to Linkrunner

To receive SKAdNetwork postback copies, configure NSAdvertisingAttributionReportEndpoint and AttributionCopyEndpoint in your app’s Info.plist:

Native iOS, Flutter, and React Native

  1. Open Info.plist in Xcode
  2. Add a new key NSAdvertisingAttributionReportEndpoint (type String) with value https://linkrunner-skan.com
  3. Add a new key AttributionCopyEndpoint (type String) with value https://linkrunner-skan.com

Expo

The Linkrunner Expo plugin adds this configuration automatically. No additional setup required.
These keys tell Apple to send copies of SKAdNetwork postbacks to Linkrunner alongside the ad network, enabling accurate attribution and reporting in your Linkrunner dashboard.

2. Configure the SKAN Schema

Linkrunner converts your event list into SKAN conversion values (0–63). The order you put events in determines their priority. Higher-priority events overwrite lower-priority ones in the same measurement window.
  1. Go to Settings → SKAN Setup → Events Setup in the Linkrunner Dashboard
  2. Add the events that matter for optimization (e.g., Purchase, Subscription Started, Onboarding Complete)
  3. Drag rows to set priority (the topmost event has the highest priority)
  4. For revenue events, set a min and max range; for occurrence events, set an average
  5. Click Generate SKAN Mapping to produce the fine and coarse conversion values
Apple’s SKAN allows up to 64 conversion values total. The dashboard shows the combination count in real time and warns if your configuration would exceed the limit.
The schema is configured once and shared. Linkrunner automatically generates the fine and coarse conversion values from it for both Google and Meta.
For background on how this maps to SKAN 4.0, see Conversion Values in SKAdNetwork.

3. Complete Your Ad Network Setup

Follow the dedicated guide for each network you advertise on:

Google Ads SKAN Setup

iOS link ID, account connection, and event mapping to conversion actions.

Meta SKAN Setup

Conversion values in Events Manager and the Facebook SDK toggle.
Once postbacks start flowing, view them in the SKAN dashboard.

Support

For SKAN integration support, contact us at support@linkrunner.io.