Branch is a platform to increase mobile revenue with enterprise-grade links built to acquire, engage, and measure across all devices, channels, and platforms.
This integration works in two ways.
Once you successfully configured Branch integration, Apphud will receive attribution data from it. You can view this data on user's page:
Apphud can also send all subscription events to Branch. So you could view these events in Branch dashboard and Branch could pass this data to their partners. This will help to measure efficiency of your ad campaigns.
Please follow all steps below:
Integrate Branch SDK into your app.
Match Apphud Device ID with Branch by Device ID (not User ID!):
Branch.getInstance().setIdentity(Apphud.deviceID())
Enable User's Geo Country Breakdown (highly recommended).
At Apphud go to "Integrations" section and add Branch:
Copy Webhook URL:
Sign in to Branch, go to "Data Feeds" in "Data Import & Export" section. Open "Webhooks" and add new webhook:
Paste Webhook URL copied from Apphud to "Send a webhook to" field. Make sure you selected POST
option and INSTALL
event:
Create one more Branch webhook using the same Webhook URL, but select OPEN
event instead of INSTALL
:
As a result, you should have 2 webhooks configured in Branch: for INSTALL
and OPEN
events:
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:
Return to Branch end switch to TEST environment.
Copy test Branch Key and paste into "Branch test key" field in Apphud:
You can enter your custom event names or disable some.
Please, use only lower-case alpha-numeric characters (a-z and 0-9) for your in-app event names.
Enable integration:
Save changes:
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 write email to support@branch.io
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
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.
In order to receive Branch attribution data from Facebook, you should accept Facebook’s "Advanced Mobile Measurement Agreement" using this link.
This is a list of all possible events and their parameters that are being sent to Branch.
Event name: START_TRIAL
Default event alias: apphud_trial_started
Parameters:
content_items[0].$sku
: String
content_items[0].$price
: Float
content_items[0].$quantity
= 1
unit
: String
units_count
: Integer
Event name: PURCHASE
Default event alias: apphud_trial_converted
Parameters:
content_items[0].$sku
: String
content_items[0].$price
: Float
content_items[0].$quantity
= 1
revenue
: Float
currency
: String
Default event name and alias: apphud_trial_expired
Parameters:
product_id
: String
reason
: String
Default event name and alias: apphud_trial_canceled
Parameters:
product_id
: String
Default event name and alias: apphud_subscription_canceled
Parameters:
product_id
: String
Default event name and alias: apphud_autorenew_disabled
Parameters:
product_id
: String
Default event name and alias: apphud_autorenew_enabled
Parameters:
product_id
: String
Event name: PURCHASE
Default event alias: apphud_intro_started
Parameters:
content_items[0].$sku
: String
content_items[0].$price
: Float
content_items[0].$quantity
= 1
revenue
: Float
currency
: String
offer_type
: String
unit
: String
units_count
: Integer
Event name: PURCHASE
Default event alias: apphud_intro_renewed
Parameters:
content_items[0].$sku
: String
content_items[0].$price
: Float
content_items[0].$quantity
= 1
revenue
: Float
currency
: String
offer_type
: String
unit
: String
units_count
: Integer
Event name: PURCHASE
Default event alias: apphud_intro_converted
Parameters:
content_items[0].$sku
: String
content_items[0].$price
: Float
content_items[0].$quantity
= 1
revenue
: Float
currency
: String
offer_type
: String
Default event name and alias: apphud_intro_expired
Parameters:
product_id
: String
reason
: String
offer_type
: String
Event name: PURCHASE
Default event alias: apphud_intro_refunded
Parameters:
content_items[0].$sku
: String
content_items[0].$price
: Float
content_items[0].$quantity
= 1
revenue
: Float
currency
: String
reason
: String
offer_type
: String
Event name: PURCHASE
Default event alias: apphud_subscription_started
Parameters:
content_items[0].$sku
: String
content_items[0].$price
: Float
content_items[0].$quantity
= 1
revenue
: Float
currency
: String
Event name: PURCHASE
Default event alias: apphud_subscription_renewed
Parameters:
content_items[0].$sku
: String
content_items[0].$price
: Float
content_items[0].$quantity
= 1
revenue
: Float
currency
: String
Default event name and alias: apphud_subscription_expired
Parameters:
product_id
: String
reason
: String
Event name: PURCHASE
Default event alias: apphud_subscription_refunded
Parameters:
content_items[0].$sku
: String
content_items[0].$price
: Float
content_items[0].$quantity
= 1
revenue
: Float
currency
: String
reason
: String
Event name: PURCHASE
Default event alias: apphud_promo_started
Parameters:
content_items[0].$sku
: String
content_items[0].$price
: Float
content_items[0].$quantity
= 1
offer_id
: String
revenue
: Float
currency
: String
offer_type
: String
unit
: String
units_count
: Integer
Event name: PURCHASE
Default event alias: apphud_promo_renewed
Parameters:
content_items[0].$sku
: String
content_items[0].$price
: Float
content_items[0].$quantity
= 1
offer_id
: String
revenue
: Float
currency
: String
offer_type
: String
unit
: String
units_count
: Integer
Event name: PURCHASE
Default event alias: apphud_promo_converted
Parameters:
content_items[0].$sku
: String
content_items[0].$price
: Float
content_items[0].$quantity
= 1
offer_id
: String
revenue
: Float
currency
: String
offer_type
: String
Default event name and alias: apphud_promo_expired
Parameters:
product_id
: String
offer_id
: String
reason
: String
offer_type
: String
Event name: PURCHASE
Default event name: apphud_promo_refunded
Parameters:
content_items[0].$sku
: String
content_items[0].$price
: Float
content_items[0].$quantity
= 1
offer_id
: String
revenue
: Float
currency
: String
reason
: String
offer_type
: String
Event name: PURCHASE
Default event alias: apphud_non_renewing_purchase
Parameters:
content_items[0].$sku
: String
content_items[0].$price
: Float
content_items[0].$quantity
= 1
revenue
: Float
currency
: String
Event name: PURCHASE
Default event alias: apphud_non_renewing_purchase_refunded
Parameters:
content_items[0].$sku
: String
content_items[0].$price
: Float
content_items[0].$quantity
= 1
revenue
: Float
currency
: String
reason
: String
Default event name and alias: apphud_billing_issue
Parameters:
product_id
: String
Default event name: [Apphud] billing_issue_resolved
Parameters:
product_id
: String
Please make sure Branch SDK is properly integrated in your app and Branch integration is configured in Apphud.
Open Xcode, remove your app from test device, reset Advertising Identifier and Run the app.
Make a test purchase.
You can read more about testing purchases here.
You will see attribution data in user's page:
Open "Liveview" tab in Branch and you will see Apphud events there.
Don't forget to switch Branch to TEST mode if you use setIntegrationsTestMode().