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:
- Le premier qui s'exécute seulement si un consentement utilisateur est nécessaire.
- 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.
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
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
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.