Вranch
This guide describes how to add and configure Branch integration.
Branch is a platform to increase mobile revenue with enterprise-grade links built to acquire, engage, and measure across all devices, channels, and platforms.
Collect advertising identifiers
For both iOS and Android you must manually provide advertising identifier by calling
Apphud.setAdvertisingIdentifier(idfa)
on iOS andApphud.collectDeviceIdentifiers()
on Android.
Please follow all steps below:
Step 1
- Integrate Branch SDK into your app
- Match Apphud Device ID with Branch by Device ID (not User ID!):
Branch.getInstance().setIdentity(Apphud.deviceID())
- Collect Device Identifiers on Android (required).
- Enable User's Geo Country Breakdown (recommended)
- Receive Attribution Data for Apphud charts (optional)
Step 2
At Apphud go to "Integrations" section and add Branch:
Step 3
Important Note
Make sure you are in LIVE environment in Branch.
Open "Account Settings" in Branch and copy"Branch Key" :
Paste copied key into "Branch live key" field in integration settings:
Step 4
Return to Branch end switch to TEST environment.
Copy test Branch Key and paste into "Branch test key" field in Apphud:
Step 5
You can enter your custom event names or disable some.
Important Note
Please, use only lower-case alpha-numeric characters (a-z and 0-9) for your in-app event names.
Step 6
Enable integration and Save changes:
Collect Device Identifiers on Android (required)
For Android SDK 1.8.0 or higher, Advertising Identifier is not collected automatically. You must manually call Apphud.collectDeviceIdentifiers()
method after SDK initialization.
When targeting Android 13 and above, you must also declare AD_ID permission in the manifest file.
Enable User's Geo Country Breakdown (recommended)
Important Note
By default, all data in Branch dashboard show events country as US, because our servers are located in United States. Unfortunately, there is no technical way to automatically show correct country in Branch dashboard, because Branch doesn't allow to override correct country in their events.
The only way is to write email to Branch Support from your account and ask them to whitelist recording user's country instead of server's country.
So in order to view correct user's country in country breakdown please submit a ticket to Branch Support with the following text replaced with your real Branch App ID:
Subject:
Whitelist recording User IP address
Body:
Dear Branch Team!
\
We kindly ask you to whitelist app [BRANCH APP ID] for recording User's IP Address instead of Server's IP Address as we are using Apphud service that sends our app's events server side.
\
Kind regards
Receive Attribution Data (optional)
Receive attribution data from Branch using Webhooks in order to show it in Apphud Charts.
Important Note
Branch webhooks are only available on paid Data Feeds plan.
Please follow these steps:
Step 1
In your Branch integration page, please copy Webhook URL:
Step 2
Sign in to Branch, go to "Data Feeds" in "Data Import & Export" section. Open "Webhooks" and add new webhook:
Step 3
Using copied URL create two webhooks:
POST
webhook for everyINSTALL
event.POST
webhook for everyOPEN
event.
Step 4
As a result, you should have 2 webhooks configured in Branch: for INSTALL
and OPEN
events:
Step 5
Now you will see the data for users that Branch was able to attribute.
In Charts section you can filter your chart by campaign, ad set or ad.
Important Note
In order to receive Branch attribution data from Facebook, you should accept Facebook’s "Advanced Mobile Measurement Agreement" using this link.
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 Branch.
Note
You can read more about subscription events here and parameters here.
Trial
Trial period started
Event name: START_TRIAL
Default event alias: apphud_trial_started
Parameters:
content_items[0].$sku
: Stringcontent_items[0].$price
: Floatcontent_items[0].$quantity
= 1unit
: Stringunits_count
: Integer
Successful conversion from trial period to regular subscription
Event name: PURCHASE
Default event alias: apphud_trial_converted
Parameters:
content_items[0].$sku
: Stringcontent_items[0].$price
: Floatcontent_items[0].$quantity
= 1revenue
: Floatcurrency
: String
Failed conversion from trial period to regular subscription
Default event name and alias: apphud_trial_expired
Parameters:
product_id
: Stringreason
: String
Cancellations
Trial Canceled
Default event name and alias: apphud_trial_canceled
Parameters:
product_id
: String
Subscription Canceled
Default event name and alias: apphud_subscription_canceled
Parameters:
product_id
: String
Autorenew disabled (Deprecated)
Default event name and alias: apphud_autorenew_disabled
Parameters:
product_id
: String
Autorenew enabled
Default event name and alias: apphud_autorenew_enabled
Parameters:
product_id
: String
Introductory Offer
Introductory offer started
Event name: PURCHASE
Default event alias: apphud_intro_started
Parameters:
content_items[0].$sku
: Stringcontent_items[0].$price
: Floatcontent_items[0].$quantity
= 1revenue
: Floatcurrency
: Stringoffer_type
: Stringunit
: Stringunits_count
: Integer
Introductory offer renewed
Event name: PURCHASE
Default event alias: apphud_intro_renewed
Parameters:
content_items[0].$sku
: Stringcontent_items[0].$price
: Floatcontent_items[0].$quantity
= 1revenue
: Floatcurrency
: Stringoffer_type
: Stringunit
: Stringunits_count
: Integer
Successful conversion from introductory offer to regular subscription
Event name: PURCHASE
Default event alias: apphud_intro_converted
Parameters:
content_items[0].$sku
: Stringcontent_items[0].$price
: Floatcontent_items[0].$quantity
= 1revenue
: Floatcurrency
: Stringoffer_type
: String
Failed conversion from introductory offer to regular subscription or failed renew
Default event name and alias: apphud_intro_expired
Parameters:
product_id
: Stringreason
: Stringoffer_type
: String
Refund during introductory offer
Event name: PURCHASE
Default event alias: apphud_intro_refunded
Parameters:
content_items[0].$sku
: Stringcontent_items[0].$price
: Floatcontent_items[0].$quantity
= 1revenue
: Floatcurrency
: Stringreason
: Stringoffer_type
: String
Regular
Subscription started
Event name: PURCHASE
Default event alias: apphud_subscription_started
Parameters:
content_items[0].$sku
: Stringcontent_items[0].$price
: Floatcontent_items[0].$quantity
= 1revenue
: Floatcurrency
: String
Subscription renewed
Event name: PURCHASE
Default event alias: apphud_subscription_renewed
Parameters:
content_items[0].$sku
: Stringcontent_items[0].$price
: Floatcontent_items[0].$quantity
= 1revenue
: Floatcurrency
: String
Subscription expired
Default event name and alias: apphud_subscription_expired
Parameters:
product_id
: Stringreason
: String
Subscription refunded
Event name: PURCHASE
Default event alias: apphud_subscription_refunded
Parameters:
content_items[0].$sku
: Stringcontent_items[0].$price
: Floatcontent_items[0].$quantity
= 1revenue
: Floatcurrency
: Stringreason
: String
Promo Offer
Promotional offer started
Event name: PURCHASE
Default event alias: apphud_promo_started
Parameters:
content_items[0].$sku
: Stringcontent_items[0].$price
: Floatcontent_items[0].$quantity
= 1offer_id
: Stringrevenue
: Floatcurrency
: Stringoffer_type
: Stringunit
: Stringunits_count
: Integer
Promotional offer renewed
Event name: PURCHASE
Default event alias: apphud_promo_renewed
Parameters:
content_items[0].$sku
: Stringcontent_items[0].$price
: Floatcontent_items[0].$quantity
= 1offer_id
: Stringrevenue
: Floatcurrency
: Stringoffer_type
: Stringunit
: Stringunits_count
: Integer
Successful conversion from promotional offer to regular subscription
Event name: PURCHASE
Default event alias: apphud_promo_converted
Parameters:
content_items[0].$sku
: Stringcontent_items[0].$price
: Floatcontent_items[0].$quantity
= 1offer_id
: Stringrevenue
: Floatcurrency
: Stringoffer_type
: String
Failed conversion from promotional offer to regular subscription or failed renew
Default event name and alias: apphud_promo_expired
Parameters:
product_id
: Stringoffer_id
: Stringreason
: Stringoffer_type
: String
Refund during promotional offer
Event name: PURCHASE
Default event name: apphud_promo_refunded
Parameters:
content_items[0].$sku
: Stringcontent_items[0].$price
: Floatcontent_items[0].$quantity
= 1offer_id
: Stringrevenue
: Floatcurrency
: Stringreason
: Stringoffer_type
: String
Other Events
Non renewing purchase
Event name: PURCHASE
Default event alias: apphud_non_renewing_purchase
Parameters:
content_items[0].$sku
: Stringcontent_items[0].$price
: Floatcontent_items[0].$quantity
= 1revenue
: Floatcurrency
: String
Non renewing purchase refunded
Event name: PURCHASE
Default event alias: apphud_non_renewing_purchase_refunded
Parameters:
content_items[0].$sku
: Stringcontent_items[0].$price
: Floatcontent_items[0].$quantity
= 1revenue
: Floatcurrency
: Stringreason
: String
Billing Issue
Default event name and alias: apphud_billing_issue
Parameters:
product_id
: String
Billing issue Resolved
Default event name: [Apphud] billing_issue_resolved
Parameters:
product_id
: String
-- Any other custom events --
Default event name: [Apphud] any_other_custom_event
- Make sure Branch SDK is properly integrated in your app and Branch integration is configured in Apphud.
- Make sure
Branch.getInstance().setIdentity(Apphud.deviceID())
is called. - If Branch's
setIntegrationsTestMode()
method is used, then useTEST
environment in Branch. - Open "Liveview" tab in Branch and you will see Apphud events there.
Updated 6 months ago