Set up privacy features

Send erasure request

The EU’s General Data Protection Regulation (GDPR) and similar privacy laws worldwide (CCPA, LGPD, etc.) grant data subjects comprehensive rights when it comes to the processing of their personal data. These rights include, among others, the right to erasure (see Art. 17 GDPR)(1). As a data processor, Adjust is obliged to support you (the data controller) in the processing of such requests from your (app) users.

You can send the user's erasure request to Adjust by calling the gdprForgetMe method. Once Adjust has been notified:

  • We will permanently delete all of the user’s historical personal data from our internal system and database.
  • We will no longer receive data from this user/device via the Adjust SDK.(2)
Dart
Adjust.gdprForgetMe();

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 AdjustThirdPartySharing instance. When the Adjust backend receives this information it stops sharing the user's data with third-parties. The Adjust SDK continues to work as expected.

Dart
AdjustThirdPartySharing adjustThirdPartySharing = new AdjustThirdPartySharing(false);
//...
Adjust.trackThirdPartySharing(adjustThirdPartySharing);

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. To communicate this to Adjust, call the trackThirdPartySharing method with a true AdjustThirdPartySharing instance. When the Adjust backend receives this information it starts sharing the user's data with third-parties, and update the user's settings. The Adjust SDK continues to work as expected.

Dart
AdjustThirdPartySharing adjustThirdPartySharing = new AdjustThirdPartySharing(true);
Adjust.trackThirdPartySharing(adjustThirdPartySharing);

Send granular information to the Adjust backend

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

Dart
AdjustThirdPartySharing adjustThirdPartySharing = new AdjustThirdPartySharing(null);
//...
adjustThirdPartySharing.addGranularOption('PartnerA', 'key', 'value');
//...
Adjust.trackThirdPartySharing(adjustThirdPartySharing);

Provide consent data to Google (Digital Markets Act compliance)

Note:

Added in v4.26.0.

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).

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.
AdjustThirdPartySharing adjustThirdPartySharing = new AdjustThirdPartySharing(null);
adjustThirdPartySharing.addGranularOption('google_dma', 'eea', '1');
adjustThirdPartySharing.addGranularOption('google_dma', 'ad_personalization', '1');
adjustThirdPartySharing.addGranularOption('google_dma', 'ad_user_data', '1');
Adjust.trackThirdPartySharing(adjustThirdPartySharing);

Data residency

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

To set your country of data residency, call the urlStrategy method on your config instance with one of the following constants:

  • DataResidencyEU - For EU data residency region
  • DataResidencyTR - For Turkey data residency region
  • DataResidencyUS - For US data residency region
Dart
AdjustConfig adjustConfig = new AdjustConfig('{YourAppToken}', AdjustEnvironment.Sandbox);
adjustConfig.urlStrategy = AdjustConfig.DataResidencyEU; // for EU data residency region
Adjust.start(adjustConfig);

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 communicates the data privacy settings to the backend. The Adjust backend then applies your data privacy rules to the user. The Adjust SDK continues to work as expected.

Dart
Adjust.trackMeasurementConsent(true);

Privacy for children

The Adjust SDK includes the com.google.android.gms.permission.AD_ID permission by default in version 4.32.0 and above. You can remove it by adding a remove directive if need to make your app COPPA-compliant or if you do not target the Google Play Store.

<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>

See Google's AdvertisingIdClient.Info documentation for more information about this permission.

COPPA compliance

If you need your app to be COPPA compliant, call the coppaCompliantEnabled method. This method performs the following actions:

  1. Disables third-party sharing before the user launches their first session.
  2. Prevents the SDK from reading device and advertising IDs (For example: gps_adid and android_id).
AdjustConfig myConfig = new AdjustConfig('{YourAppToken}', AdjustEnvironment.Sandbox);
myConfig.coppaCompliantEnabled = true;
//...
Adjust.start(myConfig);

You can disable this method by calling it with a false parameter.

Important:
Disabling the coppaCompliantEnabled method does not re-enable third-party sharing. You need to re-enable third-party sharing for the user.
AdjustConfig myConfig = new AdjustConfig('{YourAppToken}', AdjustEnvironment.Sandbox);
myConfig.coppaCompliantEnabled = false;
//...
Adjust.start(myConfig);

Play Store Kids Apps

If your app targets users under the age of 13, and the install region is not the USA, you need to mark it as a Kids App. This prevents the SDK from reading device and advertising IDs, that is, gps_adid and android_id. To do this, call the playStoreKidsAppEnabled method with a true parameter.

AdjustConfig myConfig = new AdjustConfig('{YourAppToken}', AdjustEnvironment.Sandbox);
myConfig.playStoreKidsAppEnabled = true;
//...
Adjust.start(myConfig);