What Branch means for your app's privacy disclosures

Branch is an install attribution tool. What it involves, whether it needs the tracking prompt, what goes on the App Store labels and the Play Data safety form, and the rejection it is usually behind.

Updated · Written from the same rules terms.gg uses to generate documents

What Branch actually does

Deep links that survive an install, plus the attribution that comes with them.

What its job necessarily involves

These follow from what the thing is for, so they are true whichever version you installed:

What to open and check in Branch

The settings below decide what the honest answer on the forms is, and they are specific to this SDK rather than to its category:

Branch needs the tracking prompt

Branch is attribution and install measurement, so App Tracking Transparency applies. Matching an install to the ad that caused it is the definition of tracking Apple uses. Ship without the prompt and the app is rejected; ship with the prompt and ignore the answer, which some SDKs still do by default, and you have a problem larger than a rejection.

Branch in Europe: nothing may run before consent

This is the part that gets missed, because the natural place to initialise an SDK is the moment the app launches, and the natural place to ask for consent is a screen that appears after it. Reading or writing anything on the device for attribution and install measurement needs agreement first, and that comes from the ePrivacy rules rather than the GDPR, so picking a different legal basis does not get you past it.

Branch in California: this counts as selling or sharing

California reads "sell or share" far more widely than money changing hands. Handing an identifier to attribution and install measurement so someone can be advertised to elsewhere is caught, and no payment has to occur for it to count.

Branch on the App Store privacy labels

Apple asks what your app collects, and your app collects whatever its SDKs collect. Branch is generally declared under Third-Party Advertising, alongside whatever the rest of your app does for its own reasons.

Branch on the Google Play Data safety form

The form asks two things the labels do not: whether data is shared with anyone else, and whether it is encrypted in transit. For this SDK the sharing answer is yes, and answering no is a false declaration rather than an oversight.

Check Branch's own privacy manifest for Branch

Since 2024 Apple has required third-party SDKs on its list to ship a signed privacy manifest declaring what they collect and which sensitive APIs they use, and your app's combined manifest is built from them. That file is the authoritative answer for Branch, it comes from Branch, and it changes when they ship.

The rejection Branch is usually behind

Deferred deep linking works by matching a device across a web visit and an app launch, and the policy describes none of it.

What to put in the privacy policy about Branch

Keeping it true after launch

A legal page stops being true the moment the product moves past it, usually by adding a payment provider, an analytics SDK or a sign-in. No store re-checks your pages against your build, so the drift is yours to notice.

Common questions

Do I need a privacy policy just because I use Branch?

Yes, and you needed one anyway. Both stores ask for the URL before a listing goes live, whatever the app does. The SDK changes what the policy has to say, not whether you need one.

Can I skip the tracking prompt if I turn off personalised ads?

Turning off personalisation is not the same as not tracking. The prompt is about accessing the identifier and linking data with other companies, so check what the SDK still does with non-personalised ads before deciding.

Does removing the SDK fix a rejection?

Usually yes and it is the fastest route, but only if you also correct the labels and the form. Reviewers compare what you declared against what the binary contains, and a stale declaration fails on its own.