[UPDATED] Facebook Ads SKAdNetwork Integration

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:

 

Integration Summary

SKAdNetwork Postback Handling N/A
Conversion Value Decoding Supported
Campaign Data Enrichment

Supported

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 Name
• Campaign ID
• Sub Campaign Name (Ad Set Name)
• Sub Campaign ID (Ad Set ID)

Campaign Data Granularity Supported

Introduction

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.

See also: Facebook's article on considerations for iOS 14 and SKAdNetwork measurement.

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.

Setup Instructions

1. Implement Singular's SKAdNetwork Solution

If you haven't done so yet, add SKAdNetwork support to your Singular SDK Implementation (see iOS SDK: Adding SKAdNetwork support) or S2S integration (see SKAdNetwork S2S Implementation Guide).

Reminder: You can only have one SDK managing SKAdNetwork conversion values in the same app. The Facebook SDK will automatically stop managing SKAdNetwork if you follow step 4 in these instructions. However, you should ensure that any other SDKs in your app are not managing SKAdNetwork and interfering with your Singular conversion model implementation.   

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.

mceclip0.png

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.

mceclip1.png

Important:

  • 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 dashboard and follow the instructions below (for additional guidance, see Facebook's Event Manager documentation).

  • Go to the Facebook Event Manager's SKAdNetwork Event Configuration.
  • Select Settings > Set Up Events.

mceclip3.png

  • 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.

mceclip2.png

  • 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:

    https://api.singular.net/api/skadnetwork/conversion_info?org_type=partner&app_id=[your_app_id]

    For example:

    https://api.singular.net/api/skadnetwork/conversion_info?org_type=partner&app_id=1441750662
  • 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.

image.png

FAQ and Troubleshooting

What conversion models are supported with Facebook's campaign types?

mceclip0.png

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
Value (VO) 
*see additional requirements
Revenue
Why am I unable to select "Value (Optimization)" as an option for my Facebook SKAN campaign?


mceclip0.png

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.
Note: An app only needs to meet Facebook's VO eligibility requirements once.

For more details, see Facebook's documentation on VO eligibility requirements.

What happens if I change my conversion model?

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.

Can I use the Facebook SDK at the same time as the Singular SDK?

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.

What are Facebook's account and campaign limitations based on SKAdNetwork?

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.

Why am I seeing many missing conversion values for Facebook?

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
Why can't I see SKAdNetwork events from Facebook in my Singular SKAdNetwork reports?

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?

How is Estimated Revenue pulled/calculated for Facebook campaigns?
Why am I getting an error when entering in my "MMP URL" in Facebook Events Manager?

mceclip0.png

  • Check to see you have an active conversion model configured in Singular (step #2)
  • Check to see that you have mapped all events in your Facebook partner configuration (step #3)
  • Check to see that you do not have any spaces or other non-URL safe characters in your MMP URL (step #4)
Do I need to set the AdvertiserTrackingEnabled (ATE) flag?

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.

Was this article helpful?