Facebook
This guide describes how to add and configure Facebook Evens Manager and Ads Manager integration.
Configure this integration and analyze your app metrics right on Facebook Analytics. Send events to Facebook Ads Manager to build lookalike audiences based on subscription events (like renewals) and maximize your ROI.

How to Add Integration?

Since iOS 14.5 integration works only for users that consented tracking. Learn more.
Please make sure that you disabled Facebook Automatic Purchase Events Logging in app settings or consider changing event mapping so that native Facebook SDK events are not mixed with Apphud events. See step 7 for details.
Step 1
2
3
4
5
6
7
✅ 8
  • Create new Facebook app, if you don't have it.
  • Integrate or update Facebook SDK to the latest version.
  • Pass attribution data from Facebook to Apphud.
Open your Facebook app settings and copy your App ID:
Under Advanced section copy Client Token:
Enter App ID and Client Token fields:
If you don't want to mix test and live data, create separate test app on Facebook. Paste test App ID and Client Token into corresponding fields.
For both (live and test) apps disable Automatic Purchase Events Logging. This is required to prevent revenue double counting in Facebook Analytics and Ads Manager. The switch can be found in app "Basic" settings:
For some events, you can enter custom names. For others, you can choose between Facebook build-in events. You can also specify event aliases that will be sent as event properties under alias key. Please, use only letters (a..z), numbers (0..9), underscore (_) for event names and aliases. You can also disable sending some events using switches.
Enable Integration and save changes:

Pass attribution data to Apphud (required):

In case of Facebook attribution, you should pass empty data:
Swift
Objective-C
Kotlin
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Initialize ApphudSDK
Apphud.start(apiKey: "APPHUD_API_KEY")
// Initialize Facebook
ApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions)
// Pass empty attribution data from Facebook to Apphud
Apphud.addAttribution(data: [:], from: .facebook, callback: nil)
}
func applicationDidBecomeActive(_ application: UIApplication) {
// manually track install in Facebook SDK
AppEvents.activateApp()
}
// Initialize Apphud
// ...
// Initialize Facebook
// ...
[Apphud addAttributionWithData:@{} from:ApphudAttributionProviderFacebook identifer:nil callback:^(BOOL result) {}];
// ...
- (void)applicationDidBecomeActive:(UIApplication *)application {
[FBSDKAppEvents activateApp];
}
// Initialize Apphud
// ...
// Initialize Facebook
// ...
Apphud.addAttribution(ApphudAttributionProvider.facebook)
// track installs manually
AppEventsLogger.activateApp(this)
While configuring integration you can also choose between sending revenue as sales or proceeds (without Apple / Google 15%-30% commission).
You can read more how Apple calculates commission here.

Request IDFA Consent (required)

Starting iOS 14.5 access to IDFA requires user consent. You should request IDFA manually using AppTrackingTransparency framework and pass it to Apphud. Read more here.

Events Cheat Sheet

This is a list of all possible events and their parameters that are being sent to AppsFlyer.
You can read more about subscription events here and parameters here.
Trial
Cancellations
Introductory Offer
Regular
Promo Offer
Other Events

Trial period started

Default event name: StartTrial
Parameters:
  • alias: String
  • fb_content_id: String
  • _valueToSum: Float
  • fb_currency: String
  • fb_num_items = 1
  • offer_type = "trial"

Successful conversion from trial period to regular subscription

Default event name: Subscribe
Parameters:
  • alias: String
  • fb_content_id: String
  • _valueToSum: Float
  • fb_currency: String
  • fb_num_items = 1
  • offer_type = "trial"

Failed conversion from trial period to regular subscription

Default event name: apphud_trial_expired
Parameters:
  • alias = "apphud_trial_expired"
  • fb_content_id: String
  • reason: String

Trial Canceled

Default event name: apphud_trial_canceled
Parameters:
  • alias = "apphud_trial_canceled"
  • fb_content_id: String

Subscription Canceled

Default event name: apphud_subscription_canceled
Parameters:
  • alias = "apphud_subscription_canceled"
  • fb_content_id: String

Autorenew disabled (Deprecated)

Default event name: apphud_autorenew_disabled
Parameters:
  • alias = "apphud_autorenew_disabled"
  • fb_content_id: String

Autorenew enabled

Default event name: apphud_autorenew_enabled
Parameters:
  • alias= "apphud_autorenew_enabled"
  • fb_content_id: String

Introductory offer started

Default event name: Subscribe
Parameters:
  • alias: String
  • fb_content_id: String
  • _valueToSum: Float
  • fb_currency: String
  • fb_num_items = 1
  • offer_type: String

Introductory offer renewed

Default event name: Subscribe
Parameters:
  • alias: String
  • fb_content_id: String
  • _valueToSum: Float
  • fb_currency: String
  • fb_num_items = 1
  • offer_type: String

Successful conversion from introductory offer to regular subscription

Default event name: Subscribe
Parameters:
  • alias: String
  • fb_content_id: String
  • _valueToSum: Float
  • fb_currency: String
  • fb_num_items = 1
  • offer_type: String

Failed conversion from introductory offer to regular subscription or failed renew

Default event name: apphud_intro_expired
Parameters:
  • alias = "apphud_intro_expired"
  • fb_content_id: String
  • reason: Float
  • offer_type: String

Refund during introductory offer

Default event name: Subscribe
Parameters:
  • alias: String
  • fb_content_id: String
  • _valueToSum: Float
  • fb_currency: String
  • fb_num_items = 1
  • reason: String
  • offer_type: String

Subscription started

Default event name: Subscribe
Parameters:
  • alias: String
  • fb_content_id: String
  • _valueToSum: Float
  • fb_currency: String
  • fb_num_items = 1

Subscription renewed

Default event name: Subscribe
Parameters:
  • alias: String
  • fb_content_id: String
  • _valueToSum: Float
  • fb_currency: String
  • fb_num_items = 1

Subscription expired

Default event name: apphud_subscription_expired
Parameters:
  • alias= "apphud_subscription_expired"
  • fb_content_id: String
  • reason: Float

Subscription refunded

Default event name: Subscribe
Parameters:
  • alias: String
  • fb_content_id: String
  • _valueToSum: Float
  • fb_currency: String
  • fb_num_items = 1
  • reason: String

Promotional offer started

Default event name: StartTrial or Subscribe depending on promo offer type.
Parameters:
  • alias: String
  • fb_content_id: String
  • _valueToSum: Float
  • fb_currency: String
  • fb_num_items = 1
  • offer_id: String
  • offer_type: String

Promotional offer renewed

Default event name: StartTrial or Subscribe depending on promo offer type.
Parameters:
  • alias: String
  • fb_content_id: String
  • _valueToSum: Float
  • fb_currency: String
  • fb_num_items = 1
  • offer_id: String
  • offer_type: String

Successful conversion from promotional offer to regular subscription

Default event name: Subscribe
Parameters:
  • alias: String
  • fb_content_id: String
  • _valueToSum: Float
  • fb_currency: String
  • fb_num_items = 1
  • offer_id: String
  • offer_type: String

Failed conversion from promotional offer to regular subscription or failed renew

Default event name: apphud_promo_expired
Parameters:
  • alias = "apphud_promo_expired"
  • fb_content_id: String
  • reason: Float
  • offer_id: String
  • offer_type: String

Refund during promotional offer

Default event name: Subscribe
Parameters:
  • alias: String
  • fb_content_id: String
  • _valueToSum: Float
  • fb_currency: String
  • fb_num_items = 1
  • reason: String
  • offer_id: String
  • offer_type: String

Non renewing purchase

Default event name: fb_mobile_purchase
Parameters:
  • alias: String
  • fb_content_id: String
  • _valueToSum: Float
  • fb_currency: String
  • fb_num_items = 1

Non renewing purchase refunded

Default event name: fb_mobile_purchase
Parameters:
  • alias: String
  • fb_content_id: String
  • _valueToSum: Float
  • fb_currency: String
  • fb_num_items = 1
  • reason: String

Billing Issue

Default event name: apphud_billing_issue
Parameters:
  • alias = "apphud_billing_issue"
  • fb_content_id: String

Billing issue Resolved

Default event name: [Apphud] billing_issue_resolved
Parameters:
  • product_id: String
  • alias = "apphud_billing_issue_resolved

How to Use these Events?

You may use events coming from Apphud to Facebook to:
  • view cost per app event on Facebook Ads Manager and Facebook Ad Reports;
  • create Facebook Lookalike audiences based on events.

Facebook Ads and Ad Reports

View subscription metrics right on Facebook Ads Manager. Open Facebook Ads Manager, click on "Columns" and select "Customize Columns...":
Add necessary columns. For example, subscriptions and trials total count, value and cost:
You may optionally save this customized view as a preset. Since now, you will be able to see these metrics right on Facebook Ads Manager:
You can also add subscription metrics to Facebook Ads report:

Facebook Lookalike Audience

Create Lookalike audience and launch Facebook Ads targeted on people who most likely will perform desired event. For example, create Lookalike audience based on people who recently purchased a subscription.
Step 1
2
3
4
5
6
7
✅ 8
Open Facebook Audiences Tool and select your Facebook Ads account in the dropdown in the top left corner.
Select “Create Audience” > “New Lookalike audience”:
Click on “Create New Source” > “Custom Audience”:
Select “App Activity”:
Select your app and Subscribe event. You may optionally choose a date range to include only users who made a purchase recently:
Name your audience and save.
Select location of people of your future audience and define audience size. Audience size ranges from 1% to 10%, where 1% is the closes to the target audience.
Once created, you will be able to choose this Lookalike audience while setting up Ad Set:
Read a post called "4 tricks on launching Facebook Ads for iOS app with subscriptions" in our blog, where we desribe several tactics to launch successful Facebook ad campaigns.

Troubleshooting

If you don't see events in your Facebook Analytics and Ads Manager, please check the following:
  • If you run SKAdNetwork campaigns make sure your target app event is in top priority of SKAdNetwork App Events configuration. If your main goal is Purchase event, then it should have the greatest conversion value. You can view and edit your App Events configuration for SKAdNetwork in your app's settings in Events Manager.
  • Keep in mind that integration works only for users that consented tracking. In other words IDFA is required for App Event to be processed by Facebook. Learn more.
  • If you have low number of installs, then SKAdNetwork may report null conversion values due to Apple Privacy Threshold. The more app installs you get, the more accurate SKAdNetwork campaign will be. Learn more.
  • Try to wait a few more hours, sometimes events appear in Events Manager / Ads Manager after up to 24 hours.
  • Make sure you are viewing events in correct category. Events that are being sent by Apphud are mapped to Facebook Standard events, like Purchase, Subscribe, etc. You can view and edit events mapping in Facebook Integration page in Apphud. In the given example, Trial Converted event is mapped to Subscribe standard event in Facebook
  • Verify that events are sent in Apphud Events page. Click "Integrations: sent" link and view event logs:
  • View Detailed information about the last 100 events received, including parameters that were sent by Apphud:
  • View your app events Diagnostics: