The Adjust SDK contains features that you can use to handle user privacy in your app.
Send erasure request
+ (void)gdprForgetMe;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:
- Adjust will permanently delete all of the user’s historical personal data from its internal systems and database.
- Adjust will no longer receive data from this user/device via the Adjust SDK.(2)
Third-party sharing for specific users
You can use the Adjust SDK to record when a user changes their third-party sharing settings. Third party sharing settings are configured using the ADJThirdPartySharing class.
Instantiate an ADJThirdPartySharing object
- (nullable id)initWithIsEnabled:(nullable NSNumber *)isEnabled;To enable or disable third party sharing with the Adjust SDK, you need to instantiate an ADJThirdPartySharing object. This object contains variables that control how third party sharing is handled by Adjust.
To instantiate a third party sharing object, create a new ADJThirdPartySharing instance and pass the following parameters:
isEnabled(NSNumber): Whether third party sharing is enabled. Pass1to enable third party sharing or0to disable third party sharing
Once you’ve instantiated your ADJThirdPartySharing object, you can send the information to Adjust by calling the Adjust.trackThirdPartySharing method with your ADJThirdPartySharing instance as an argument.
Send granular information
- (void)addGranularOption:(nonnull NSString *)partnerName key:(nonnull NSString *)key value:(nonnull NSString *)value;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. To do this, call the addGranularOption method with the following parameters:
partnerName(NSString): The name of the partner for whom the granular option applies.key(NSString): The option key.value(NSString): The option value.
The following partners are available:
| Partner name | String value |
|---|---|
| AppleAds | apple_ads |
facebook | |
| GoogleAds | adwords |
| GoogleMarketingPlatform | google_marketing_platform |
| Snapchat | snapchat |
| Tencent | tencent |
| TikTokSan | tiktok_san |
| X (formerly Twitter) | twitter |
| YahooGemini | yahoo_gemini |
| YahooJapanSearch | yahoo_japan_search |
Manage Facebook Limited Data Use
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 the following arguments to the addGranularOption method:
| Parameter | Description |
|---|---|
partner_name | Use facebook to toggle LDU. |
data_processing_options_country | The country in which the user is located.
|
data_processing_options_state | Notifies Facebook in which state the user is located.
|
Provide consent data to Google (Digital Markets Act compliance)
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 third party sharing instance for the partner google_dma.
| Key | Value | Description |
|---|---|---|
eea | 1 (positive) | 0 (negative) | Informs Adjust whether users installing the app are within the European Economic Area. This includes EU member states, Switzerland, Norway, Iceland and Slovenia. |
ad_personalization | 1 (positive) | 0 (negative) | Informs Adjust whether users consented with being served personalized ads via Google Ads and/or Google Marketing Platform. This parameter also informs the npa parameter reserved for Google Marketing Platform. |
ad_user_data | 1 (positive) | 0 (negative) | Informs Adjust whether users consented with their advertiser ID being leveraged for attribution purposes. |
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:
| Argument | Data type | Description |
|---|---|---|
partnerName | String | The name or ID of the partner. Download the full list of available partners |
key | String | The metric to share with the partner |
value | Boolean | The user’s decision |
You can use the partnerName to specify which partner you want to disable or re-enable sharing of specific metrics. Here,
- If you want to enable/disable sharing metrics with all the partners that includes SAN, module and dynamic, you can pass
allkeyword as apartnerName. - If you want to enable/disable sharing metrics only with SAN partners, you can pass the name of the SAN partner as a
partnerName. - If you want to enable/disable sharing metrics with all the partners except SAN partners, you must pass the partner ID as a
partnerName. - If you want to enable/disable sharing metrics to dynamic partners, you can pass
dynamic_callbackas apartnerName.
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_revenueallupdateatt_updateeventinstallreattributionreattribution_reinstall
reinstallrejected_installrejected_reattributionsdk_clicksdk_infosessionsubscriptionuninstall
Metrics group
When you set a false value against a metric for a partner, Adjust stops sharing the metric along with all the child metrics under the group with the partner. These nested groups are:
- session
- install
- rejected_install
- reinstall
- reattribution
- rejected_reattribution
- reattribution_reinstall
- install
Here,
- If you disable sharing of
session, all its child metrics will also be disabled. - If you disable sharing of
sessionbut enablereattribution, all its child metrics exceptreattributionwill be disabled. - If you disable sharing of
sessionbut enableinstall, all the child metrics ofsessionexceptinstallwill be disabled. Child metrics ofinstallwill remain enabled. - If you enable sharing of
sessionbut disableinstall, all its child metrics ofsessionexceptinstallwill be enabled. Child metrics ofinstallwill remain disabled.
Examples
If you want to stop sharing all metrics with a specific partner, pass the all key with a false value.
To re-enable sharing with a specific partner, pass the all key with a true value.
If you want to share data only with PartnerA, you need to pass:
allkey forallpartners with afalsevalue to disable sharing all information for all the partners.allkey forPartnerAwith atruevalue to enable sharing all the information forPartnerAexplicitly.
If you want to share only session data with all the partners, you need to pass:
allkey forallpartners with afalsevalue to disable sharing all information for all the partners.sessionkey forallpartners with atruevalue to enable sharingsessiondata and all its related “child” metrics forallthe partners.
If you want to share only session data with PartnerA, you need to pass:
allkey forallpartners with afalsevalue to disable sharing all information for all the partners.sessionkey forPartnerApartners with atruevalue to enable sharingsessiondata and all its related “child” metrics forPartnerAthe partners.
If you want to disable dynamic_callbacks, pass the all key with a false value.
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:
allwith afalsevalue to disable sharing all information.eventwith atruevalue to enable event sharing
Set URL strategy
- (void)setUrlStrategy:(nullable NSArray *)urlStrategyDomains useSubdomains:(BOOL)useSubdomains isDataResidency:(BOOL)isDataResidency;The URL strategy feature allows you to set either:
- The country in which Adjust stores your data (data residency).
- The endpoint to which the Adjust SDK sends traffic (URL strategy).
This is useful if you’re operating in a country with strict privacy requirements. When you set your URL strategy, Adjust stores data in the selected data residency region or sends traffic to the chosen domain.
To set your country of data residency, call the AdjustConfig.setUrlStrategy method following parameters:
urlStrategyDomains(NSArray): The country or countries of data residence, or the endpoints to which you want to send SDK traffic.useSubdomains(BOOL): Whether the source should prefix a subdomain.isDataResidency(BOOL): Whether the domain should be used for data residency.
See the table below for a list of mappings.
| URL strategy | Main and fallback domain | Use sub domains | Is Data Residency |
|---|---|---|---|
| EU data residency | "eu.adjust.com" | true | true |
| Turkish data residency | "tr.adjust.com" | true | true |
| US data residency | "us.adjust.com" | true | true |
| China global URL strategy | "adjust.world", "adjust.com" | true | false |
| China URL strategy | "adjust.cn", "adjust.com" | true | false |
| China only URL strategy | "adjust.cn" | true | false |
| India URL strategy | "adjust.net.in", "adjust.com" | true | false |
Examples
Consent measurement for specific users
+ (void)trackMeasurementConsent:(BOOL)enabled;If you’re 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 with the following argument:
measurementConsent(BOOL): Whether consent measurement is enabled (true) or not (false).
When enabled, the SDK communicates the data privacy settings to Adjust’s servers. Adjust’s servers then applies your data privacy rules to the user. The Adjust SDK continues to work as expected.
COPPA compliance
+ (void)enableCoppaCompliance;If you need your app to be compliant with the Children’s Online Privacy Protection Act (COPPA), call the enableCoppaCompliance method on your ADJConfig instance before SDK intialization. This method performs the following actions:
- Disables third-party sharing.
- Prevents the SDK from reading device and advertising IDs (for example:
idfa).
Disable reading of IDFV
- (void)disableIdfvReading;You can prevent the Adjust SDK from reading a device’s IDFV by calling the disableIdfvReading method on your ADJConfig instance. When you call this method, the Adjust SDK is prevented from reading the device’s IDFV and sending it to Adjust.