What is the Consent Management Platform and why is it needed?
A Consent Management Platform (CMP) is a tool for publishers to comply with the new privacy laws, like GDPR and CCPA.
In Europe, GDPR law requires publishers operating in the European Union (EU) to give their consumers control over the personal data that is collected by apps they use. In California, the CCPA is an even more comprehensive law on privacy regulations, with many states expected to follow this model. As a publisher, you have direct access to your consumers (commonly called 'users' or 'players'). Therefore, the responsibility is on you to ask for their consent for their data to be shared with 3rd party solutions like Admix or your other monetization partners.
The CMP is a tool that you can integrate into your apps, prompting consumers with a popup asking for their consent to proceed before any data collection happens.
Who needs to use a CMP?
If you need to collect user information as part of your monetization strategy (e.g. if you're using advertising) you should be asking for user consent through a CMP to be compliant. You can use your own CMP, 3rd party solutions, or use the one that Admix provides.
The CMP that we provide is developed by Didomi, a global leader in consumer consent. Admix entered a global partnership with Didomi to provide their CMP to all of our publishers that request it.
What happens after a user responds to a CMP?
Asking for your user's for consent can lead to 2 outcomes:
- The user gives consent to process their personal data, in which case you can pass this information (like their unique advertiser identifier) to Admix to allow us to serve personalized ads.
- The user refuses consent with several or all partners, in which case you shouldn't pass their information to us and the ads we will serve this user will not be targeted to them. This yields lower revenue but is necessary if consent is refused.
There are two options of CMP implementation and delivering needed values for Admix:
- Using your own CMP or 3rd party CMP solutions. You can use any compliant GDPR CMP solution that can generate iAB/TCF v2 string and deliver this string to Admix.
- Using Admix CMP solution. (deprecated)
1. Using your own or 3rd party CMP solutions
If you're using your own CMP or another solution for CMP, ensure that Admix's vendors are added to the consent list and that you are passing the GDPR string value to Admix.
- Admix SDK2.2.1 or later
- Android or iOS
Starting with the SDK2.3, there is AdmixInitializer.OnInitialize availible. You can use it to ensure that the Admix SDK is initialized, enabling you to pass the string to it.
Here is the code example of how you can deliver the generated consent string to Admix:
void Start ()
AdmixInitializer.OnInitialize += Oninitialize; // availible in the SDK2.3+
private void Oninitialize(bool obj)
2. Using CMP by Admix (Deprecated)
Please note that this method is deprecated and not supported by Admix. This part of the documentation exists to support the transition period for existing publishers who have integrated CMP by Admix.
The Consent Management Platform integration is available on demand as an additional package for the Admix SDK.
In order to activate CMP for your app, you'll be asked to provide the app bundle ID and Admix project name.
- Unity 2019.3.12f1 or later
- Admix SDK2.2 or later
- Android OS
- Install the Admix SDK2.2+. Open the Admix plugin UI, choose your project and click on 'sync placements.'
- Import the Consent Management Platform package from Admix.
- (Optional) You can inspect a
testwhere the Admix CMP is implemented for reference.
- Use the available API to implement your own logic to activate the CMP. Decide when and where in your game you'd like to show a consent. Please note the user has to have a possibility to change the given consent. So we recommend to add this possibility in the app settings.
- Add 'ADMIX_DIDOMI' into the Scripting Define Symbols of the Unity Player Build Settings before the build.
About the demo scene
The demo scene is called 'test' and is located in the 'Assets/' folder. Here you can see an example of the Consent Management Platform implementation in a project. The scene contains a canvas with two buttons. The 'Show Notice' button will display a consent notice regarding sharing user data with vendors. This button will be active only when the event about readiness is fired. The GetString button will display a GDPR string value that is generated based on the user's accepted consent. This string will be used in each Admix ad request automatically.
Please note! The CMP by Admix cannot be tested in the Unity Editor. In order to test it, please use an Android device.
An example of Admix CMP implementation
Let's implement a code snippet that will launch the Consent Management Platform on the game's initialization.
public class CMP_controller : MonoBehaviour
private IGdprPluginProvider pluginProvider;
private string _gdprString;
pluginProvider = GdprFactory.Instance.Provider; //initialize consent plugin provider
pluginProvider.DidomiEventListener.Ready += OnReady; // event that fires once plugin provider is ready
private void OnReady(object sender, ReadyEvent e)
pluginProvider.SetupUI(); // prepare consent UI
pluginProvider.ShowNotice(); // show consent UI
The result of the user giving consent is a unified GDPR string that is passed to and used by the ad providers. You might have other SDKs that accept this GDPR string value. In order to get this string, just use the following methods:
private string _gdprString;
_gdprString = pluginProvider.GetGdprString();
Other SDKs might use vendors that Admix do not. Ask your account manager to add other needed vendors to the consent list if you'd like to pass your GDPR string value to other SDKs.
You can use the events in the following class: IO.Didomi.SDK.Events.DidomiEventListener
public event EventHandler<ConsentChangedEvent> ConsentChanged;
public event EventHandler<HideNoticeEvent> HideNotice;
public event EventHandler<ReadyEvent> Ready;
public event EventHandler<ShowNoticeEvent> ShowNotice;
public event EventHandler<NoticeClickAgreeEvent> NoticeClickAgree;
public event EventHandler<NoticeClickMoreInfoEvent> NoticeClickMoreInfo;
public event EventHandler<PreferencesClickAgreeToAllEvent> PreferencesClickAgreeToAll;
public event EventHandler<PreferencesClickDisagreeToAllEvent> PreferencesClickDisagreeToAll;
public event EventHandler<PreferencesClickPurposeAgreeEvent> PreferencesClickPurposeAgree;
public event EventHandler<PreferencesClickPurposeDisagreeEvent> PreferencesClickPurposeDisagree;
public event EventHandler<PreferencesClickViewVendorsEvent> PreferencesClickViewVendors;
public event EventHandler<PreferencesClickSaveChoicesEvent> PreferencesClickSaveChoices;
public event EventHandler<PreferencesClickVendorAgreeEvent> PreferencesClickVendorAgree;
public event EventHandler<PreferencesClickVendorDisagreeEvent> PreferencesClickVendorDisagree;
public event EventHandler<PreferencesClickVendorSaveChoicesEvent> PreferencesClickVendorSaveChoices;
On the end device, the result looks like this:
Please note, you are able to change the visual style of the consent popup. For example, you can change it to your brand color, change the color of links, logos, and change the text. Contact your account manager for more details.