Search specific term/phrase surrounded by double quotes. e.g. “deep linking”
Exclude records that contain a specific term prefixed with a minus. e.g. Android -Firebase

Consumer Protection Preferences

Set user privacy preferences at a granular level.

Overview

Branch's Consumer Protection Preferences (CPP) model is an advancement in the user consent and attribution space. Instead of turning tracking either entirely on or entirely off for a user, you can take a more nuanced approach based on the level of consent you've received from them.

Once you've integrated a Branch SDK into your app, you can use it to tell Branch the level of data you want to collect and transmit about these users.

Branch offers four consumer data preference levels, ranging from full attribution to no attribution.

Using the setConsumerProtectionAttributionLevel method, you can relay to Branch the level of attribution and analytics data the user has consented to sharing with you and third parties.

Consumer Preference Levels

The table below lists the different consumer preference levels and provides a brief description of each. See the next section for a more detailed look at each level.

Consumer Preference LevelDescription
Full AttributionThis is the default level. This level includes advertising IDs and device IDs, as well as other data.
Privacy AttributionThis level does not include advertising IDs, but does include data from privacy frameworks like SKAN and Privacy Sandbox.
Analytics OnlyThis level includes device IDs, but does not include data from privacy frameworks.
No AttributionThis level only includes deterministic deep linking. Appropriate for customers with specific privacy compliance needs.

Consumer Preference Level Details

Full AttributionPrivacy AttributionAnalytics OnlyNo Attribution
Advertising IDs (aaid/idfa)YesNoNoNo
Device IDs (idfv/android_id/BFPID)YesYesYesNo
Persisted Non-Aggregate IDs (gclid)YesNoNoNo
Persisted Aggregate IDs (gbraid)YesNoNoNo
Privacy FrameworksYesYesNoNo
Ads Postbacks/WebhooksYesNoNoNo
Data Integrations/
Dashboard Webhooks
YesYesYesNo
SAN CalloutsYesNoNoNo
Deep LinkingAlwaysAlwaysAlwaysDeterministic Only

Usage

The table below describes how each consumer preference level is referred to in various languages.

Consumer Preference LevelSwiftObjective-CKotlinAndroid
Full AttributionfullBranchAttributionLevelFullFULLFULL
Privacy AttributionreducedBranchAttributionLevelReducedREDUCEDREDUCED
Analytics OnlyminimalBranchAttributionLevelMinimalMINIMALMINIMAL
No AttributionnoneBranchAttributionLevelNoneNONENONE

Examples

Use the values in the table above alongside the consumer preference method used in these examples to set the appropriate attribution levels for your customers.

iOS

// Set consumer preference level to "Privacy Attribution"
Branch.getInstance().setConsumerProtectionAttributionLevel(.reduced)
// Set consumer preference level to "Full Attribution"
[Branch setConsumerProtectionAttributionLevel:BranchAttributionLevelFull];

Android

// Set consumer preference level to "Analytics Only"
Branch.getInstance().setConsumerProtectionAttributionLevel(Defines.BranchAttributionLevel.MINIMAL)
// Set consumer preference level to "No Attribution"
Branch.getInstance().setConsumerProtectionAttributionLevel(Defines.BranchAttributionLevel.NONE);