AppConsent CMP
Rechercher…
Android

Obtenir le SDK AppConsent

Pour ajouter le SDK AppConsent à votre projet Android, suivez les étapes ci-dessous :
Dans votre fichier gradle.properties, ajoutez ce qui suit et remplacez ${username} par le nom d'utilisateur fourni et${encrypted_password} par le mot de passe crypté fourni. Veuillez nous contacter, si vous n'avez pas votre ${username} et votre ${encrypted_password} .
1
appconsent_artifactory_client_username=${username}
2
appconsent_artifactory_client_password=${encrypted_password}
Copied!
Dans le fichier build.gradle de votre projet, allprojects/repositories ajoutez ce qui suit :
1
maven {
2
url "https://artifactory.datalf.chat/artifactory/app-consent-v2-release"
3
credentials {
4
username = "${appconsent_artifactory_client_username}"
5
password = "${appconsent_artifactory_client_password}"
6
}
7
}
Copied!
Dans votre fichier build.gradle , sous android ajoutez ce qui suit :
1
compileOptions {
2
sourceCompatibility JavaVersion.VERSION_1_8
3
targetCompatibility JavaVersion.VERSION_1_8
4
}
Copied!
Toujours dans build.gradle ajoutez ce qui suit :
1
dependencies {
2
implementation 'com.sfbx.appconsent:appconsent-ui:${currentUIVersion}'
3
}
Copied!
Là où currentUIVersion = 1.1.11
AppConsent utilise androidX Jetpack, il n'est donc pas compatible avec l’applicationsandroid.support

Comment utiliser AppConsent

1 - Obtenez votre AppKey dans AppConsent : https://app.appconsent.io

2 - Créez AppConsentUI

1
import android.os.Bundle
2
import androidx.appcompat.app.AppCompatActivity
3
import com.sfbx.appconsent.ui.AppConsentUI
4
5
class MainActivity : AppCompatActivity() {
6
7
override fun onCreate(savedInstanceState: Bundle?) {
8
super.onCreate(savedInstanceState)
9
setContentView(R.layout.activity_main)
10
11
val appConsentUI = AppConsentUI(
12
context = this,
13
appKey = "YOUR_APP_KEY",
14
forceApplyGDPR = true
15
) {
16
it.presentNotice(false)
17
}
18
}
19
}
Copied!
Si forceApplyGDPR est true , il oblige la CMP à s'afficher même si votre pays n'est pas soumis à la RGPD.
La fonction onReady()est appelée lorsque AppConsent a terminé son initialisation. Elle peut éviter les bugs lorsque vous souhaitez présenter une notice juste après la création de l'objet AppConsentUI.

3 - Utilisez ensuite l'objet appConsentUI

Vérifier si l'utilisateur a donné son consentement

1
appConsentUI.consentGiven()
Copied!
Retourne true si le consentement est donné, false autrement.

Vérifier si le pays utilisateur est soumis au RGPD

1
appConsentUI.isSubjectToGDPR()
Copied!
Retourne true si le pays de l'utilisateur est soumis au RGPD, false autrement.

Verifier si l'utilisateur a activé le LimitedTracking

1
appConsentUI.sLimitedTrackingEnabled()
Copied!
Retourne true si le blocage de tracking pub (limited ad tracking) est actif, false autrement

User ID

1
appConsentUI.getUserId()
Copied!
Retourne l'advertising id utilisé par Appconsent.
Si isLimitedTrackingEnabled() == false, L'ID se un Google ADID autrement ca se un UUID généré aléatoirement

Consent listener

Ajouter un Listener

1
appConsentUI.addNoticeListener(object : AppConsentNoticeListener {
2
override fun onConsentGiven() {
3
4
}
5
6
override fun onError(error: AppConsentError) {
7
8
}
9
})
Copied!

Enlever le Listener

1
appConsentUI.removeNoticeListener(listener)
Copied!
Chaque fois que le consentement est mis à jour, un nouvel événement sera déclenché dans AppConsentNoticeListener .

Geolocalisation du consent listener

Ajouter la Geolocation Listener

1
appConsentUI.addGeolocationListener(object : AppConsentLocationListener {
2
3
override fun onResult(allowed: Boolean) {
4
5
}
6
7
override fun onError(error: AppConsentError) {
8
9
}
10
})
Copied!

Enlever la Geolocation Listener

1
appConsentUI.removeGeolocationListener(listener)
Copied!
Chaque fois que le consentement de géolocalisation est mis à jour, un nouvel événement sera déclenché dansAppConsentLocationListener

Afficher la notice CMP

1
appConsentUI.presentNotice(false) // display CMP notice only if needed
2
3
appConsentUI.presentNotice(true) // force to display CMP notice
Copied!
presentNotice(force : Boolean) est une méthode locale qui ne vérifie que le cache. Voir checkForUpdate() pour récupérer une notice de mise à jour.
A savoir que force: boolean ici si mis a false la notice sera affichée que si le consentement n'a jamais été soumis par l'utilisateur , Si true la notice s'affichera mais sur la page des parameters de notice que le consentement ait deja été donné ou non par l'utilisateur .

Afficher la CMP de géolocalisation

1
appConsentUI.presentGeolocationNotice(false) // display Geolocation CMP only if needed
2
3
appConsentUI.presentGeolocationNotice(true) // force to display Geolocation CMP
Copied!

Consentement à la géolocalisation

1
appConsentUI.geolocationConsentGiven()
Copied!
Renvoie true si le consentement à la géolocalisation est donné, false autrement.

Consentement autorisé

1
appConsentUI.consentableAllowed(1,0)
Copied!
Renvoietrue si le consentement avec id = 1 et consentableType=0 est autorisé, false autrement. L'identifiant id à passer est iabId de votre purpose.

Consentement supplémentaire autorisé

1
appConsentUI.extraConsentableAllowed("O56KePok")
Copied!
Renvoie true si un consentement supplémentaire est autorisé, false dans le cas contraire. Le paramètre est extraId de votre extra purpose disponible dans AppConsent.

Stack autorisé

1
appConsentUI.stackAllowed(1)
Copied!
Retourne true si le stack avec id = 1 est autorisé, false autrement. L'identifiant id à passer est iabId de votre stack.

Vendor autorisé

1
appConsentUI.vendorAllowed(1)
Copied!
Retourne true si le vendor avec id = 1 est autorisé, false autrement. L'identifiant id à passer estiabId de votre vendor.

Extra vendor autorisé

1
appConsentUI.extraVendorAllowed("EHJNieed")
Copied!
Retournetrue si l'extra vendor est autorisé, false autrement. Le paramètre est extraId de votre extra vendor disponible dans AppConsent.

Tous les consentables autorisés

1
appConsentUI.allConsentablesAllowed()
Copied!
Retourne true si tous les consentables sont autorisés false autrement

Toutes les stacks autorisées

1
appConsentUI.allStacksAllowed()
Copied!
Retourne true si toutes les stacks sont autorisées false autrement

Tous les vendors autorisés

1
appConsentUI.allVendorsAllowed()
Copied!
Retourne true si tous les vendors sont autorisésfalse autrement

L'utilisateur accept tout

1
appConsentUI.userAcceptAll()
Copied!
Retourne true si tous les consentables , stacks et vendors sont autorisés false autrement

Définir le statut de consentement

1
appConsentUI.setConsentableConsents(
2
mapOf(1 to ConsentStatus.ALLOWED, 2 to ConsentStatus.DISALLOWED),
3
object : AppConsentSetConsentableConsentsCallback {
4
override fun onSuccess() {
5
6
}
7
8
override fun onError(t: Throwable) {
9
10
}
11
}
12
)
Copied!
Définissez le statut des consentements, enregistrez-le et envoyez-le au serveur.

Définissez un statut consentement supplémentaire

1
appConsentUI.setExtraConsentableConsents(
2
mapOf("EHJNieed" to ConsentStatus.ALLOWED, "O56KePok" to ConsentStatus.DISALLOWED),
3
object : AppConsentSetConsentableConsentsCallback {
4
override fun onSuccess() {
5
6
}
7
8
override fun onError(t: Throwable) {
9
10
}
11
}
12
)
Copied!
Définissez un statut de consentement supplémentaire, enregistrez-le et envoyez-le au serveur. Les Ids sont les extraId de votre finalité supplémentaire disponibles dans AppConsent.

Vérifier les mises à jour

1
appConsentUI.checkForUpdate(object : AppConsentUpdateCallback {
2
override fun onResult(needUpdate: Boolean) {
3
if (needUpdate) {
4
appConsentUI.presentNotice(false)
5
}
6
}
7
8
override fun onError(t: Throwable?) {
9
10
}
11
})
Copied!
Vérifiez si le consentement doit être mis à jour (nouvelle version GVL, nouveaux consentements...).
Dans cet exemple, la page d'introduction de la CMP sera affichée après une modification de notice dans AppConsent.
1
appConsentUI.clearConsent()
Copied!
Clear consent sur le mobile, mais pas sur le serveur.

GET / SET externalIds

1
val ids = appConsentUI.externalIds.toMutableMap()
2
ids["contractId"] = "AZR35G"
3
appConsentUI.externalIds = ids
Copied!
GET / SET external ids en cache et l'envoyer au serveur lors de l'ouverture de la notice.

Sauvegarder les external ids

1
appConsentUI.saveExternalIds(
2
success = { },
3
failed = { }
4
)
Copied!
Envoyez les external ids en cache au serveur.

Sauvegardez le consentement floating purpose

1
val floatingPurposes = mapOf("floatingId" to true)
2
appConsentUI.saveFloatingPurposes(
3
floatingPurposes,
4
success = { },
5
failed = { }
6
)
Copied!
Paramétrez le floating purpose consent dans le cache comme une map et envoyez-les au serveur.
Un seul floating purpose sera envoyée à ce moment-là (1.1.0-beta04). Nous faisons correspondre les identifiants donnés avec ceux définis dans AppConsent.

Récupération du consentement floating purpose

1
appConsentUI.extraFloatingAllowed("floatingId")
Copied!
Retourne true si le floating purpose est autorisé, false autrement.

Sauvegardez de force un consentement

1
appConsentUI.save(
2
onResult = {
3
4
},
5
onError = {
6
7
}
8
)
Copied!
Forcez le SDK à envoyer des consentements au serveur. Cela peut être utile si vous mettez à jour des externalIds et que vous voulez les mettre à jour sur le serveur.

4 - 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 IAB documentation.
Nous mettons également à dispositions une clé pour récupérer les Google Additional Consent IABTCF_AddtlConsent qui renvoie une String.

5 - Xchange

Dans votre build.gradle ajouter ce qui suit :
1
dependencies {
2
implementation 'com.sfbx.appconsent:appconsent-ui-xchange:${currentUIVersion}'
3
}
Copied!
Là où currentUIVersion = 1.1.11

Définir les données de l'utilisateur Xchange

1
appConsentUI.setXchangeUserData(
2
XChangeUserData.Builder()
3
4
.build()
5
)
Copied!
Les données de l'utilisateur sont sauvegardées dans le cache, et lorsque l'utilisateur donne son consentement, les données sont envoyées au serveur.

Ajouter une demande de localisation d'un listener

1
appConsentUI.addRequestLocationListener(object : AppConsentRequestLocationListener {
2
override fun requestLocation() {
3
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
4
ActivityCompat.requestPermissions(
5
this@MainActivity,
6
arrayOf(
7
Manifest.permission.ACCESS_COARSE_LOCATION,
8
Manifest.permission.ACCESS_FINE_LOCATION,
9
Manifest.permission.ACCESS_BACKGROUND_LOCATION
10
),
11
REQUEST_PERMISSION_CODE
12
)
13
} else {
14
ActivityCompat.requestPermissions(
15
this@MainActivity,
16
arrayOf(
17
Manifest.permission.ACCESS_COARSE_LOCATION,
18
Manifest.permission.ACCESS_FINE_LOCATION
19
),
20
REQUEST_PERMISSION_CODE
21
)
22
}
23
}
24
})
Copied!
Si votre application doit suivre la géolocalisation, vous devez utiliserAppConsentRequestLocation comme ci-dessus.

Huq

Utilisez le SDK Huq.
1
appConsentUI.startHuq()
2
3
appConsentUI.stopHuq()
Copied!

Smart-Traffik

Utilisez le SDK Smart-Traffik.
1
appConsentUI.startSmartTraffik() // start Smart-Traffik SDK when user gives his consent
2
3
appConsentUI.stopSmartTraffik() // stop Smart-Traffik SDK
Copied!
Dernière mise à jour 17d ago