Consent Management
Learn how to implement Consent Management.
Usage
Usage of this module is recommended, as it is automatically included in the library and enabled in the native code upon initialization. Android and iOS are both supported platforms.
Learn more about Consent Management.
Sample App
To help to familiarize yourself with our library, the tracking methods, and best practice implementation, download the Xamarin Consent Management sample app.
Enable
The Consent Management feature comes from the two native SDKs embedded into the DLLs named Tealium.Platform.*.dlls
. The Tealium.Common.dll
provides the following category and status enums to use:
Tealium.ConsentManager.ConsentStatus
Tealium.ConsentManager.ConsentCategory
To enable Consent Management, simply pass the optional parameter in the constructor of TealiumConfig
, or set it as a property as shown in the following example:
TealiumConfig tealConfig = new TealiumConfig(
TealiumConsts.INSTANCE_ID,
TealiumConsts.ACCOUNT,
TealiumConsts.PROFILE,
TealiumConsts.ENVIRONMENT,
true,
commands,
advConfig,
false); // optional Consent Manager Enablement
// or subsequently enable it:
tealConfig.IsConsentManagerEnabled = true;
// initialise your Tealium Instance:
var tealium = instanceManager.CreateInstance(tealConfig);
Consent Status
As with the native SDKs for both Android and iOS, when Consent Management is enabled, new users are assumed to be in an unknown state. Tracking requests are queued up until the consent status has been opted-in or out, at which point events are sent or purged, respectively.
Override the initial status through properties on the TealiumConfig
object, as shown in the following example:
// enable Consent Manager:
tealConfig.IsConsentManagerEnabled = true;
// Set Users to be Consented by default:
tealConfig.InitialUserConsentStatus = ConsentManager.ConsentStatus.Consented;
// Or set Users to be Not Consented by default:
tealConfig.InitialUserConsentStatus = ConsentManager.ConsentStatus.NotConsented;
// Opt users into All Categories
tealConfig.InitialUserConsentCategories = ConsentManager.AllCategories;
// or none:
tealConfig.InitialUserConsentCategories = ConsentManager.NoCategories;
// or partial opt-in, only to Analytics and Mobile categories.
tealConfig.InitialUserConsentCategories = new ConsentCategory[]{
ConsentManager.ConsentCategory.Analytics,
ConsentManager.ConsentCategory.Mobile
};
Consent Selection
Interact directly with Consent Management from the Tealium instance, through the ConsentManager
property.
If you need to update a user’s consent selection, pass one of enum values available in the ConsentManager.ConsentCategory
and ConsentManager.ConsentStatus
, as shown in the following example:
// if the user is in an Unknown state, then the following code triggers any queued events are sent after this:
ITealium tealium = instanceManager.GetExistingInstance(TealiumConsts.INSTANCE_ID);
tealium.ConsentManager.UserConsentStatus = ConsentManager.ConsentStatus.Consented;
// The previous inherently opts the user into all categories as none have been provide.
// To grant consent and opt into a subset of categories, use the overload:
tealium.ConsentManager.UserConsentStatusWithCategories(ConsentManager.ConsentStatus.Consented, new ConsentCategory[]{
ConsentManager.ConsentCategory.Analytics
});
Resetting
Additional options are available to reset the currently selected consent preferences. This reverts the user back to an Unknown
status so that subsequent events begin being queued again.
To completely disable, disable it on the TealiumConfig
object, as shown in the following example:
ITealium tealium = instanceManager.GetExistingInstance(TealiumConsts.INSTANCE_ID);
tealium.ConsentManager.ResetUserConsentPreferences();
This page was last updated: January 7, 2023