At a glance: Interoperability enables Facebook to share decoded SKAN data with us and enables us to share your CV measurement bits (mapping) with Facebook Ads.
SKAN interoperability: AppsFlyer <-> Facebook
If you work with multiple ad network partners, it is best to set it up in AppsFlyer. By doing so, SKAN performance metrics, enriched with other metrics like cost, are available via the AppsFlyer platform.
Related reading: AppsFlyer SKANetwork Solution guide
Scope of SKAN interoperability with Facebook
The interoperation with Facebook allows the following:
- AppsFlyer and Facebook share the SKAN conversion value (CV) 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)
- After enabling SKAN integration the following occurs:
- Facebook SDK stops updating SKAN CV (kill switch).
- AppsFlyer SDK updates the CV.
- Facebook shares SKAN postback data for inclusion in the SKAN dashboard and aggregated reports.
Other considerations:
- If you don't enable SKAN partner integration, in the SKAN dashboard, installs brought by Facebook are counted as organic installs.
- In the context of AppsFlyer attribution (Overview dashboard):
- Consenting user installs brought by Facebook are attributed correctly.
- Non-consenting users are attributed to organic.
- iOS 14.5 implications on SRN reporting
-
Our MMP integration with Facebook always implements the Advertiser Tracking Enabled flag. (This information is provided according to the Facebook app guidance iOS 14 checklist from February 2021).
Considerations
- Once interoperability is enabled each time you change measurement settings, 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.
- In AppsFlyer, if you turn SKAdNetwork measurement off, Facebook can no longer get CV mapping.
- AppsFlyer SDK vs. Facebook SDK: The Facebook SDK is suited if you run campaigns only with Facebook. If you run campaigns with multiple partners, by using the AppsFlyer SDK you can view data of all partners.
- Review the discrepancies section in this article.
Facebook app install ads guidance
In configuring your Facebook iOS 14 app install campaigns, take into account the following Facebook guidance:
- A maximum of 9 campaigns per app, each having 5 ad sets is allowed. Advertisers can run these 9 app campaigns across 9 ad accounts per app ID.
- You don't need a 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.
Interoperation procedures
Complete the procedures that follow to enable interoperation.
For app install attribution:
Allow Facebook to share SKAdNetwork data with AppsFlyer
Allow Facebook to share SKAdNetwork data with AppsFlyer. If you don't do so, you won't see SKAdNetwork installs attributed to Facebook in the AppsFlyer SKAdNetwork dashboard.
This procedure needs to be performed once per app.
To grant Facebook permission to share SKAdNetwork data with AppsFlyer:
- In AppsFlyer, go to Configuration > Integrated partners.
- Select Facebook.
- Go to the SKAdNetwork tab.
- Click Facebook login. The account you use must be an Admin or Advertiser account having:
- Ads_read permission. See verify that you have ads read permission.
- Access to the advertised app ID in the Facebook business settings.
- Follow the instructions in the user interface.
After you complete the process in Facebook, you are returned to AppsFlyer. - Verify that the account status waiting for sync displays.
This message persists until we get data from Facebook. - Wait until after 02:00 UTC of the next day, then verify that the status changes to success.
Data in the SKAdNetwork dashboard updates daily by 08:00 UTC. - Read the section about measurement differences.
For in-app events attribution:
Share CV schema with Facebook
Step | Action | Details | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
1 |
App prerequisites |
|
||||||||
2 |
SKAdNetwork settings review |
Verify that AppsFlyer SKAN Solution is set up and is on. Doing so allows the AppsFlyer SDK to call SKAdNetwork APIs and set the CV. To view SKAdNetwork settings:
|
||||||||
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:
|
||||||||
4 |
Connect AppsFlyer to Facebook |
Notes
|
||||||||
5 |
iOS 14 campaign setting |
In Facebook, verify that the iOS 14 campaign setting is on. This setting is found in the New App installs Campaign settings page. |
Additional information
Turning off the SKAN integration
When turning off your Facebook Ads integration, it's not enough to turn off the Activate partner toggle, you must separately remove the SKAN connections to stop SKAN data recording.
To turn off the SKAN integration:
- In AppsFlyer, go to Configuration > Integrated partners.
- Select Facebook Ads.
- Go to the SKAN tab.
- Click the delete icon for the account you want to remove.
Measurement and timing differences between AppsFlyer and Facebook
Item | Details |
---|---|
In-app event names |
Until August 15, 2021, event names in the dashboard used the Facebook event names. Going forward, this is no longer true. |
Revenue mode converted users metrics |
[Deprecated August 16, 2021]
|
Earliest data availability |
In the first data sync after integration, as well as subsequent syncs, AppsFlyer receives Facebook data for up to the last 7 days retroactively. |
Install date |
AppsFlyer and Facebook differ in the way they determine the install date. Consider:
|
Data freshness |
|
Verifying the ads_read permission
ads_read permission provides Facebook Ads customers API access to ad performance data for use in custom dashboards and data analytics.
To verify your Facebook Ads account has ads_read permission:
- Go to your Facebook developer account.
- Select a Facebook App ID.
- Navigate to App Review > Permissions and Features.
- Verify that ads_read has the ready for use status. If this is the case, no further action is required.
- If you don't have ads_read then you must request it as follows:
- Go to App Review > Requests.
- Request ads_admin permission.
- Repeat the steps in this procedure to verify that you have been given the necessary permission.
Troubleshooting, discrepancies, and FAQ
Action | Details |
---|---|
Facebook can't connect |
Symptom 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 CV. In your case, the AppsFlyer SDK is setting the CV. Disregard the priority option in Facebook. AppsFlyer measures 6 events in conversion without priority. [Guidance updated April 20, 2021] |
Event occurrences |
Q: Why do I have more event occurrences displaying in AppsFlyer than in Facebook? A: Facebook only counts 0-1 event occurrences. Therefore, even if you define more occurrences as part of a range, the additional occurrences are only counted by AppsFlyer. |
Import from partner app is disabled |
Symptom In Facebook, if import from partner app is disabled, the app has never sent an event to Facebook using an MMP SDK. Corrective action Do one of the following:
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 |
Symptom You use AppsFlyer SKAdNetwork 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 not selected in the CV 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. |
Facebook data is not in the dashboard |
Symptom In the SKAdNewtork integration tab, the message failed to pull data displays. Corrective action Verify that the connected account is either a Facebook admin or a Facebook Advertiser account having ads_read permission. |
There is an error in Facebook when you try to run iOS 14 campaigns |
Symptom All of the following are true:
This occurs because Facebook isn't aware that you are using an SDK that includes SKAdNetwork support. Meaning the AppsFlyer SDK. Corrective action
|
Revenue reported by Facebook |
[Updated July 12, 2021] Facebook derives revenue from the CV using your SKAdNetwork settings. However, this is not a direct calculation, and Facebook uses algorithms in determining the revenue. A symptom of this is revenue having unrounded values even if you measure revenue in complete dollars. |
Installs vs. redownloads |
[Updated November 30, 2021]
|
Retroactive data backfill |
[Updated December 23, 2021] Sometimes we aren't able to connect to Facebook to get the data, for example, due to login failures. No need to worry. We'll fill in reporting gaps of the previous 7 days the next time we are able to log in. |
AppsFlyer is showing significantly more installs/events/revenue than Facebook |
In many cases, this discrepancy occurs because Facebook dashboard displays only click-through installs or events by default, while AppsFlyer dashboard display both click and view-through installs and events. |
Agency integration |
If the agency has an Administrator user role in the advertiser's Facebook Ads account, then they can perform the procedure in this article to enable SKAN interoperation on the behalf of the advertiser. Advertisers don't need to log in to their Facebook Ads account as well. The agency login will be indicated in the advertiser's account. |
An updated CV doesn't appear on Facebook |
When adding, changing, or removing a conversion value (CV) in the SKAN Conversion Studio, make sure that the event is mapped in the In-app event postbacks. Otherwise, the CV won't be updated on Facebook. |
Modeled data differences in AppsFlyer and Facebook Ads Manager |
AppsFlyer models aggregate data that basic SKAdNetwork reporting is unable to provide. Learn more When AppsFlyer models data, data that is modeled by Facebook isn’t taken into consideration, as AppsFlyer relies solely on confirmed, impartial data. Therefore, there may be data and granularity discrepancies between Facebook Ads Manager reports and AppsFlyer reports. |