Skip to main content

Branch

Branch enables customers to reach, interact, and assess results across diverse devices, channels, and platforms. It's a user-friendly platform designed to enhance mobile revenue through specialized links that work seamlessly on all devices, channels, and platforms.

Adapty provides a complete set of data that lets you track subscription events from stores in one place. With Adapty, you can easily see how your subscribers are behaving, learn what they like, and use that information to communicate with them in a way that's targeted and effective.

The integration between Adapty and Branch operates in two main ways.

  1. Receiving attribution data from Branch
    Once you've set up the Branch integration, Adapty will start receiving attribution data from Branch. You can easily access and view this data on the user's profile page.

  2. Sending subscription events to Branch
    Adapty can send all subscription events which are configured in your integration to Branch. As a result, you'll be able to track these events within the Branch dashboard.

Set up integration

Connect Adapty to Branch

To integrate Branch go to Integrations > Branch in Adapty Dashboard , turn on a toggle from off to on, and fill out fields.

To get the value for the Branch Key, open your Branch Account Settings and find the Branch Key field. Use it for the Key test (for Sandbox) or Key live (for Production) field in the Adapty Dashboard. In Branch, switch between Live and Tests environments for the appropriate key.

Configure events and tags

Below the credentials, there are three groups of events you can send to Branch from Adapty. Simply turn on the ones you need. Check the full list of the events offered by Adapty here.

You can send an event with Proceeds (after Apple/Google cut) or just revenue. Also, you can check a box for reporting in the user's currency.

We recommend using the default event names provided by Adapty. But you can change the event names based on your needs.

Adapty will send subscription events to Branch using a server-to-server integration, allowing you to view all subscription events in your Branch dashboard and link them to your acquisition campaigns.

Connect your app to Branch

  1. Call the .setIntegrationIdentifier() SDK method to initialize the connection. You can pass your Branch Identity ID to the customerUserId parameter.
do {
try await Adapty.setIntegrationIdentifier(
key: "branch_id",
value: <BRANCH_IDENTITY_ID>
)
} catch {
// handle the error
}
  1. Use the .updateAttribution() method to save the attribution data. If you did not specify the Branch user ID in the previous step, pass it to the networkUserId parameter here.
class YourBranchImplementation {
func initializeBranch() {
// Pass the attribution you receive from the initializing method of Branch iOS SDK to Adapty.
Branch.getInstance().initSession(launchOptions: launchOptions) { (data, error) in
if let data {
Adapty.updateAttribution(data, source: .branch)
}
}
}
}

Event structure

Adapty sends selected events to Branch as configured in the Events names section on the Branch Integration page. Each event is structured like this:

{
"branch_key": "key_live_kaFuWw8WvY7n1ss7...",
"name": "PURCHASE",
"user_data": {
"os": "iOS",
"developer_identity": "user_12345",
"country": "US",
"ip": "192.168.100.1",
"idfa": "00000000-0000-0000-0000-000000000000",
"idfv": "00000000-0000-0000-0000-000000000000",
"aaid": "00000000-0000-0000-0000-000000000000"
},
"event_data": {
"transaction_id": "GPA.3383-4699-1373-07113",
"revenue": 9.99,
"currency": "USD"
},
"custom_data": {
"vendor_product_id": "yearly.premium.6999",
"original_transaction_id": "GPA.3383-4699-1373-07113",
"store": "play_store",
"environment": "production"
}
}

Where:

ParameterTypeDescription
branch_keyStringYour Branch Key.
nameStringThe Branch event name (mapped from Adapty event, e.g., "PURCHASE").
user_dataObjectUser information.
user_data.osString"Android" or "iOS".
user_data.developer_identityStringThe user's Customer User ID.
user_data.countryStringCountry code based on user's IP.
user_data.ipStringUser's IP address.
user_data.idfaStringiOS only. ID for Advertisers.
user_data.idfvStringiOS only. ID for Vendors.
user_data.aaidStringAndroid only. Google Advertising ID.
event_dataObjectStandard event metrics (only present for PURCHASE and similar events).
event_data.transaction_idStringStore Transaction ID.
event_data.revenueFloatRevenue amount.
event_data.currencyStringCurrency code (e.g., "USD").
custom_dataObjectDetailed event attributes (contains all available event fields).