Skip to main content

Integrate with a Consent Management Platform (CMP)

X3M provides a mechanism for automating the integration with Google's User Messaging Platform. To enable this feature, set the flag isCMPAutomationEnabled to true:

This will prompt the user for consent only when required, and continue with the SDK initialization after the signals have been collected.


let consentInformation = ConsentInformation(isCMPAutomationEnabled: true)
let initSettings = InitSettings(consentInformation: consentInformation)
XMediatorAds.startWith(appKey: "<your-app-key>",
initSettings: initSettings) { _ in
// [...]
}

Display a Privacy Settings button inside your app

To give users the option to change their consent during the session, you may want to display a button in your app's settings when a form is available. X3M's SDK provides the following methods to achieve this:

if (XMediatorAds.cmpProvider.isPrivacyFormAvailable()) {
// ... display the privacy settings form button
}

// [...]

XMediatorAds.cmpProvider.presentPrivacyForm(fromViewController: self) { error in
if let error = error {
print("Error: \(error.localizedDescription)")
}

print("presentPrivacyForm complete!")
}

Debug your integration

When using the CMP Automation feature, you can use the following methods to debug your integration:

// Available options: .disabled, .EEA and .notEEA
let cmpDebugSettings = CMPDebugSettings(debugGeography: .EEA)
let consentInformation = ConsentInformation(isCMPAutomationEnabled: true,
cmpDebugSettings: cmpDebugSettings)
let initSettings = InitSettings(consentInformation: consentInformation)

// Configure a Debug Geography to trigger Privacy Form display
XMediatorAds.startWith(appKey: "<your-app-key>",
initSettings: initSettings) { _ in
// [...]
}

// Clear the collected consent signals from the device (debug only)
XMediatorAds.cmpProvider.reset()