API

Usage

The Didomi Android SDK exposes a complete API through the io.diomi.sdk.Didomi class. This allows your app to programmatically interact with the Didomi SDK. You can check the user consent status, register consents that you would collect yourself, and show/hide the Didomi UI.

Always use Didomi.getInstance() to get a reference to the Didomi SDK. Also make sure to always call the SDK after it is fully initialized (see onReady).

addEventListener

Add an event listener to catch events triggered by the SDK. See the dedicated section for more details

removeEventListener

Remove a previously add event listener.

Parameters

NameTypeDescription

eventListener

EventListener

The event listener to remove.

Returns

Nothing

Example

Didomi.getInstance().removeEventListener(currentEventListener);

getDeviceType

Get the device determined by Didomi SDK (mobile or TV).

Requires SDK to be initialized

Yes.

Parameters

No parameter.

Throws

Type

Description

DidomiNotReadyException

Exception thrown when a method that requires the Didomi SDK to be ready is called before that. Developers can call this method within a try/catch or within a lambda expression passed into the onReady method.

Returns

TypeDescription

DeviceType

A value of type DeviceType reflecting the device type determined at SDK initialization. Can be either Mobile (phone or tablet) or ConnectedTv (Android TV, Fire TV)

Example

Didomi.getInstance().getDeviceType();

getJavaScriptForWebView

Get JavaScript to embed into a WebView to pass the consent status from the app to the Didomi Web SDK embedded into the WebView.

Inject the returned tag into a WebView with evaluateJavaScript.

Requires SDK to be initialized

Yes.

Parameters

No parameter.

Throws

Type

Description

DidomiNotReadyException

Exception thrown when a method that requires the Didomi SDK to be ready is called before that. Developers can call this method within a try/catch or within a lambda expression passed into the onReady method.

Returns

TypeDescription

String

JavaScript code to embed in a WebView

Example

Didomi.getInstance().getJavaScriptForWebView();

getQueryStringForWebView

Get a query string parameter to append to the URL of a WebView to pass the consent status from the app to the Didomi Web SDK embedded into the WebView.

Read our article on sharing consent with WebViews for more information.

Requires SDK to be initialized

Yes.

Parameters

No parameter.

Throws

Type

Description

DidomiNotReadyException

Exception thrown when a method that requires the Didomi SDK to be ready is called before that. Developers can call this method within a try/catch or within a lambda expression passed into the onReady method.

Returns

TypeDescription

String

Query string parameter with the format didomiConfig.user.externalConsent.value=.... It can be appended to your URL after a ? or a & if your URL already contains a query string.

Example

Didomi.getInstance().getQueryStringForWebView();

hideNotice

Hide the consent notice.

Parameters

No parameter.

Throws

Type

Description

DidomiNotReadyException

Exception thrown when a method that requires the Didomi SDK to be ready is called before that. Developers can call this method within a try/catch or within a lambda expression passed into the onReady method.

Returns

Nothing

Example

Didomi.getInstance().hideNotice();

hidePreferences

Hide the preferences popup.

Parameters

No parameter.

Throws

Type

Description

DidomiNotReadyException

Exception thrown when a method that requires the Didomi SDK to be ready is called before that. Developers can call this method within a try/catch or within a lambda expression passed into the onReady method.

Returns

Nothing

Example

Didomi.getInstance().hidePreferences();

initialize

Initialize the SDK. The initialization runs on a background thread to avoid blocking your UI. Use the onReady function to know when the initialization is done and the SDK is ready to be used.

Parameters

Name

Type

Description

application

Application

A reference to your Application.

parameters

DidomiInitializationParameters

Object containing the application parameters, see below

The DidomiInitializationParameters object contains all the information needed to initialize the SDK.

The parameter disableDidomiRemoteConfig is deprecated, we strongly suggest you to create your notice from the console (see Setup from the Console for more information).

ParameterTypeNullableDescription

apiKey

String

No

Your API key

localConfigurationPath

String

Yes

The path to your local config file in your assets/ folder. Defaults to didomi_config.json if null.

remoteConfigurationPath

String

Yes

The URL to a remote configuration file to load during initialization. When provided, the file at the URL will be downloaded and cached to be used instead of the local assets/didomi_config.json. If there is no Internet connection available and no previously cached file, the local file will be used as fallback.

providerId

String

Yes

Your provider ID (if any). A provider ID is assigned when you work with Didomi through a third-party. If are not sure if you have one, set this to null.

disableDidomiRemoteConfig (deprecated)

Boolean

No

Prevent the SDK from loading a remote configuration from the Didomi Console. Defaults to false (allows loading of remote config).

Set this parameter to false to use a remote consent notice configuration loaded from the Didomi Console.

Set this parameter to true to disable loading configurations from the Didomi Console.

languageCode

String

Yes

Language in which the consent UI should be displayed. By default, the consent UI is displayed in the language configured in the device settings. This property allows you to override the default setting and specify a language to display the UI in. String containing the language code or the local code e.g.: "es", "fr", "en-US", "zh-HK", etc.

noticeId

String

Yes

Notice ID to load the configuration from. If provided, the SDK bypasses the app ID targeting and directly loads the configuration from the notice ID.

tvNoticeId

String

Yes

TV notice ID to load the configuration from. If provided and SDK is initialized on TV, the SDK bypasses the app ID targeting and directly loads the configuration from the notice ID.

androidTvEnabled

Boolean

No

Enable the Android TV SDK. Defaults to false (Android TV is not enabled).

This parameter will be checked if sdk is initialized from a TV device.

If set to false, the sdk initialization will fail with an error.

If set to true, the sdk will try to initialize in TV mode, using the API key and the optional tvNoticeId parameter.

Please note that the TV notice option must be enabled on Didomi side. Please reach out to your dedicated customer success manager to know more.

The initialize methods with parameters arguments are removed since version 2.0.0, please use DidomiInitializeParameters object instead.

Returns

Nothing

Example

Didomi.getInstance().initialize(
    this,
    new DidomiInitializeParameters(
        "<Your API key>",
        null,
        null,
        null,
        false,
        null,
        "<Your notice id>",
        "<Your TV notice id>",
        true
    )
);

isNoticeVisible

Check if the consent notice is currently displayed.

Parameters

No parameter.

Throws

Type

Description

DidomiNotReadyException

Exception thrown when a method that requires the Didomi SDK to be ready is called before that. Developers can call this method within a try/catch or within a lambda expression passed into the onReady method.

Returns

boolean

Example

Didomi.getInstance().isNoticeVisible();

isPreferencesVisible

Check if the preferences popup is currently displayed.

Parameters

No parameter.

Throws

Type

Description

DidomiNotReadyException

Exception thrown when a method that requires the Didomi SDK to be ready is called before that. Developers can call this method within a try/catch or within a lambda expression passed into the onReady method.

Returns

boolean

Example

Didomi.getInstance().isPreferencesVisible();

isError

Check if the SDK has encountered an error

Parameters

No parameters

Returns

boolean

Example

Didomi.getInstance().isError();

isReady

Check if the SDK is ready.

Parameters

No parameter.

Returns

boolean

Example

Didomi.getInstance().isReady();

onError

Add an event listener that will be called when the SDK initialization encounters an error. If the event listener is added after the SDK initialization already failed, the listener will be called immediately.

If this listener is called, the SDK initialization will not complete and onReady will not be called.

Parameters

Name

Type

Description

callback

Runnable

An instance of Runnable to run when the SDK initialization encounters an error

Returns

Nothing

Example

Didomi.getInstance().onError(() -> {
    // The SDK has encountered an error
});

onReady

Add an event listener that will be called when the SDK is ready (ie fully initialized). If the event listener is added after the SDK initialization, the listener will be called immediately.

All calls to other functions of this API must only be made in a listener to the ready event to make sure that the SDK is initialized before it is used.

Parameters

NameTypeDescription

callback

Runnable

An instance of Runnable to run when the SDK is ready

Returns

Nothing

Example

Didomi.getInstance().onReady(() -> {
    // The SDK is ready
});

openCurrentUserStatusTransaction

Definition

Create an instance of the CurrentUserStatusTransaction class.

This class provides mechanisms to stage updates to the user status regarding purposes and vendors, allowing for batch operations.

Updates made through its methods are queued and applied simultaneously to the user status only once the commit method of the returned object is called.

Additional details:

  • The status of vendors and purposes whose IDs are not not specified through the methods provided by CurrentUserStatusTransaction are kept unchanged.

  • Essential purposes are always set to enabled and can’t be updated by the methods provided by CurrentUserStatusTransaction.

  • When the regulation applied for a user is none, the methods provided by CurrentUserStatusTransaction should not update the status of any vendor or purpose which will always remain as enabled. When the commit method is called it will return false.

  • If the IDs that are passed through the methods provided by CurrentUserStatusTransaction don’t correspond to vendors or purposes required by the Notice Config, they will be ignored.

Requires SDK to be initialized

Yes.

Parameters

No parameter.

Returns

An instance of the CurrentUserStatusTransaction class.

Description of the CurrentUserStatusTransaction class

MethodParametersReturnsDescription

enablePurpose

id (String): ID of the purpose to be enabled.

Current CurrentUserStatusTransaction object.

Enable a single purpose based on its ID.

enablePurposes

ids (Array<String>): IDs of the purposes to be enabled.

Current CurrentUserStatusTransaction object.

Enable multiple purposes based on their IDs.

disablePurpose

id (String): ID of the purpose to be disabled.

Current CurrentUserStatusTransaction object.

Disable a single purpose based on its ID.

disablePurposes

ids (Array<String>): IDs of the purposes to be disabled.

Current CurrentUserStatusTransaction object.

Disable multiple purposes based on their IDs.

enableVendor

id (String): Didomi ID of the vendor to be enabled.

Current CurrentUserStatusTransaction object.

Enable a single vendor based on its Didomi ID.

enableVendors

ids (Array<String>): Didomi IDs of the vendors to be enabled.

Current CurrentUserStatusTransaction object.

Enable multiple vendors based on their Didomi IDs.

disableVendor

id (String): Didomi ID of the vendor to be disabled.

Current CurrentUserStatusTransaction object.

Disable a single vendor based on its Didomi ID.

disableVendors

ids (Array<String>): Didomi IDs of the vendors to be disabled.

Current CurrentUserStatusTransaction object.

Disable multiple vendors based on their Didomi IDs.

commit

No parameters.

Boolean: true if user status has been updated, false otherwise.

Commit the changes that have been made through other methods.

Examples

val didomi = Didomi.getInstance()
val transaction = didomi.openCurrentUserStatusTransaction()

// Enable a purpose
transaction.enablePurpose("cookies")
// Enable purposes
transaction.enablePurposes(listOf("cookies", "analytics"))
// Disable a purpose
transaction.disablePurpose("analytics")
// Disable purposes
transaction.disablePurposes(listOf("cookies", "analytics"))
// Enable a vendor
transaction.enableVendor("vendor-1")
// Enable vendors
transaction.enableVendors(listOf("vendor-1", "vendor-2"))
// Disable a vendor
transaction.disableVendor("vendor-1")
// Disable vendors
transaction.disableVendors(listOf("vendor-1", "vendor-2"))

// Chain multiple calls
transaction.enablePurpose("cookies").disablePurpose("analytics")

// Save user choices
val updated = transaction.commit()

setLogLevel

Set the minimum level of messages to log. The SDK will not log messages under that level. See Logging for more information.

Parameters

NameTypeDescription

minLevel

int

Minimum level of messages to log.

Returns

Nothing

Example

Didomi.getInstance().setLogLevel(android.util.Log.INFO);

setupUI

Setup the SDK UI. By calling this method, the consent notice will be displayed once the SDK is ready and if consent should be collected. It does not show any view if consent was already collected or is not required. This method should be called in the onCreate function of your activities and should be called in every activity where consent can be collected.

Parameters

NameTypeDescription

activity

FragmentActivity

Activity used to get the Support Fragment Manager to display the consent notice.

Returns

Nothing

Example

Didomi.getInstance().setupUI(this);

showNotice

In most cases this method should be called if the notice should be displayed in response to a user action (e.g.: select the privacy settings section within your app). By calling the setupUI method, the notice will be automatically displayed if required.

Show the consent notice. The consent notice actually only gets shown if needed (consent is required and we are missing consent information for some vendor or purpose).

Parameters

Type

FragmentActivity

Activity used to get the Support Fragment Manager to display the Preferences view.

Throws

Type

Description

DidomiNotReadyException

Exception thrown when a method that requires the Didomi SDK to be ready is called before that. Developers can call this method within a try/catch or within a lambda expression passed into the onReady method.

Returns

Nothing

Example

Didomi.getInstance().showNotice();

showPreferences

In most cases this method should be called if you want to show the Preferences screen in response to a user action (the user pressing a "Consent Preferences" button in your app menu, for instance).

Show the Preferences view to the user. This method can be used to allow the user to update their preferences after the banner has been closed. We suggest adding a link/button/item that calls this method somewhere in your app, for example from your settings menu. By default, the Purposes view is displayed first. By calling this method, users will have the opportunity to modify the choices previously made.

Parameters

Type

FragmentActivity

Activity used to get the Support Fragment Manager to display the Preferences view.

String (Optional)

Defines which view is displayed to the user first between the purposes view or the vendors view. We expose the values to provide on the Didomi class as VIEW_PURPOSES, VIEW_VENDORS and VIEW_SENSITIVE_PERSONAL_INFORMATION. If this parameter is not defined or contains an unexpected string, the purposes' view will be displayed.

Throws

Type

Description

DidomiNotReadyException

Exception thrown when a method that requires the Didomi SDK to be ready is called before that. Developers can call this method within a try/catch or within a lambda expression passed into the onReady method.

Returns

Nothing

Example

// We pass "this" as a parameter as this method is called from an Activity.
Didomi.getInstance().showPreferences(this);
Didomi.getInstance().showPreferences(this, Didomi.VIEW_PURPOSES);
Didomi.getInstance().showPreferences(this, Didomi.VIEW_VENDORS);
Didomi.getInstance().showPreferences(this, Didomi.VIEW_SENSITIVE_PERSONAL_INFORMATION);

updateSelectedLanguage

Method used to update the selected language of the Didomi SDK and any property that depends on it.

In most cases this method doesn't need to be called. It would only be required for those apps that allow language change on-the-fly, i.e.: from within the app rather than from the device settings.

If your configuration involves country code (en-US), you can provide a locale code to change the regional configuration as well. If only language code (en) is provided and your configuration requires a country code, the country from the device location will be used (and will fallback to the default country if required).

In order to update the language of the views displayed by the Didomi SDK, this method needs to be called before these views are displayed.

Requires SDK to be initialized

Yes.

Parameters

NameTypeDescription

languageCode

String

string containing the 2-letter language code or 5-letter locale code e.g. en, es, fr, en-US, zh-HK, etc.

Throws

Type

Description

DidomiNotReadyException

Exception thrown when a method that requires the Didomi SDK to be ready is called before that. Developers can call this method within a try/catch or within a lambda expression passed into the onReady method.

Returns

Nothing

Example

Didomi.getInstance().onReady(() -> {
    Didomi.getInstance().updateSelectedLanguage("fr");
});

Notice Config

getPurpose

Get a purpose based on its ID.

Requires SDK to be initialized

Yes.

Parameters

NameTypeDescription

purposeId

String

ID of the purpose we want to get.

Throws

Type

Description

DidomiNotReadyException

Exception thrown when a method that requires the Didomi SDK to be ready is called before that. Developers can call this method within a try/catch or within a lambda expression passed into the onReady method.

Returns

TypeDescription

Purpose

A Purpose with ID purposeId found in the array of required purposes.

Example

Didomi.getInstance().getPurpose("purpose-id");

getRequiredPurposes

Get the list of purpose that are required (automatically determined from the list of required vendors).

Requires SDK to be initialized

Yes.

Parameters

No parameter.

Throws

Type

Description

DidomiNotReadyException

Exception thrown when a method that requires the Didomi SDK to be ready is called before that. Developers can call this method within a try/catch or within a lambda expression passed into the onReady method.

Returns

TypeDescription

Set<Purpose>

A set of type Purpose containing the required purposes.

Example

Didomi.getInstance().getRequiredPurposes();

getRequiredVendors

Get the list of vendors that are required (determined from the configuration).

Requires SDK to be initialized

Yes.

Parameters

No parameter.

Throws

Type

Description

DidomiNotReadyException

Exception thrown when a method that requires the Didomi SDK to be ready is called before that. Developers can call this method within a try/catch or within a lambda expression passed into the onReady method.

Returns

TypeDescription

Set<Vendor>

A set of type Vendor containing the required vendors.

Example

Didomi.getInstance().getRequiredVendors();

getText

Method used to get a dictionary/map based on the key being passed. These keys and texts are extracted from the notice content, preferences content and the texts property specified in the didomi_config.json file as described here https://developers.didomi.io/cmp/mobile-sdk/consent-notice/customize-the-theme#translatable-texts-for-custom-notices.

Requires SDK to be initialized

Yes.

Parameters

NameTypeDescription

key

String

key associated to the dictionary that we want to get.

Throws

Type

Description

DidomiNotReadyException

Exception thrown when a method that requires the Didomi SDK to be ready is called before that. Developers can call this method within a try/catch or within a lambda expression passed into the onReady method.

Returns

TypeDescription

Dictionary/map

Dictionary/map containing the translations for an specific key in different languages, with the form { "en:" "text in English", "fr": "texte en Français" }

Example

Didomi.getInstance().getText("key");

getTranslatedText

Method used to get a translated text based on the key being passed.

The language and the source of this translated text will depend on the availability of the translation for the specific key.

The language being used will be either the selected language of the SDK (based on device Locale and other parameters) or the language specified by app developers as the default language being used by the SDK. The source can be either the didomi_config.json file, which can be either local or remote, or a file that is bundled within the SDK.

These are the attempts performed by the SDK to try to find a translation for the specific key:

  • Get translated value in user locale (selected language) from didomi_config.json (either local or remote).

  • Get translated value in default locale (from the config) from didomi_config.json (either local or remote).

  • Get translated value in user locale (selected language) from the Didomi-provided translations (bundled within the Didomi SDK).

  • Get translated value in default locale (from the config) from the Didomi-provided translations (bundled within the Didomi SDK).

If no translation can be found after these 4 attempts, the key will be returned.

App developers can provide these translated texts through the didomi_config.json file (locally or remotely) in 3 different ways:

Requires SDK to be initialized

Yes.

Parameters

NameTypeDescription

key

String

key associated to the text that we want to get translated.

Throws

Type

Description

DidomiNotReadyException

Exception thrown when a method that requires the Didomi SDK to be ready is called before that. Developers can call this method within a try/catch or within a lambda expression passed into the onReady method.

Returns

Translated text.

Example

Didomi.getInstance().getTranslatedText("key");

getVendor

Get a vendor based on its ID.

Requires SDK to be initialized

Yes.

Parameters

NameTypeDescription

vendorId

String

ID of the vendor we want to get.

Throws

Type

Description

DidomiNotReadyException

Exception thrown when a method that requires the Didomi SDK to be ready is called before that. Developers can call this method within a try/catch or within a lambda expression passed into the onReady method.

Returns

TypeDescription

Vendor

A Vendor with ID vendorId found in the array of required vendors.

Example

Didomi.getInstance().getVendor("vendor-id");

getTotalVendorCount

Get the count of required vendors.

Requires SDK to be initialized

Yes.

Throws

Type

Description

DidomiNotReadyException

Exception thrown when a method that requires the Didomi SDK to be ready is called before that. Developers can call this method within a try/catch or within a lambda expression passed into the onReady method.

Returns

TypeDescription

Int

The total vendor count

Example

Didomi.getInstance().getTotalVendorCount();

getIabVendorCount

Get the count of required IAB vendors.

Requires SDK to be initialized

Yes.

Throws

Type

Description

DidomiNotReadyException

Exception thrown when a method that requires the Didomi SDK to be ready is called before that. Developers can call this method within a try/catch or within a lambda expression passed into the onReady method.

Returns

TypeDescription

Int

The IAB vendor count

Example

Didomi.getInstance().getIabVendorCount();

getNonIabVendorCount

Get the count of required vendors which are not part of the IAB.

Requires SDK to be initialized

Yes.

Throws

Type

Description

DidomiNotReadyException

Exception thrown when a method that requires the Didomi SDK to be ready is called before that. Developers can call this method within a try/catch or within a lambda expression passed into the onReady method.

Returns

TypeDescription

Int

The non-IAB vendor count

Example

Didomi.getInstance().getNonIabVendorCount();


User Status

addVendorStatusListener

Listen for changes on the user status linked to a specific vendor.

Requires SDK to be initialized

No.

Parameters

NameTypeDescription

id

String

The ID of the vendor for which we want to start listening for changes.

This ID should be the ID provided by Didomi, which doesn't contain prefixes.

callback

callback: (CurrentUserStatus.VendorStatus) -> Unit

Callback that will be executed whenever changes are detected on the specified vendor.

Returns

Nothing

Example

Didomi.getInstance().addVendorStatusListener("vendor-id", (newStatus) -> {
    System.out.println("Vendor Status changed. New status: " + newStatus);
});

removeVendorStatusListener

Stop listening for changes on the user status linked to a specific vendor.

Requires SDK to be initialized

No.

Parameters

NameTypeDescription

id

String

The ID of the vendor for which we want to stop listening for changes.

This ID should be the ID provided by Didomi, which doesn't contain prefixes.

Returns

Nothing

Example

Didomi.getInstance().removeVendorStatusListener("vendor-id");

clearUser

Remove the user information from organization. This will also reset the Didomi User ID.

Throws

Type

Description

DidomiNotReadyException

Exception thrown when a method that requires the Didomi SDK to be ready is called before that. Developers can call this method within a try/catch or within a lambda expression passed into the onReady method.

Returns

Nothing

Example

Didomi.getInstance().clearUser();

getCurrentUserStatus

Definition

Exposes the user status for the current regulation that applies.

Parameters

No parameters.

Returns

The user status containing the computed global status for Vendors and purposes:

  • A vendor's global status is enabled, if and only if:

    • the vendor is enabled directly in the vendors layer in all legal basis

    • AND all its related purposes are enabled or essential.

  • A purpose's global status is enabled in one of the two conditions:

    • the purpose is enabled for all the legal basis that it is configured for.

    • OR when the purpose is essential.

ParameterTypeDescription

vendors

object

  • Dictionary that maps the ID of a vendor to an object representing its status.

  • Vendors with undefined user status are included in the response with enabled: false.

  • Vendors with ONLY essential purposes are automatically set with enable: true

purposes

object

  • Dictionary that maps the ID of a purpose to an object representing its status.

  • Purposes with undefined user status are included in the response with enabled: false.

  • Essential purposes are automatically set with enable: true

regulation

string

  • Representation of the current regulation as a Regulation enum value, such as GDPR, CCPA, CPRA, or NONE.

  • Note that some regulations present as enum values are not available yet.

userId

string

Didomi user id.

created

string

User choices creation date.

updated

string

User choices update date.

consentString

string

TCF consent as string

additionalConsent

string

Additional consent.

Throws

Type

Description

DidomiNotReadyException

Exception thrown when a method that requires the Didomi SDK to be ready is called before that. Developers can call this method within a try/catch or within a lambda expression passed into the onReady method.

Examples

CurrentUserStatus currentUserStatus = Didomi.getInstance().getCurrentUserStatus();

// Example: get consent status for vendor `google`
VendorStatus vendorStatus = currentUserStatus.vendors["google"];
bool isVendorEnabled = vendorStatus.enabled;

isUserStatusPartial

Definition

Determine if the user has provided a choice for all vendors selected for the regulation and linked data processing.

This function returns true if the user has not expressed a choice for all the required vendors and data processing.

Requires SDK to be initialized.

Parameters

No parameters.

Returns

boolean

  • This function returns true if the following conditions are all met

    • A regulation apply for the current user (i.e: regulation is not NONE)

    • At least one vendor is configured (if there is no vendor configured, this function always returns false as there is no status to collect)

    • We miss user status for some vendors or purposes

  • Otherwise, it will return false.

    • e.g: If regulation = none (i.e no regulation apply to the end user) → This function returns false

  • Edge cases: a new vendor is added to the notice and status is not collected yet for that vendor. In this case the function will return true until the user update their choice on the consent banner.

Throws (Android and Flutter only)

Type

Description

DidomiNotReadyException

Exception thrown when a method that requires the Didomi SDK to be ready is called before that. Developers can call this method within a try/catch or within a lambda expression passed into the onReady method.

Examples

Didomi.getInstance().isUserStatusPartial();

setCurrentUserStatus

Definition

Set the user status for purposes and vendors. This function will trigger events and API calls every time it is called (and the user status changes) so make sure to push all user choices at once and not one by one.

Please read our article on what to expect from your analytics when setting a custom behavior for your consent notice.

Parameters

Add the desired global status for each vendor and each purpose:

  • the vendor status specified in this function will be reflected on the vendor’s layer.

    • vendor enabled : true → means the vendor is enabled in all the legal basis that this vendor uses.

    • vendor enabled : false → means the vendor is disabled in all the legal basis that this vendor uses

  • the purposes status specified in this function will be reflected on the preferences layer.

    • purpose enabled : true → means the purpose is enabled in all the legal basis in which it’s defined.

    • purpose enabled : false → means the purpose is disabled in all the legal basis in which it’s defined.

Returns

boolean

true if the user choices have changed (i.e. the user had made different choices before this function got called).

Throws (Android and Flutter only)

Type

Description

DidomiNotReadyException

Exception thrown when a method that requires the Didomi SDK to be ready is called before that. Developers can call this method within a try/catch or within a lambda expression passed into the onReady method.

Examples

Map<String, PurposeStatus> purposes = new HashMap<>();
purposes.put("purpose1", new PurposeStatus("purpose1", true));

Map<String, VendorStatus> vendors = new HashMap<>();
vendors.put("vendor1", new VendorStatus("vendor1", true));

CurrentUserStatus currentUserStatus = new CurrentUserStatus(purposes, vendors);
 
boolean updated = Didomi.getInstance().setCurrentUserStatus(currentUserStatus);

setUser

Set custom user information from organization. For detailed information, see documentation.

Parameters

Method without authentication:

NameTypeDescription

organizationUserId

String

Organization ID to associate with the user

activity

FragmentActivity

Optional. When present, notice will be displayed if synchronized user has partial consents.

Method with Encrypted authentication:

NameTypeDescription

userAuthParams

UserAuthWithEncryptionParams

User authentication with encryption

activity

FragmentActivity

Optional. When present, notice will be displayed if synchronized user has partial consents.

Parameters for UserAuthWithEncryptionParams :

NameTypeDescription

id

String

Organization ID to associate with the user

algorithm

String

Algorithm used for computing the user ID

secretId

String

ID of the secret used for the computing the user ID

initializationVector

String

Initialization Vector used for encrypting the message

expiration

Long

Expiration time as UNIX timestamp (optional - must be > 0)

Method with Hash authentication:

NameTypeDescription

userAuthParams

UserAuthWithHashParams

User authentication with encryption

Parameters for UserAuthWithHashParams :

NameTypeDescription

id

String

Organization ID to associate with the user

algorithm

String

Algorithm used for computing the user ID

secretId

String

ID of the secret used for the computing the user ID

digest

String

Digest used for representing the user ID

salt

String

Salt used for computing the user ID (optional)

expiration

Long

Expiration time as UNIX timestamp (optional - must be > 0)

Returns

Nothing

Example

Didomi.getInstance().setUser("e3222031-7c45-4f4a-8851-ffd57dbf0a2a");

Didomi.getInstance().setUser(new UserAuthWithEncryptionParams(
            "e3222031-7c45-4f4a-8851-ffd57dbf0a2a",
            "algorithm",
            "secret_id",
            "initialization_vector",
            10000L // or null
));

Didomi.getInstance().setUser(new UserAuthWithHashParams(
            "e3222031-7c45-4f4a-8851-ffd57dbf0a2a",
            "algorithm",
            "secret_id",
            "digest",
            "salt", // or null
            10000L // or null
));

reset

Reset all the consent information for the current user. This will remove all consent information stored on the device by Didomi and will trigger re-collection of consent. The consent notice will be displayed again when setupUI is called.

If the SDK is not initialized when this method is called, the reset will be performed during SDK initialization.

Parameters

No parameter.

Throws

Nothing

Returns

Nothing

Example

Didomi.getInstance().reset();

setUserAgreeToAll

Report that the user has enabled consents and legitimate interests for all purposes and vendors configured for your app.

This function will log the user choice on our platform and close the notice.

Consent statuses for essential purposes are not stored.

Please read our article on what to expect from your analytics when setting a custom behavior for your consent notice.

Parameters

No parameter.

Throws

Type

Description

DidomiNotReadyException

Exception thrown when a method that requires the Didomi SDK to be ready is called before that. Developers can call this method within a try/catch or within a lambda expression passed into the onReady method.

Returns

boolean

true if the user choices have changed (i.e. the user had made different choices before this function got called).

Example

Didomi.getInstance().setUserAgreeToAll();

setUserDisagreeToAll

Report that the user has disabled consents and legitimate interests for all purposes and vendors configured for your app.

This function will log the user choice on our platform and close the notice.

Consent statuses for essential purposes are not stored.

Please read our article on what to expect from your analytics when setting a custom behavior for your consent notice.

Parameters

No parameter.

Throws

Type

Description

DidomiNotReadyException

Exception thrown when a method that requires the Didomi SDK to be ready is called before that. Developers can call this method within a try/catch or within a lambda expression passed into the onReady method.

Returns

boolean

true if the user choices have changed (i.e. the user had made different choices before this function got called).

Example

Didomi.getInstance().setUserDisagreeToAll();

shouldUserStatusBeCollected

Definition

Determine if user status (consent) should be collected for the visitor. Returns true if user status is required for the current user and one of following two conditions is met:

  • User status has never been collected for this visitor yet

  • New user status should be collected (as new vendors have been added) AND the number of days before recollecting them has exceeded

If none of these two conditions is met, the function returns false. This function is mainly present to allow you to know when to display your own notice if you have disabled our standard notice.

Requires SDK to be initialized.

Parameters

No parameter.

Returns

boolean

Throws (Android and Flutter only)

Type

Description

DidomiNotReadyException

Exception thrown when a method that requires the Didomi SDK to be ready is called before that. Developers can call this method within a try/catch or within a lambda expression passed into the onReady method.

Examples

Didomi.getInstance().shouldUserStatusBeCollected();

Last updated