Integrating Branch to Clarisights
Branch is a mobile growth and attribution platform. Connecting Branch to Clarisights brings install, click, impression, and custom-event attribution data alongside the rest of your marketing performance, so you can analyze paid acquisition cost-per-install, post-install conversion, and ROAS in the same reports as your ad-channel spend.
Branch is classified as an Analytics channel in Clarisights — it provides attribution data that's joined to your ad channels (Google Ads, Apple Search Ads, Facebook, Snapchat, Twitter, plus any Custom Advertising channels you've configured).
At a glance
| Authentication | Branch Key + Branch Secret (per Branch app) |
| Permissions needed | Access to Account Settings → Profile on the Branch dashboard for each app |
| Account discovery | Each Branch app is connected individually with its own key/secret pair |
| Data freshness | Daily (7-day rolling pull window) |
| Lookback window | 7 days |
| Backfill on connect | Last 7 days; longer historical backfills available on request |
| Timezone | UTC |
| Currency | Native (typically USD); converted to your reporting currency by Clarisights |
| Levels supported | App · Advertising Partner · Campaign · Ad Set · Ad · Keyword |
| Limited rollout | No |
Prerequisites
An active Branch account with one or more Branch apps
Access to the Branch dashboard with permissions to view Account Settings → Profile
The Branch Key and Branch Secret for each app you want to connect
The Branch app's App ID and a friendly App Name
Steps to Connect
Step 1 — Get your Branch credentials
In the Branch dashboard, go to Account Settings → Profile. For each app you want to connect, copy:
App Name
App ID
Branch Key
Branch Secret
[TODO: Screenshot needed — Branch dashboard Account Settings → Profile showing key/secret]
Treat the Branch Secret like a password. It grants read access to your Branch query API for that app.
Step 2 — Connect the app in Clarisights
In Clarisights, go to Integrations → Branch and click + Connect. Paste the App Name, App ID, Branch Key, and Branch Secret and submit.
[TODO: Screenshot needed — Clarisights Integrations page Branch connect modal]
⚠ "Authentication failed" on submit → Re-check that the Branch Key and Secret were copied without leading/trailing whitespace and that the credentials match the same Branch app. Keys and secrets are app-specific.
Step 3 — Connect each additional app individually
If you have multiple Branch apps, repeat Steps 1–2 for each one. Branch's API exposes one app's data per credential pair.
Step 4 — Configure data sources (Analytics Config)
From the Branch integration page, open Analytics Config to choose which Branch data sources Clarisights should pull. Branch groups metrics into data sources — by default Clarisights pulls:
cost — spend across ad channels
eo_install — installs across ad channels
eo_impression — impressions
eo_click — clicks
eo_open — app opens
eo_custom_event — your custom in-app events
eo_commerce_event — revenue / commerce events (revenue data source)
Custom events configured on Branch can be exposed as their own metrics. Let your Clarisights CSM know which custom events you want pulled. The data-source list applies to all Branch apps connected to your workspace.
[TODO: Screenshot needed — Clarisights Analytics Config for Branch]
Step 5 — Configure advertising channels (Connection Config)
Open Connection Config to enable each ad channel you want Branch attribution joined to. Supported partners:
Google Ads
Apple Search Ads
Facebook Ads
Snapchat Ads
Twitter Ads
Custom Advertising channels
For native channels, set the Counter Type and Attribution Type (defined below). For Custom Advertising channels, you'll also set the Branch Partner Name, Strategies, and Joining Dimensions; your Clarisights CSM will help with these settings.
[TODO: Screenshot needed — Clarisights Connection Config for Branch]
Verify the connection
Go to Integrations → Branch. Each connected Branch app should show a "Connected" status.
First data appears within ~24 hours of the next scheduled sync.
Quick start: open a report that uses one of your ad channels (Google Ads, Apple Search Ads, etc.), and add Branch Installs as a metric. The values should populate against the campaign/ad-group rows in that report.
Data available
Hierarchy
Branch is an analytics channel — its data is joined onto your ad channels rather than living in its own ad-account hierarchy. The conceptual hierarchy below is how Branch organizes data internally; it maps to standard Clarisights levels via the underlying ad channel.
Native level (Branch) | Clarisights level |
Branch App | Account (one Clarisights account per Branch app) |
Advertising Partner Name | Joined to the matching ad channel (Google Ads, Apple Search Ads, Facebook, etc.) |
Campaign / Campaign ID | Campaign on the joined ad channel |
Ad Set / Ad Set ID | Ad Group on the joined ad channel |
Ad / Ad ID | Ad on the joined ad channel |
Keyword | Keyword (search channels only) |
(Unpopulated / null partner) | "Unpopulated" — organic / non-ad-attributed activity |
Counter Type (aggregation type): Branch returns each event as either a unique count (one event per user/day) or a total count (every occurrence). Set this per ad channel in Connection Config; Branch's API only returns one of the two per request.
Example: a user who opens the app 3 times in a day → unique = 1, total = 3. Over a month the gap is significant.
Attribution Type: Branch supports last_touch and last_CTA_view. You can set this per ad channel — e.g., last_touch for Google Ads, last_CTA_view for Facebook. Default is last_touch. Tell your Clarisights CSM if you need a different model on a specific channel.
Dimensions
Dimension | Level | Description |
Branch App / Branch App ID | Account | The connected Branch app |
Advertising Partner Name | Account / Channel | Partner attributed by Branch (Google Ads, Apple Search Ads, Facebook, etc.); "Unpopulated" for organic |
Campaign / Campaign ID | Campaign | Campaign name and ID from the ad channel |
Ad Set / Ad Set ID | Ad Group | Ad set name and ID |
Ad / Ad ID | Ad | Ad / creative name and ID |
Keyword | Ad | Keyword (Google Ads / Apple Search Ads) |
Country Code | Event | User country at event time |
Platform | Event | iOS / Android / Web |
Feature | Event | Branch feature tag (deep linking, journey, etc.) |
Channel | Event | Branch channel parameter (utm_medium-style) |
Sub-channel | Event | Branch sub-channel parameter |
Data Source | Event | Branch data source (eo_install, eo_click, etc.) |
Event Name | Event | The Branch event name (snakecase) |
Metrics
Branch metrics are pulled per data source. The exact list depends on which data sources you enable in Analytics Config.
Standard data sources
Data source | Description |
cost | Spend reported via Branch from connected ad channels |
eo_install | App installs (attributed) |
eo_impression | Ad impressions tracked through Branch |
eo_click | Ad clicks tracked through Branch |
eo_open | App opens (configurable as unique or total) |
eo_custom_event | Custom in-app events you've configured in Branch |
eo_commerce_event | Commerce events including revenue |
SKAdNetwork data sources (configurable) | iOS SKAN postback events with Branch's conversion-value mapping |
Custom event metrics
Each custom event configured in Branch surfaces as its own metric in Clarisights (e.g. br_event_purchase, br_event_complete_registration). Send your CSM the list of custom events you want exposed.
Revenue metrics
Commerce events come with a revenue companion metric (suffix br_rev_*) that surfaces revenue per event in your reporting currency.
Limitations & known constraints
One app per credential: each Branch app needs its own key/secret. Use multiple connections for multi-app accounts.
Data sources are workspace-wide: the list of enabled data sources in Analytics Config applies to every connected Branch app in your Clarisights workspace.
API rate limits: Branch enforces 5 req/sec, 20 req/min, and 150 req/hour per organization. High-frequency backfills are throttled and may take longer to complete.
7-day rolling pull window: each scheduled sync pulls the last 7 days. Late-arriving attribution older than 7 days will not update existing rows; ask your CSM about a backfill if you need it.
Counter Type is per-channel: you can only request unique or total, not both. Choose based on how you analyze each channel.
Page size 20 000 rows: results are paginated; very wide breakdowns over long date ranges may take multiple pages to fetch.
Organic attribution: events with no ad partner are tagged "Unpopulated" rather than mapped to an ad channel.
Operating notes
Refresh schedule: daily, with a 7-day rolling lookback.
Lookback: 7 days.
Multi-app: connect each Branch app individually; each becomes its own Clarisights account.
Currency conversion: native amounts are pulled as-is and converted by Clarisights.
Credential rotation: rotate the Branch Key/Secret in the Branch dashboard, then update Clarisights via Integrations → Branch → Edit Connection.
Adding new ad channels: enable a new partner in Connection Config and configure its Counter Type and Attribution Type. Your CSM helps for Custom Advertising partners (which need Branch Partner Name, Strategies, and Joining Dimensions).
SKAN events: if you use SKAdNetwork, share the SKAN event names and conversion-value mapping with your CSM so they can be exposed as named metrics.
Need help?
When contacting support from the in-app messenger, please include:
The Branch App Name and App ID (Integrations → Branch)
The ad channel and date range affected
The Counter Type and Attribution Type configured for that channel
The exact error message or screenshot
When the issue started