Integration · Attribution and ads measurement

Attribute subscription revenue to Branch links and campaigns

RevenueDot sends trial starts as START_TRIAL, purchases, trial conversions and renewals as SUBSCRIBE, and one-time purchases as PURCHASE to Branch's v2 Events API, with revenue in US dollars and the product as a content item. Other steps go as custom events named like rc_cancellation_event. Branch needs a device id, and developer_identity is the app user id.

What teams do with it

  • Credit subscription revenue to the Branch link or campaign behind each install.
  • Measure which deep links bring users who pay.
  • Build Branch audiences from trial starts and cancellations.
  • Send web funnel events to Branch as web events, opt-in.

What RevenueDot sends

  • START_TRIAL, SUBSCRIBE and PURCHASE go to Branch's standard event endpoint. Every other step goes to the custom event endpoint as rc_<step>_event.
  • Paid events carry event_data.revenue in US dollars, currency USD and a content item for the product. Branch takes no negative revenue, so refunds carry none.
  • developer_identity is $branchId when your app sets it, otherwise the app user id.
  • On iOS the customer needs $idfa or $idfv. On Android the customer needs $gpsAdId or $androidId. Without one, RevenueDot skips the event.
  • custom_data.event_id holds the event id for your own deduplication, because Branch has no event id field.
  • Use the live key (key_live_) in Branch key and the test key (key_test_) in Sandbox Branch key. Without the sandbox key, sandbox events are not sent.

Setup

How to connect Branch to RevenueDot

  1. 01

    Copy the Branch keys

    In Branch, open Account Settings, Profile and copy the live Branch Key (key_live_). Copy the test key (key_test_) for sandbox events.

  2. 02

    Collect device ids

    In your app, call collectDeviceIdentifiers() so RevenueDot has $idfa or $idfv on iOS and $gpsAdId or $androidId on Android.

  3. 03

    Open the integration

    In RevenueDot, open Integrations in the project sidebar and choose Branch.

  4. 04

    Enter the keys

    Fill Branch key and Sandbox Branch key, and pick Sales reporting.

  5. 05

    Connect and test

    Click Connect Branch, then Send test event for a customer who has a device id.

The Branch integration page in the RevenueDot dashboard, with its settings form
Captured from the RevenueDot dashboard with demo data.

How RevenueDot delivers events to Branch

  • Timeouts, rate limits (HTTP 429) and server errors (5xx) from Branch retry on the webhook schedule: after 5, 10, 20, 40 and 80 minutes.
  • Any other 4xx answer fails at once, because sending the same request again cannot work. Fix the setting, then click Replay failed.
  • The delivery log keeps each request with every secret replaced by [redacted], the answer, the time taken and, for skipped events, the reason.
  • Credentials are sealed with AES-256-GCM on the server. After you save a key, the dashboard shows only its last four characters.
  • Branch answers some rejected events with an error field. RevenueDot logs Branch's message.

FAQ

Branch and RevenueDot

Does the Branch integration work with the RevenueCat SDK?

Yes. RevenueDot speaks the RevenueCat SDK protocol, so your app keeps the RevenueCat SDK and only the server address changes. Call collectDeviceIdentifiers() in the app, so RevenueDot has the device ids Branch needs to match the event.

Is it the same as RevenueCat's Branch integration?

It follows RevenueCat's behavior: START_TRIAL, SUBSCRIBE and PURCHASE as Branch standard events, other steps as custom events with the rc_*_event names. RevenueCat's version has years of production use behind it. RevenueDot's is newer, so run Send test event and check Branch before you rely on it.

Why does RevenueDot reject my Branch key?

Branch key must be the live key and start with key_live_. The test key, which starts with key_test_, goes in Sandbox Branch key.

Are web purchases sent?

Not as app events. Web purchases are skipped by the app event path. Opt-in funnel events can go to Branch as web events with the visitor's user agent, IP address and page URL.

Sources: Branch · Branch v2 Events API · RevenueCat attribution integrations. Branch is a trademark of its owner, used to describe compatibility. RevenueDot is not affiliated with or endorsed by it.

Get started

Send Branch every subscription event.

Start free on RevenueDot Cloud, free up to $10,000 a month in tracked revenue. Integrations are included on every plan.

Already have an account? Sign in · Prefer your own servers? Self-host free