Privacy features

GDPR right to be forgotten

In accordance with article 17 of the EU's General Data Protection Regulation (GDPR), you can notify Adjust when a user has exercised their right to be forgotten (RTBF). Call the gdprForgetMe method to have the Adjust SDK communicate the user's RTBF request to the Adjust backend:

Objective-C
Swift
Javascript
[Adjust gdprForgetMe];

When the Adjust backend receives this information, Adjust will erase the user's data. The Adjust SDK will also stop tracking the user and will not send requests from the device in future.

Third-party sharing for specific users

You can use the Adjust SDK to record when a user changes their third-party sharing settings.

Disable third-party sharing for specific users

Some users may want to opt-out of sharing their data with third-parties. To communicate this to Adjust, call the trackThirdPartySharing method with a false value.

Objective-C
Swift
Javascript
ADJThirdPartySharing *adjustThirdPartySharing = [[ADJThirdPartySharing alloc] initWithIsEnabledNumberBool:@NO];
[Adjust trackThirdPartySharing:adjustThirdPartySharing];

When the backend gets this information it will stop sharing the user's data with third-parties. The Adjust SDK will continue to work as expected.

Enable or re-enable third-party sharing for specific users

If a user enables or re-enables sharing with third-parties, you need to relay this to the backend. Call the trackThirdPartySharing method with a true value to do this.

Objective-C
Swift
Javascript
ADJThirdPartySharing *adjustThirdPartySharing = [[ADJThirdPartySharing alloc] initWithIsEnabledNumberBool:@YES];
[Adjust trackThirdPartySharing:adjustThirdPartySharing];

When the backend gets this information it will update the user's settings. The Adjust SDK will continue to work as expected.

Send granular information to Adjust backend

You can attach granular information when a user updates their third-party sharing preferences. You can use this information to communicate more detail about a user's decision.

Objective-C
Swift
Javascript
ADJThirdPartySharing *adjustThirdPartySharing = [[ADJThirdPartySharing alloc] initWithIsEnabledNumberBool:nil];
[adjustThirdPartySharing addGranularOption:@"PartnerA" key:@"foo" value:@"bar"];
[Adjust trackThirdPartySharing:adjustThirdPartySharing];

Update partner sharing settings

- (void)addPartnerSharingSetting:(nonnull NSString *)partnerName
                             key:(nonnull NSString *)key
                           value:(BOOL)value;

By default, Adjust shares all metrics with any partners you've configured in your app settings. You can use the Adjust SDK to update your third party sharing settings on a per-partner basis. To do this, call the addPartnerSharingSetting method with the following arguments:

ArgumentData typeDescription
partnerNameStringThe name of the partner. Download the full list of available partners
keyStringThe metric to share with the partner
valueBooleanThe user's decision

You can use the key to specify which metrics you want to disable or re-enable. If you want to enable/disable sharing all metrics, you can use the all key. The full list of available metrics is available below:

  • ad_revenue
  • all
  • attribution
  • update
  • att_update
  • cost_update
  • event
  • install
  • reattribution
  • reattribution_reinstall
  • reinstall
  • rejected_install
  • rejected_reattribution
  • sdk_click
  • sdk_info
  • session
  • subscription
  • uninstall

When you set a false value against a metric for a partner, Adjust stops sharing the metric with the partner.

Tip:

If you only want to share a few metrics with a partner, you can pass the all key with a false value to disable all sharing and then pass individual metrics with a true value to limit what you share.

Examples

If you want to stop sharing all metrics with a specific partner, pass the all key with a false value.

Swift
Objective-C
Javascript
let adjustThirdPartySharing = ADJThirdPartySharing.initWithIsEnabledNumberBool(nil)
adjustThirdPartySharing.addPartnerSharingSetting("PartnerA", key: "all", value: false)
Adjust.trackThirdPartySharing(adjustThirdPartySharing)

To re-enable sharing, pass the all key with a true value.

Swift
Objective-C
Javascript
let adjustThirdPartySharing = ADJThirdPartySharing.initWithIsEnabledNumberBool(nil)
adjustThirdPartySharing.addPartnerSharingSetting("PartnerA", key: "all", value: true)
Adjust.trackThirdPartySharing(adjustThirdPartySharing)

You can stop or start sharing specific metrics by calling the addPartnerSharingSetting method multiple times with different keys. For example, if you only want to share event information with a partner, you can pass:

  • all with a false value to disable sharing all information.
  • event with a true value to enable event sharing
Note:

Specific keys always take priority over all. If you pass all with other keys, the individual key values override the all setting.

Swift
Objective-C
Javascript
let adjustThirdPartySharing = ADJThirdPartySharing.initWithIsEnabledNumberBool(nil)
adjustThirdPartySharing.addPartnerSharingSetting("PartnerA", key: "all", value: false)
adjustThirdPartySharing.addPartnerSharingSetting("PartnerA", key: "event", value: true)
Adjust.trackThirdPartySharing(adjustThirdPartySharing)

Manage Facebook Limited Data Use

Important:
The Adjust SDK sends information to Facebook as soon as the app is installed. You need to make sure you call this method before initializing the SDK.

Facebook provides a feature called Limited Data Use (LDU) to comply with the California Consumer Privacy Act (CCPA). This feature enables you to notify Facebook when a California-based user is opted out of the sale of data. You can also use it if you want to opt all users out by default.

You can update the Facebook LDU status by passing arguments to the ADJThirdPartySharing.addGranularOption method.

Objective-C
Swift
Javascript
ADJThirdPartySharing *tps = [[ADJThirdPartySharing alloc] initWithIsEnabledNumberBool:@YES];
[tps addGranularOption:@"facebook" key:@"data_processing_options_country" value:@"1"];
[tps addGranularOption:@"facebook" key:@"data_processing_options_state" value:@"1000"];
[Adjust trackThirdPartySharing:tps];

Parameters

Note:
If you call this method with a 0 value in either the data_processing_options_country or data_processing_options_state field, the Adjust SDK will pass both fields back as 0.

Provide consent data to Google (Digital Markets Act compliance)

Note:

Added in v4.25.0.

KeyValueDescription
eea1 = users are in the EEA and the DMA applies

0 = users are not in the EEA and the DMA does not apply
The eea parameter informs Google whether users are located in the EEA and thus whether the European regulations, including the DMA, apply to this user and conversion. The parameter type is boolean.
ad_personalization1 = user consented

0 = user did not consent
  • For Google Ads

The ad_personalization parameter informs whether users consented to being served personalized ads via Google Ads after installing the app, i.e. whether Google can retarget the users.
ad_user_data1 = user consented

0 = user did not consent
The ad_user_data parameter informs Google whether users granted consent to personal data being shared for measurement purposes or not. The consent applies to all the Core Platform Services (CPS) advertisers have specified in their Google Ads and Google Marketing Platform UI.
npa1 = user did not consent

0 = user consented
  • For Google Marketing Platform

The npa parameter informs whether users consented to being served personalized ads via Google Marketing Platform after installing the app, i.e. whether Google can retarget the users.

To comply with the EU's Digital Markets Act (DMA), Google Ads and the Google Marketing Platform require explicit consent to receive Adjust’s attribution requests to their APIs. To communicate this consent, you need to add the following granular options to your Adjust third party sharing object for the partner google_dma.

Important:

Passing these options is required if you use Google Ads or Google Marketing Platform and have users located in the European Economic Area (EEA).

Swift
Objective-C
let adjustThirdPartySharing = ADJThirdPartySharing.initWithIsEnabledNumberBool(nil)
adjustThirdPartySharing.addGranularOption("google_dma", key: "eea", value: "1")
adjustThirdPartySharing.addGranularOption("google_dma", key: "ad_personalization", value: "1")
adjustThirdPartySharing.addGranularOption("google_dma", key: "ad_user_data", value: "1")
Adjust.trackThirdPartySharing(adjustThirdPartySharing)

Disable third-party sharing

You can disable third-party sharing at the SDK level. This means that Adjust will not share any user information with third-parties. To do this, call the disableThirdPartySharing method.

Objective-C
Swift
Javascript
[Adjust disableThirdPartySharing];

Data residency

The data residency feature allows you to choose the country in which Adjust will store your data. This is useful if you are operating in a country with strict privacy requirements. When you set up data residency, Adjust will store your data in a data center located in the region your have chosen.

To set your country of data residency, set the urlStrategy of your ADJConfig instance. For example, you can call the following to set your data residency region to the EU:

Objective-C
Swift
Javascript
[adjustConfig setUrlStrategy:ADJDataResidencyEU];

Consent measurement for specific users

If you are using Data Privacy settings in your Adjust dashboard, you need to set up the Adjust SDK to work with them. This includes settings such as consent expiry period and user data retention period. To toggle this feature, call the trackMeasurementConsent method. When enabled, the SDK will communicate the data privacy settings to the backend.

Objective-C
Swift
Javascript
[Adjust trackMeasurementConsent:YES];

The Adjust backend will then apply your data privacy rules to the user. The Adjust SDK will continue to work as expected.