Skip to content

Latest commit

 

History

History
565 lines (382 loc) · 15.7 KB

facebook.md

File metadata and controls

565 lines (382 loc) · 15.7 KB
description
This guide describes how to add and configure Facebook Evens Manager and Ads Manager integration.

Facebook

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?

{% hint style="danger" %} Since iOS 14.5 integration works only for users that consented tracking. Learn more. {% endhint %}

{% hint style="info" %} 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. {% endhint %}

{% tabs %} {% tab title="Step 1" %}

  • 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. {% endtab %}

{% tab title="2" %} Open your Facebook app settings and copy your App ID:

{% endtab %}

{% tab title="3" %} Under Advanced section copy Client Token:

{% endtab %}

{% tab title="4" %} Enter App ID and Client Token fields:

{% endtab %}

{% tab title="5" %} 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.

{% endtab %}

{% tab title="6" %} 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:

{% endtab %}

{% tab title="7" %} 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.

{% endtab %}

{% tab title="✅ 8" %} Enable Integration and save changes:

{% endtab %} {% endtabs %}

Pass attribution data to Apphud (required):

In case of Facebook attribution, you should pass empty data:

{% tabs %} {% tab title="Swift" %}

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()
}

{% endtab %}

{% tab title="Objective-C" %}

// Initialize Apphud
// ...
// Initialize Facebook
// ...
[Apphud addAttributionWithData:@{} from:ApphudAttributionProviderFacebook identifer:nil callback:^(BOOL result) {}];
// ...

- (void)applicationDidBecomeActive:(UIApplication *)application {
    [FBSDKAppEvents activateApp];
}

{% endtab %}

{% tab title="Kotlin" %}

// Initialize Apphud
// ...
// Initialize Facebook
// ...
Apphud.addAttribution(ApphudAttributionProvider.facebook)
// track installs manually
AppEventsLogger.activateApp(this)

{% endtab %} {% endtabs %}

While configuring integration you can also choose between sending revenue as sales or proceeds (without Apple / Google 15%-30% commission).

{% hint style="info" %} You can read more how Apple calculates commission here. {% endhint %}

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.

{% hint style="info" %} You can read more about subscription events here and parameters here. {% endhint %}

{% tabs %} {% tab title="Trial" %}

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 {% endtab %}

{% tab title="Cancellations" %}

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 {% endtab %}

{% tab title="Introductory Offer" %}

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 {% endtab %}

{% tab title="Regular" %}

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 {% endtab %}

{% tab title="Promo Offer" %}

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 {% endtab %}

{% tab title="Other Events" %}

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 {% endtab %} {% endtabs %}

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.

{% tabs %} {% tab title="Step 1" %} Open Facebook Audiences Tool and select your Facebook Ads account in the dropdown in the top left corner. {% endtab %}

{% tab title="2" %} Select “Create Audience” > “New Lookalike audience”:

{% endtab %}

{% tab title="3" %} Click on “Create New Source” > “Custom Audience”:

{% endtab %}

{% tab title="4" %} Select “App Activity”:

{% endtab %}

{% tab title="5" %} Select your app and Subscribe event. You may optionally choose a date range to include only users who made a purchase recently:

{% endtab %}

{% tab title="6" %} Name your audience and save. {% endtab %}

{% tab title="7" %} 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.

{% endtab %}

{% tab title="✅ 8" %} Once created, you will be able to choose this Lookalike audience while setting up Ad Set:

{% endtab %} {% endtabs %}

{% hint style="info" %} 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. {% endhint %}

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: