GDPR and CCPA
The General Data Protection Regulation, better known as GDPR, took effect on May 25, 2018. It’s a set of rules designed to give EU citizens more control over their personal data. Any businesses established in the EU or with users based in Europe are required to comply with GDPR or risk facing heavy fines. The California Consumer Privacy Act (CCPA) went into effect on January 1, 2020.We have put together some guidelines to help publishers understand better the steps they need to take to be GDPR compliant.
You can learn more about GDPR and CCPA and the differences between them here.
You must add your explicit privacy policies in two places: on your app’s Store Listing page and within your app.
Here’s are two useful resources that you can utilize while working on your app compliance:
- App privacy details on the App Store
Please note that although we’re always eager to back you up with valuable information, we’re not authorized to provide any legal advice. It’s important to address your questions to lawyers who specialize in this area.
Step 2. Using Stack Consent Manager
In order for Appodeal and our ad providers to deliver ads that are more relevant to your users, as a mobile app publisher, you need to collect explicit user consent in the regions covered by GDPR and CCPA.
To get consent for collecting personal data of your users, we suggest you use a ready-made solution - Stack Consent Manager.
Stack Consent Manager comes with a pre-made consent window that you can easily present to your users. That means you no longer need to create your own consent window.
Starting from Appodeal SDK 3.0, Stack Consent Manager is included by default.
Consent will be requested automatically on SDK initialization, and consent form will shown if it is necessary without any additional calls.
Custom Consent Logic
Stack Consent Manager is included in Appodeal SDK by default. Consent will be requested automatically on SDK initialization, and consent form will shown if it is necessary without any additional calls.
If you would like to customize consent managing logic, call the Appodeal initialize method and pass the value of your received consent.
1. If you use the Stack Consent Manager API to process and pass the user's consent:
Publishers need to pass the Consent result object from Stack Consent Manager SDK to the
initialize method of our SDK.
2. If you don't want to use Stack Content Manager SDK, you can use the old version to pass the user's consent:
Publishers need to pass the boolean consent flag(with 'false' meaning that the user refused to give consent) to the +initialize method of our SDK.
Manage Consent Manually via Stack Consent Manager
If you wish, you can manage and update consent manually using Stack Consent Manager calls.
Consent manager SDK can be synchronized at any moment of application lifecycle. We recommend to synchronize it at application launch. Multiple synchronization calls are allowed.
StackConsentManager/StackConsentManager.h in AppDelegate.m
APP_KEY is required parameter (Appodeal APP Key)
completion is block that invokes after synchronization
After synchronization completion, you can receive information about the previous user consent and regulation zone. Before synchronization these parameters are
You can force consent manager to write iAB keys in
NSUserDefaults by setting up storage property before synchronization to
SDK does not remove iAB keys from NSUserDefaults and only overrides them
You can register yourself as a vendor before synchronization.
|id||Integer||iAB id. If you are not registered as iAB vendor you can use custom id|
|name||String||Display name. Will be displayed in the consent window|
|status||String||Custom string to check consent result for a specific vendor|
|purposesIds||Array of integers||iAB purposes ids array|
|featuresIds||Array of integers||iAB features ids array|
|legIntPurposeIds||Array of integers||iAB leg int purposes ids array|
SDK only allows calling consent window api after synchronization
After SDK has been synchronized, you can load the consent window. Loading is allowed in any regulation zone and independent from previous consent.
Displaying consent dialog
You can check if the consent window is ready.
When the consent window Is ready you can present it from the top view controller
Handling presentation callbacks