Skip to main content
SKAdNetwork (SKAN) is Apple’s privacy-preserving framework for iOS attribution. Meta uses SKAN postbacks to measure and optimize iOS App Promotion campaigns. Setup happens in four places: your app, the Linkrunner Dashboard, Meta Events Manager, and Meta Ads Manager.
Only Meta campaigns with the App Promotion objective support the SKAN framework.
Track your progress with the Meta SKAN Integration Checklist: Integrations → Meta Ads → SKAN Integration.
This guide covers the Meta-specific SKAN setup. If you haven’t connected Meta Ads to Linkrunner yet, start with the Meta Ads integration guide.

Prerequisites

Before you begin, make sure you have:
  • A connected Meta Ads integration (App ID, ad account, and CAPI configured)
  • Your app live with a SKAN-ready Linkrunner SDK version (see minimum versions)
  • Admin access to your Meta Business Manager and Meta Events Manager
  • Your app events arriving in Meta Events Manager. Meta requires events from your app in the past 90 days, and its SKAN setup only lists events it has received. See Configure Events in Meta Events Manager.

1. Prepare Your App

Update the SDK

Your app must run a SKAN-ready SDK version. The SDK updates conversion values automatically as users perform events, so no SKAN code is needed on your side. Check the minimum SDK versions.

Add Meta’s Ad Network Identifiers

Apple only generates SKAN postbacks for ad networks listed in your app’s Info.plist. Add Meta’s identifiers under SKAdNetworkItems:
On Expo, add these under ios.infoPlist.SKAdNetworkItems in your app.json.

Add the Postback Copy Endpoints

Add these keys to your Info.plist so Apple sends copies of SKAN postbacks to Linkrunner:
The Linkrunner Expo plugin adds these keys automatically.

2. Configure the SKAN Schema in Linkrunner

Linkrunner converts your event list into SKAN conversion values (0-63) and generates the fine and coarse values Meta needs.
1

Set up event priority

Go to Settings → SKAN Setup → Events Setup in the Linkrunner Dashboard. Add the events that matter for optimization and drag rows to set priority. The topmost event has the highest priority.
2

Set ranges

For revenue events, set a min and max range. For other events, click Add Average to track how often the event happens. Without an average, Linkrunner only records whether the event happened.
3

Generate the mapping

Click Next: Generate SKAN Mapping. The button stays disabled while your configuration would exceed Apple’s limit of 64 conversion values. Remove an event or an average until it becomes available.
4

Turn on SKAN

Turn the switch at the top of Settings → SKAN Setup to Enabled. Linkrunner does not send conversion values to your app while SKAN is disabled.
If you already configured the schema for Google Ads, no extra work is needed. Linkrunner reuses the same schema for Meta.
For background on how this maps to SKAN 4.0, see Conversion Values in SKAdNetwork.

3. Map Events to Meta

Map each Linkrunner event to the corresponding Meta event (for example, Purchase, AddToCart, ViewContent) so postbacks are tagged correctly in Meta Events Manager.
2

Map each event

For each event in your SKAN schema, select the Meta event it should map to.
3

Enable revenue

Turn on Send Revenue for revenue events and select the currency.
4

Save

Click Save.
Every event in your SKAN schema except signup must be mapped. Until it is, the Meta SKAN Configuration tab lists the events that still need a mapping instead of your conversion values. See the full walkthrough in Meta Ads → Event Mapping.

4. Configure SKAN in Meta Events Manager

Complete this section only after the SKAN-ready SDK version is live in your app. Configuring Meta before the SDK update ships leads to mismatched conversion values.
Keep the Linkrunner values open in a separate tab while you work in Meta. Go to Settings → SKAN Setup → Meta SKAN Configuration in the Linkrunner Dashboard. It has two tabs:
  • Fine Conversion Values: each Priority number, the Meta event (or events) for it, and the revenue range for revenue events
  • Coarse Conversion Values: one Meta event each for High, Medium, and Low

Step 1: Turn On SKAdNetwork 4.0

  1. Open Meta Events Manager, go to Datasets, and select your app’s dataset
  2. Open the Settings tab and scroll to Set up tasks for iOS app events
  3. Under Apple’s SKAdNetwork, click See extra settings
  4. Turn SKAdNetwork 4.0 on
  5. Turn SKAdNetwork for the Facebook SDK off, so SKAN conversion values come only from Linkrunner
  6. Click Configure events. If your app already has a SKAN configuration, the button reads Edit events.
The numbers in the screenshot match the steps above. Meta Events Manager dataset settings with the dataset, Settings tab, extra settings, SKAdNetwork 4.0 toggle, SKAdNetwork for the Facebook SDK toggle, and Edit events button numbered 1 to 6
Switching between SKAdNetwork 4.0 and 3.0 can take at least 24 hours to apply. Avoid switching back and forth.
Edit events reopens your current setup, where Priority can show as text such as High instead of a number you can type. To get the number field, click Edit, then Back until you reach Choose an app event connection, click Change Method, and continue from Step 2.

Step 2: Choose Custom Integration

  1. On Choose how to configure events, select Customise. Linkrunner does not provide a schema URL for Import from partner app.
  2. Click Next
Choose how to configure events step with Customise selected as 1 and the Next button as 2
  1. On Choose an app event connection, select Custom integration for SKAdNetwork
  2. Check that your app meets the requirements listed on the card, then click Next
Choose an app event connection step with Custom integration for SKAdNetwork selected as 3 and the Next button as 4

Step 3: Add the Fine Conversion Values

Recreate every row of Linkrunner’s Fine Conversion Values table. Your app reports the Priority number, and Meta credits the event you assign to that number, so the numbers must match Linkrunner’s exactly.
  1. In Priority, type the row’s Priority number from Linkrunner
  2. In Event name, select the Meta event for that row
  3. If the Linkrunner row lists more than one event, click + under the event and add each one to the same row
  4. Click Add Event to add the next row. When every Linkrunner row is added, click Next
Choose fine conversion values step with the Priority field set to 1 as 1, the event dropdown as 2, the add bundled event button as 3, and the Add Event button as 4
The dropdown only lists events Meta has received from your app in the past 90 days. If an event is missing, see An event is missing from the Meta event list.

Step 4: Add the Coarse Conversion Values

  1. Keep Apply this setup to all three windows checked. Linkrunner uses the same coarse mapping for all three postbacks.
  2. Select the event for High, matching Linkrunner’s Coarse Conversion Values tab
  3. Click + next to Medium and Low and select their events, then click Review
Choose coarse conversion values step with an arrow to the Apply this setup to all three windows checkbox as 1, the High event as 2, and the add buttons for Medium and Low as 3 and 4

Step 5: Review and Apply

Changing fine conversion values pauses your running iOS ads for 72 hours while the new configuration takes effect. Changing only coarse values does not pause ads. Apply fine value changes when a 72-hour pause is acceptable.
  1. Check each Priority ID in the review table against the Priority numbers in Linkrunner’s Fine Conversion Values table. They must match exactly.
  2. Read the notice at the top of the page. If Meta offers auto-unpause, turn it on if you want ads to restart automatically after the pause.
  3. Click Apply
Review event configuration step with the Priority ID column as 1, the 72-hour pause notice as 2, and the Apply button as 3

5. Create an iOS Campaign in Meta Ads Manager

Start a campaign as described in Create Your First Campaign, with the App promotion objective. Then complete these SKAN-specific settings.

Campaign Settings

  1. In the iOS 14+ campaign section, select your app from the App Store under App
  2. Keep Apple’s SKAdNetwork reporting checked
  3. Check iOS 14+ campaign limits. Meta limits how many iOS 14+ campaigns can run for each app, and how many ad sets each campaign can have.
Campaign editor with the iOS 14+ campaign App field, the Apple's SKAdNetwork reporting checkbox, and the iOS 14+ campaign limits panel highlighted

Ad Set Settings

  1. Under App promotion, confirm Mobile app store shows Apple App Store and your app. You change these in the campaign’s iOS 14+ campaign section.
  2. Under Performance goal, select Maximise number of app events to optimize for an in-app event
  3. Under App event, select an event from your SKAN configuration. Meta marks events without a conversion value as inactive for campaign and ad set reporting.
  4. Review Attribution. It shows how Meta attributes this ad set. See Meta’s guide to Aggregated Event Measurement and SKAdNetwork before you change it.
Ad set editor with the Apple App Store and app, performance goal, app event, and attribution settings highlighted Create the ad and publish the campaign as described in Create the Ad.

6. Grant Access to Linkrunner (Optional)

If you want Linkrunner to configure the SKAN schema in Meta for you, share your app’s dataset with access@linkrunner.io in Meta Business Manager. Access to the ad account alone is not enough, because the SKAN settings live on the dataset.

7. Verify the Setup

1

Check the checklist

Confirm every item is complete in the Meta SKAN Integration Checklist.
2

Check the Meta configuration

In Meta Events Manager, open your dataset’s Settings tab and click Edit events. The Review step should list the same events and priorities as Linkrunner’s Meta SKAN Configuration tab. Click Cancel to leave without changes.
3

Run an iOS campaign

SKAN postbacks only flow once a Meta iOS App Promotion campaign is live and driving installs.
4

Watch the SKAN dashboard

Postbacks appear in the SKAN dashboard as Apple delivers them. Apple delays postbacks by design, so expect data 24 to 48 hours after installs begin.

Troubleshooting

No postbacks in the SKAN dashboard

  • Confirm SKAN is Enabled at the top of Settings → SKAN Setup
  • Confirm the Info.plist keys from section 1 are in the live app build
  • Confirm the SKAN-ready SDK version is live and rolled out to 100% of users
  • Wait 24 to 48 hours. Apple delays SKAN postbacks by design

An event is missing from the Meta event list

Meta only lists events it has received from your app in the past 90 days.
  • Open your dataset’s Overview tab in Meta Events Manager and select a longer date range to check whether Meta has received the event
  • Confirm the event is mapped in Integrations → Meta Ads → Event Mapping
  • Trigger the event from your app and wait for it to appear in Events Manager, then return to Edit events

Meta SKAN Configuration asks for event mappings

Map every event listed on that screen in Integrations → Meta Ads → Event Mapping, then reload Settings → SKAN Setup → Meta SKAN Configuration.

Conversion values look wrong in Meta

  • Confirm the Priority ID of each event in Meta’s Review step matches the Priority numbers in Settings → SKAN Setup → Meta SKAN Configuration
  • Confirm you regenerated and re-entered the values after any schema change in Linkrunner

Meta still attributes via the Facebook SDK

  • Confirm the SKAdNetwork for the Facebook SDK toggle is OFF for your dataset
  • Confirm Custom integration for SKAdNetwork is selected under Edit events

Need help? Contact support@linkrunner.io