Facebook Ads and AppsFlyer SKAdNetwork interoperation

At a glance: Interoperability enables Facebook to share SKAdNetwork postback data with us and enables us to share your conversion value measurement bits (mapping) with Facebook.

iOS 14 updates relating to Facebook

AppsFlyer confirms that our MMP integration with Facebook always implements the Advertiser Tracking Enabled flag. Meaning, no action is required of you in AppsFlyer.  This information is provided pursuant to the Facebook app guidance iOS 14 checklist dated February 2021.

SKAdNetwork interoperability: AppsFlyer <-> Facebook

If you work with multiple ad network partners, the best practice is to set it up in AppsFlyer. By doing so, SKAdNetwork performance metrics, enriched with other metrics like cost, are available via the AppsFlyer platform. 

Related reading: AppsFlyer SKAdNetwork Solution guide

Scope of SKAdNetwork interoperability with Facebook

The interoperation allows the following:

  • AppsFlyer and Facebook share the SKAdNetwork conversion value schema, enabling both to provide you with performance metrics.
  • AppsFlyer supports all Facebook Ads campaign objectives which enable campaign optimization:
    • Mobile app install (MAI)
    • Mobile app engagement (MAE)
    • Value optimization (VO)
  • If you enable SKAdNetwork partner integration in Facebook: The Facebook SDK stops updating SKAdNetwork conversion value (kill switch). The AppsFlyer SDK updates the conversion value.
  • Currently, updated April 27, 2021;
    • SKAdNetwork dashboard: Installs brought by Facebook don't yet reflect in the AppsFlyer SKAdNetwork dashboard. They are counted as organic installs. This aligns with the organic install definition for SKAdNetwork. 
    • Traditional dashboard:  installs brought by Facebook of consenting users display correctly. Non-consenting users are attributed to organic. 
    • iOS 14.5 implications on SRN reporting


  • Once interoperability is enabled each time you change the measurement settings in AppsFlyer, Facebook pauses (Facebook guidance) your campaigns.  Before enabling them, verify that all relevant in-app events are mapped. Note! You don't need to repeat the MMP integration procedure in this article. Meaning you don't need to copy the MMP connection URL again.  
  • If you turn SKAdNetwork measurement off in AppsFlyer, Facebook can no longer get your measurement settings. 
  • AppsFlyer SDK vs. Facebook SDK: The Facebook SDK is suited if you run campaigns only with Facebook. If you run campaigns with multiple partners then using the AppsFlyer SDK allows you to use a common measurement system and to view data of all partners in AppsFlyer. 

Facebook app install ads guidance

In configuring your Facebook iOS 14 app install campaigns, take into account the following Facebook guidance

  • An app can belong to only 1 ad account.
  • A maximum of 9 campaigns per app, each having 5 ad sets is allowed.
  • Facebook no longer requires a new, separate account for iOS 14 campaigns. You can run iOS 14 campaigns from existing accounts.
  • There is a relationship between the Facebook optimization method and the measurement type you select in AppsFlyer as follows:
    • Revenue measurement:  VO and AEO  
    • Conversion measurement: AEO— Includes Facebook standard events and purchase event. You must map the app event in AppsFlyer to the relevant Facebook event. 

Enabling interoperation

Interoperation is achieved via settings in the AppsFlyer and Facebook dashboards. No interoperation is required in the app itself. However, you need to adopt the most recent AppsFlyer SDK into the app. 

Setting up Facebook <-> AppsFlyer interoperability


Setup procedure

To enable AppsFlyer SKAdNetwork interoperation with Facebook:
Step Action Details 
1 App prerequisites
  • Adopt the most recent AppsFlyer SDK into your app.
2 SKAdNetwork settings review 

Set up and turn on AppsFlyer SKAdNetwork Solution. Doing so allows the AppsFlyer SDK to call SKAdNetwork APIs and set the conversion value.

To view SKAdNetwork settings:

  1. In AppsFlyer, go to Configuration > SKAdNetwork Settings.
  2. Make a note of the exact event names set. You need them in the next step. Note! Names are case-sensitive.
  3. Verify that SKAdNetwork measurement is on. 
3 In-app event mapping

Review, and if necessary, make changes to your Facebook in-app event mappings. 

To view and set in-app event mappings:

  1. In AppsFlyer, Go to Configuration > Integrated Partners.
  2. Select Facebook.
  3. Go to the Integration tab.
  4. In the In-app events postback section:
    1. [Mandatory] If not on, turn on In-app events postback.


    2. Verify that the in-app events, SDK event names you set in SKAdNetwork measurement are mapped to Partner event identifiers, meaning Facebook event names. You must map the currently selected SKAdNetwork measurement type. Note! (1) The default measurement type is revenue. (2) If you don't map the events, Facebook can't optimize and will only count installs; in-app event postback must be on, in all circumstances. 
      Measurement type Mapping requirement

      af_skad_revenue is mapped to the Facebook revenue event, usually, fb_mobile_purchase.

      Note! Its OK to map more than one event to fb_mobile_purchase.

      Conversion Map 1–6 conversion events to the corresponding Facebook events.
      Engagement Map the engagement event you set to the corresponding partner event.
       In-app event mapping guide
  5. Click Save integration.
  6. Scroll down to the bottom of the page. 


  7. In the SKAdNetwork configuration section, click on the MMP connection URL to copy it. 
    The URL is copied.
4 Connect AppsFlyer to Facebook
  1. In Facebook, open the events manager.


  2. Go to the Settings tab.


  3. In the Configure App Events for SKAdNetwork section, click Set Up Events. 


  4. Select Import from partner app
    This updates Facebook with the conversion value schema and instructs the Facebook SDK in your app to stop setting the conversion value.   If import from partner app is disabled—Troubleshoot.
  5. Follow the instructions in the Facebook user interface. You will be required to copy the MMP Connection URL from AppsFlyer and paste it in Facebook.
    • Notes:
      • You need to perform this procedure once. Meaning, there's no need to copy and paste the connection URL after changing the measurement settings in AppsFlyer. For example, if you switch from revenue measurement to conversion measurement, Facebook uses the existing URL to get the current schema. 
      • Completing the procedure enables Facebook to get the conversion value schema from AppsFlyer using a proprietary randomized structure. There is no way for you to configure this. 
      • It takes up to 24 hours for the updated settings in Facebook to take effect.

Additional information

Troubleshooting, discrepancies, and FAQ

Troubleshoot integration
Action Details 

Facebook can't connect


In Facebook, if you get the message, we can't connect. Check that you're using the correct URL. If the problem continues, contact your partner app for help

Corrective action

In AppsFlyer, verify that you have turned in-app event mapping and mapped your AppsFlyer events to your Facebook events. (Described in the in-app event mapping described in the preceding section) 

[Guidance updated April 20, 2021]

Event priority

Q: How do I set the event priority in Facebook.

A:  There is no need to set priority in Facebook. This priority feature relates to apps that use the Facebook SDK to set the conversion value. In your case, the AppsFlyer SDK is setting the conversion value. Disregard the priority option in Facebook. AppsFlyer measures 6 events in conversion without priority. 

[Guidance updated April 20, 2021]

Import from partner app is disabled



In Facebook, if import from partner app is disabled, it means the app has never sent an event to Facebook using an MMP SDK.

Corrective action

Do one of the following:

  • Start passing events to Facebook using the MMP SDK as soon as possible.
  • Start passing events to Facebook using the Facebook SDK or App Events API and use one of the other flows to set up the conversion schema.

Having done so, after the first events are recorded in Facebook, configure the integration with AppsFlyer. 

[Guidance updated April 25, 2021]

Ranges can't overlap and must be in consecutive order 


You use AppsFlyer SKAdNetwor custom measurement mode. When importing the measurement schema to Facebook the following message display: Ranges can't overlap and must be in consecutive order.

Corrective action

Revenue values in the custom conversion schema must be in consecutive ascending order. 

[Guidance updated April 26, 2021]

Sending events to Facebook

Q: Does it make sense to send additional event postbacks for events that are not selected in the conversion value measurement option to Facebook?

A: For consenting users send the full range of events to maximize Facebook's ability to optimize.

Map multiple events to the same Facebook event

Q: Can I map multiple in-app events to one Facebook event?

A: If multiple events are mapped to one Facebook standard event, Facebook will not be able to differentiate between the events. So, Facebook will optimize toward the one event they recognize.

Was this article helpful?