Aller au contenu principal

Comment utiliser le SDK


Comment utiliser l'instance AppConsent

Voici la liste des méthodes les plus communément utilisées

Permet de savoir si l'utilisateur a donné son consentement

appConsent.consentGiven()

Returne true si le consentement a été donné, false sinon.

warning

Veuillez noter qu'il s'agit uniquement de savoir si l'utilisateur a confirmé un choix et non s'il a accepté ou refusé son consentement.

Listener

définir le listener lié au consentement utilisateur

Lorsque l'utilisateur a terminé son parcours et donné son consentement, celui-ci permet d'être prévenu.

info

Il est recommandé de le définir avant d'essayer d'afficher le CMP et de le supprimer une fois que le consentement a été donné ou que la CMP n'a pas été affiché.

appConsent.setOnPresentNoticeListener(object : OnPresentNoticeListener { 
override fun presentConsentGiven() {
// ...
}

override fun presentConsentError(error: Throwable?) {
// ...
}
})
Supprime le Listener
appConsent.setOnPresentNoticeListener(null)

Essaye d'afficher la CMP

Il existe 2 modes d'affichages:

  1. Le premier qui s'exécute seulement si un consentement utilisateur est nécessaire.
  2. Le second, pour permettre à vos utilisateurs de consulter / modifier leur consentement (souvent utiliser depuis votre écran de paramétrage pour afficher la politique de vie privée de votre utilisateur)
note

Par défaut cette méthode essaye d'afficher la CMP. Elle essaye car, selon la région de vos utilisateurs (si aucun paramétrage n'est effectué via ACConfiguration pour forcer l'affichage) alors elle suivra ses contrôles et affichera la CMP que si nécessaire.

Elle s'affichera également si le consentement utilisateur n'a pas encore été donné ou si celui-ci doit être renouvellé.

// @return true si la notice s'affiche, false sinon
appConsent.tryToDisplayNotice(false) // affiche la CMP seulement si besoin
appConsent.tryToDisplayNotice(true) // force l'affichage de la CMP

Elle retourne true si la CMP s'affiche, false sinon

GCM Status

info

Cette méthode indique l'état actuel de GCMv2 (Google Consent Mode V2).

Avant d'appeler cette méthode, il est préférable de s'assurer que l'utilisateur a déjà donné son consentement et qu'il est à jour, et que le CMP n'a pas besoin d'être réaffiché.

Dans le cas contraire :

  • soit la valeur sauvegardée de l'ancien consentement sera retournée
  • soit les valeurs par défaut de votre configuration FirebaseAnalytics AndroidManifest seront retournées.
Définir l'état de consentement par défaut à partir de la documentation de Google
appConsent.getGCMConsentStatus()

Retourne GCMStatus

Modèle de données représentant l'état de GCMv2 (Google Consent Mode v2)

Cela vous permettra de définir le consentement à partir de votre instance Firebase Analytics.

isAnalyticsStorageGranted, indique si l'utilisateur a donné son consentement pour FirebaseAnalytics.ConsentType#ANALYTICS_STORAGE

isAdStorageGranted, indique si l'utilisateur a donné son accord pour FirebaseAnalytics.ConsentType#AD_STORAGE

isAdUserDataGranted, indique si l'utilisateur a donné son accord pour FirebaseAnalytics.ConsentType#AD_USER_DATA

isAdPersonalizationGranted, indique si l'utilisateur a donné son consentement pour FirebaseAnalytics.ConsentType#AD_PERSONALIZATION

FirebaseAnalytics.ConsentType

Vérifier la mise à jour

Cette méthode vous permet de vérifier sur nos serveurs si votre Notice a été mis à jour depuis son dernier affichage sur l'appareil de l'utilisateur.

info

La méthode renverra true si vous avez modifié la Source et/ou la Notice depuis votre dashboard et, si et seulement si, vous avez configuré votre Notice pour qu'elle se mette à jour pour tous vos utilisateurs

Check for update - configuration
warning

Cette méthode ne peux être utilisée qu'une seule fois toutes les 30 minutes. Cela vous permet de forcer un premier appel réseau pour être certains que vos utilisateurs soient à jours. Les prochains appels à cette méthode utilisera le cache de la réponse précédente ou tentera un appel réseau si la précédente était en erreur.

appConsent.checkForUpdate({ isNeedToPresentTheCmp: Boolean ->
// Votre Notice a été mise à jour, vous devez représenter la CMP à vos utilisateurs
if (true == isNeedToPresentTheCmp) {
/*
Permet de supprimer localement l'ancien consentement utilisateur.
Cette étape n'est pas obligatoire, mais elle permet d'éviter de refaire un appel réseau
pour vérifier plus tard si la Notice a été mise à jour
car plus aucuns consentement ne sera présent sur le device de l'utilisateur.
*/
appConsent.clearConsent()
appConsent.tryToDisplayNotice(false)
} else {
/*
La Notice est la même que lors de la dernière vérification
(vous n'avez apporté aucunes modification depuis le board ou
celle-ci n'a pas subit de mise à jour interne par nos soins;
comme par exemple la mise à jour d'un vendor)
*/
}
}) { _: Throwable? ->
/*
Une erreur s'est produite
*/
}

Utilisation de méthodes plus spécifique de AppConsent

Voici la liste des méthodes qui pourrait éventuellement vous servir dans le cas où vous souhaiteriez allez plus loin dans le suivi du consentement de vos utilisateurs

Consentable X accepté

appConsent.consentableAllowed(1,0)

Retourne true si le consentable avec id = 1 et consentableType = 0 est autorisé, false sinon. Le id à passer est le iabId de votre purpose et le consentableType est le type, par exemple purpose = 0.

Stack X accepté

appConsent.stackAllowed(1)

Retourne true si la stack avec id = 1 est autorisée, false sinon.

Vendor X accepté

appConsent.vendorAllowed(1)

Retourne true si le vendor avec id = 1 est autorisé, false sinon.

Est-ce que tous les consentables ont été acceptés

appConsent.isAllConsentablesAllowed()

Retourne true si tous les consentables ont été acceptés false si au moins un consentable n'est pas accepté et null dans le cas où aucun choix n'a encore été effectué (notice pas encore téléchargé, choix pas encore effectué, cache applicatif supprimé, etc.).

Est-ce que tous les consentables ont été refusés

appConsent.isAllConsentablesDisallowed()

Retourne true si tous les consentables ont été refusés false si au moins un consentable n'est pas refusé et null dans le cas où aucun choix n'a encore été effectué (notice pas encore téléchargé, choix pas encore effectué, cache applicatif supprimé, etc.).

Est-ce que toutes les stacks ont été acceptées

appConsent.isAllStacksAllowed()

Retourne true si toutes les stacks ont été acceptées false si au moins une stack n'est pas acceptée et null dans le cas où aucun choix n'a encore été effectué ou qu'aucunes stack n'est présente dans votre source (notice pas encore téléchargé, choix pas encore effectué, cache applicatif supprimé, etc.).

Est-ce que toutes les stacks ont été refusées

appConsent.isAllStacksDisallowed()

Retourne true si toutes les stacks ont été refusées false si au moins une stack n'est pas refusée et null dans le cas où aucun choix n'a encore été effectué ou qu'aucunes stack n'est présente dans votre source (notice pas encore téléchargé, choix pas encore effectué, cache applicatif supprimé, etc.).

Est-ce que tous les vendors ont été acceptés

appConsent.isAllVendorsAllowed()

Retourne true si tous les vendors ont été acceptés false si au moins un vendor n'est pas accepté et null dans le cas où aucun choix n'a encore été effectué (notice pas encore téléchargé, choix pas encore effectué, cache applicatif supprimé, etc.).

Est-ce que tous les vendors ont été refusés

appConsent.isAllVendorsDisallowed()

Retourne true si tous les vendors ont été refusés false si au moins un vendor n'est pas refusé et null dans le cas où aucun choix n'a encore été effectué (notice pas encore téléchargé, choix pas encore effectué, cache applicatif supprimé, etc.).

Est-ce que l'utilisateur a tout accepté

appConsent.isUserAcceptAll()

Retourne true si tous les consentables, les stacks et les vendors sont acceptés. false si au moins l'un d'entre eux n'est pas accepté et null si aucune donnée n'est encore présente (la notice n'a pas encore été téléchargé, le choix n'a pas encore été fait, le cache de l'application a été supprimé, etc.)

Est-ce que l'utilisateur a tout refusé

appConsent.isUserDenyAll()

Retourne true si tous les consentables, les stacks et les vendors sont refusés. false si au moins l'un d'entre eux n'est pas refusé et null si aucune donnée n'est encore présente (la notice n'a pas encore été téléchargé, le choix n'a pas encore été fait, le cache de l'application a été supprimé, etc.)

Définir le status des consentables

appConsent.setConsentableConsents(
mapOf(1 to ConsentStatus.ALLOWED, 2 to ConsentStatus.DISALLOWED),
object : AppConsentSetConsentableConsentsCallback {
override fun onSuccess() {
// ...
}

override fun onError(t: Throwable) {
// ...
}
}
)

Définissez l’état des consentements, enregistrez-le et envoyez-le au serveur.

Supprimer le consentement

Supprime localement le consentement utilisateur, mais pas sur le serveur (cela permettra un nouvelle affichage de la CMP lors du prochain appel a tryToDisplayNotice(false) par exemple)

appConsent.clearConsent()

Définir vos ids externes

val ids = mapOf<String, String>("customPersonalId" to "abze23", "otherData" to "{\"name\": \"test\"}")
appConsent.setExternalIds(ids)

Permets de définir des Ids supplémentaires qui seront pris en compte lors de la validation du consentement utilisateur.

Récupérer vos ids externes

Récupère vos external ids précédemment sauvegardés

val ids: Map<String, String> = appConsent.getExternalIds()

(Bonus) Récupérez vos consentements

Vos consentements sont enregistrés dans SharedPreferences de votre application. Pour en savoir plus sur les clés utilisées pour sauvegarder vos consentements, veuillez vous référer à la documentation IAB.

Nous mettons également à dispositions une clé pour récupérer les Google Additional Consent IABTCF_AddtlConsent qui renvoie une String.