Update (August 18, 2021): When importing an Events type conversion model to Facebook, there's an extra step where Facebook asks for one event to optimize for. See Import Conversion Model below.
Learn how to set up Singular's SKAdNetwork integration with Facebook, which supports all Facebook campaign types. Learn how to use the right conversion model for each campaign type.
To learn about Singular's other integrations with Facebook, see:
|SKAdNetwork Postback Handling||N/A|
|Conversion Value Decoding||Supported|
|Campaign Data Enrichment||
Due to data being aggregated at the campaign level, Facebook's reporting at the ad set is partial.
Where available, the supported granularity is:
|Campaign Data Granularity||Supported|
Apple's SKAdNetwork framework allows ad networks (and advertisers) to receive some data about app installs attributed to their campaign without compromising the end-user's privacy. All the data about the app install and post-install events have to be contained in a single number from 0 to 63, called the conversion value.
Singular's SKAdNetwork solution offers several different ways to encode data into the conversion value, depending on whether the advertiser is interested in optimizing for revenue, retention, or other KPIs. Each encoding method is called a conversion model.
Facebook's install, app event optimization, and value optimization campaigns in SKAdNetwork are supported through conversion models, which Facebook calls this "configuration schemas." By following the steps in this article, you'll be able to "Import" your Singular conversion model into a Facebook "configuration schema" so Facebook can optimize against SKAdNetwork.
After successfully importing a "configuration schema," you'll be able to start SKAdnetwork-enabled campaigns with Facebook, and the resulting performance data will be available through your existing Facebook data connector.
Note: Facebook does not forward SKAdNetwork postbacks, and as a result, postback data is not available in Singular's Data Destinations (ETL) or User-Level Logs.
1. Implement Singular's SKAdNetwork Solution
2. Configure a Conversion Model
In the Singular web app, go to SKAdNetwork > Model Configuration and select Add Conversion Model. Select a Singular conversion model for your app. Certain Facebook campaign types require specific conversion models. For more information, see What conversion models are supported with Facebook's campaign types?
Important: Facebook requires that all measurable conversions occur within 24 hours of the install, regardless of the campaign type. Make sure to set your Singular conversion model measurement period to 1 day.
3. Map Conversion Model Events to Facebook Events
If you're using a Singular conversion model for SKAdNetwork, make sure that every event defined in the conversion model is mapped to a Facebook event in Attribution > Partner Configuration.
This step is required for the Singular conversion model to appear in Facebook's conversion schema dashboard. Unmapped events will not appear or be used in Facebook's campaign optimization or reporting.
- In Partner Configuration, don't map SDK events to "(Use SDK Event Name)." Always use a Facebook standard event.
- If you're using a revenue conversion model, map the "__REVENUE__" SDK event to "fb_mobile_purchase."
- If you're using a model other than revenue, e.g., a conversion events model, don't use the "__REVENUE__" SDK event. Instead, map your specific SDK events (whether they involve revenue or not) to appropriate Facebook events.
4. Import Conversion Model in Facebook Event Manager
- Go to the Facebook Event Manager's SKAdNetwork Event Configuration.
- Select Settings > Set Up Events.
- Select Import from Partner App. If the "Import" option is not available to select, it may be that Facebook has not received app events for your app before. To enable this option, ensure that your Facebook partner configuration is enabled and that Facebook has received some events.
On the following screen, Facebook will prompt you to enter an MMP URL. Construct the following URL and enter your app's App Store ID in the app_id parameter:
- Once you've imported your Singular conversion model(s), you'll be able to view them on the subsequent screen.
Note: If you've imported an Events type model, Facebook asks you to choose one of the events for optimization purposes.
FAQ and Troubleshooting
Facebook Ads Manager - Campaign Type Options
You can select different options for optimization for ad delivery when creating your Facebook campaign. Since these campaigns optimize on different app signals, not all campaign types are supported with your Singular conversion model.
Below is a list of Facebook campaign types and the Singular conversion models that are supported for them
|Facebook Campaign Type||Supported Singular Conversion Models|
|App Installs (MAI)||Any model type (conversion event, engagement, funnel, revenue)|
|App Events (AEO)||Conversion event, funnel, revenue|
*see additional requirements
For "Value" to be a selectable option, double-check that your app meets Facebook requirements for value optimization. In particular:
- You must be using a Singular revenue conversion model (configuration schema) and have mapped your Singular "__REVENUE__" SDK event to "fb_mobile_purchase" in step #3 above. Facebook value optimization uses revenue/purchases to optimize, so using a Singular revenue model is required.
- Have an active or recent AEO campaign optimizing using a revenue model for the app, as:
- Facebook must have received at least 15 attributed click-through purchases with conversion values over the last 7 days.
- Facebook must have received at least 2 distinct purchase conversion values over the last 7 days.
For more details, see Facebook's documentation on VO eligibility requirements.
Facebook pulls the latest model roughly once an hour. If you change your conversion model, Singular will pause your existing model and then activate the new model. Due to SKAdNetwork limitations, the process takes up to 48 hours and includes a 24-hour gap in which no conversion values are sent or recorded. This will also cause Facebook to pause your campaigns for 72 hours automatically.
Reminder: While we encourage you to experiment with different models when you start using SKAdNetwork, we don't recommend changing models regularly afterward, due to the delay caused each time.
You can only have one SDK managing SKAdNetwork conversion values in the same app. However, the Facebook SDK will automatically stop managing SKAdNetwork if you follow step 4 in these instructions. Therefore, it's safe to continue using the Facebook SDK for other purposes while the Singular SDK manages SKAdNetwork conversion values.
Facebook's statement on their support and plans for SKAdNetwork mentions the following limitations:
- A measurement period of 24 hours.
- One ad account per app.
- Maximum of 9 active campaigns per app.
- Only aggregate insights (no user-level insights). The aggregate data will be available in Singular's SKAdNetwork reporting.
In addition, note that Singular's conversion event, revenue, and funnel models are recommended for Facebook optimization of MAI and AEO campaigns. Singular's revenue model is required for Facebook optimization of VO campaigns.
Facebook has provided the following statement on increases in missing conversion values passed back through SKAdNetwork for AEO/VO campaigns:
In May 2021, we identified an issue impacting iOS 14 SKAdNetwork (SKAN) App Event Optimization (AEO)/Value Optimization (VO) campaigns that resulted in an increase in null conversions in the data passed back.
Based on the investigation conducted by our product team, we have high confidence that this was triggered as a result of a change in Apple’s privacy threshold for SKAN campaigns, meaning campaigns will need to have a minimum number of campaign installs for data to be passed back without null information.
While we are working to implement back-end mitigations by early July, we recommend advertisers to take the following alternative actions:
- Consolidate campaigns to meet the 128 installs per day threshold
- Increase budget to meet 128 installs per day
- After options 1 and 2, if you are still experiencing artificially high costs, switching optimization from AEO/VO to MAI may help to achieve the minimum install threshold
Make sure that you've mapped the following:
- The SDK event to a Facebook event (in Partner Configuration)
- The Singular SKAN event to the Facebook event (in Settings > Events).
For more details, see How do I make SKAN events include data from Facebook?
As part of the updates related to iOS 14, Facebook announced new guidelines for using the Advertiser Tracking Enabled flag with MMPs. Your integration with Singular already implements this flag, and no action is required in your Singular SDK implementation.