Skip to main content

Introduction

Branch is a mobile measurement partner (MMP) and deep-linking platform that attributes installs, app opens, and in-app events across mobile ad networks, deep links, email, and owned channels. It supports iOS and Android through the Branch SDK and surfaces attribution data through the Branch Query API. This connector reads attribution and aggregated performance data for a single Branch app. Each data source maps to one Branch account, identified by app key, and exposes installs, opens, clicks, cost, and standard or custom in-app events. Custom events defined in Branch appear automatically once they begin firing. Events are attributed using Branch’s per-app last-touch model, which is configured inside Branch rather than in Adriel. As a measurement connector, attribution events, breakdowns, and currencies are standardized so widgets can aggregate across sources without additional configuration. To connect this data source, see How to connect Branch to Adriel.

Data refresh strategy

Architecture data

Architecture covers the app and event catalog tied to the Branch app key. The event catalog is discovered from data returned by the Query API — new custom events appear automatically once they have fired and propagate into a refresh.

Reports data

Reports include daily attribution and performance data for the connected Branch app. Daily cache. This is a daily-cache connector: several days of data are refreshed on a daily basis. Initial fetch. After connection, historic daily data from the last 180 days is retrieved. Refresh schedule. At 5:00 PM UTC, the latest 5 days of data are refreshed. Rate limiting. Queries are subject to Branch’s 150 requests per hour limit (Branch Query API). A safety buffer triggers at 135 to leave headroom for retries. All Branch connector instances in the same process share one rate limiter, so concurrent jobs from different data sources contend on the same budget.

Architecture levels

App → Advertising partner → Campaign → Ad set → Ad → Creative → Keyword All hierarchy fields come from Branch’s last_attributed_touch_data_tilde_* family.

Date range limits

Metrics

How to read the columns Data type uses this vocabulary: Number, Currency, Percentage, Ratio, Duration, Date, Text, URL, Array, Boolean. API Key in code style like install is the literal Branch event name. Italic text describes how a value is produced when it doesn’t map cleanly to a single Branch field.

Clicks & impressions

Installs & app events

In-app revenue

Cost & ROAS

Cache metadata

Custom in-app events defined in Branch are exposed as metrics automatically the first time they fire and propagate into a refresh.

Breakdowns

Attribution touchpoints

All attribution breakdowns map to Branch’s last_attributed_touch_data_tilde_* fields.

Time & date grouping

Branch returns daily records; Adriel groups them into these views for reporting.

Limitations

  • 50,000 rows per request — a single Branch API request returns at most 50,000 rows; very wide queries may be truncated (Branch Query API).
  • No zero-activity rows — Branch does not return rows for date and breakdown combinations with zero activity, and the connector does not reinsert empty rows. Downstream dashboards should treat absent rows as zero, especially when averaging over sparse data.
  • Missing breakdown values become unknown — when Branch has no value for a breakdown on a given event, the literal string unknown is stored rather than null, keeping groupings consistent.
  • Missing metrics default to 0 — after Branch’s per-event responses are merged, any metric not present in a row is backfilled with 0 rather than null.
  • Shared rate limit — all Branch data sources in the same process share one 150-requests-per-hour budget, with a safety buffer at 135.
  • Deleted elements are not provided — historical rows for deleted campaigns and other elements are not returned.
  • Generic data source type — combining Branch with other connector types in a single widget requires blend settings.

API references

See also