Android TV

Obtenir le SDK AppConsent TV

Pour intégrer le SDK AppConsent à votre projet Android, suivez les étapes ci-dessous :

Dans votre fichier global 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} .

appconsent_artifactory_client_username=${username}
appconsent_artifactory_client_password=${encrypted_password}

Dans le fichier build.gradle, de votre projet allprojects/repositories ajoutez ce qui suit :

maven {
url "https://artifactory.datalf.chat/artifactory/app-consent-v2-release"
credentials {
username = "${appconsent_artifactory_client_username}"
password = "${appconsent_artifactory_client_password}"
}
}

Dans votre build.gradle , de votre projet android ajoutez ce qui suit :

packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/notice.txt'
exclude 'META-INF/ASL2.0'
exclude 'META-INF/AL2.0'
exclude 'META-INF/LGPL2.1'
exclude 'META-INF/*.kotlin_module'
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}

Dans votre build.gradle ajoutez ce qui suit :

dependencies {
implementation 'com.sfbx.appconsent:appconsent-tv:${currentTvVersion}'
}

Où la currentTvVersion = 1.1.0-beta03

AppConsent utilise androidX Jetpack, il n'est donc pas compatible avec android.supportapplications.

Comment utiliser AppConsent

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

2 - Créez AppConsentTV.

import android.app.Activity
import android.os.Bundle
import com.sfbx.appconsent.tv.AppConsentTV
class MainActivity : Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val appConsentTV = AppConsentTV(
context = this,
appKey = "YOUR_APP_KEY",
forceApplyGDPR = true,
theme = AppConsentTVTheme.Builder(this)
.iconDrawable(ContextCompat.getDrawable(this, R.drawable.ic_android))
.build()
) {
it.presentNotice(false)
}
}
}

Si forceApplyGDPR est true , cela oblige la CMP à s'afficher même si votre pays n'est pas soumis au RGPD.

La fonction onReady() appelée lorsque l'initialisation de AppConsent est terminée. Elle permet d'éviter les bugs lorsque vous souhaitez présenter une notice juste après la création de l'objet AppConsentTV.

Pour l'instant, vous ne pouvez remplacer theme et icon que par unAppConsentTVThemepersonnalisé

3 - Utilisez ensuite l'objet appConsentTV.

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

appConsentTV.consentGiven()

Retournez true si le consentement est donné, false autrement.

Ajout d'un Listener

appConsentTV.addNoticeListener(object : AppConsentNoticeListener {
override fun onConsentGiven() {
}
override fun onError(error: AppConsentError) {
}
})

Remove Listener

appConsentTV.removeNoticeListener(listener)

Chaque fois que le consentement est mis à jour, un nouvel événement sera déclenché AppConsentNoticeListener .

Display CMP notice

appConsentTV.presentNotice(false) // display CMP notice only if needed
appConsentTV.presentNotice(true) // force to display CMP notice

presentNotice(force : Boolean) est une méthode locale qui ne vérifie que le cache. Voir checkForUpdate() pour obtenir une mise à jour de notice.

Consentement autorisé

appConsentTV.consentableAllowed(1)

Retournez true si le consentement avec id = 1est autorisé, false sinon - Ce sont les finalités de l'IAB de 1 à 10

Stack autorisé

appConsentTV.stackAllowed(1)

Retournez true si le stack avec id = 1 est autorisé, false autrement.

Vendor autorisé

appConsentTV.vendorAllowed(1)

Retournez true si le vendor avec id = 1 est autorisé, false autrement.

Définir le statut de consentement

appConsentTV.setConsentableConsents(
mapOf(1 to ConsentStatus.ALLOWED, 2 to ConsentStatus.DISALLOWED),
object : AppConsentSetConsentableConsentsCallback {
override fun onSuccess() {
}
override fun onError(t: Throwable) {
}
}
)

Définissez le statut des consentements, enregistrez-le et envoyez-le au serveur.

Vérifier les mises à jour

appConsentTV.checkForUpdate(object : AppConsentUpdateCallback {
override fun onResult(updated: Boolean) {
}
override fun onError(t: Throwable?) {
}
})

Vérifiez si le consentement doit être mis à jour (nouvelle version gvl, nouveaux consentements...).

Clear consents

appConsentTV.clearConsent()

Clear consent sur le mobile, mais pas sur le serveur.

Définir les données externes

val map = mapOf<String, Any>("externalId" to "abze23", "otherData" to "{\"name\": \"test\"}")
appConsentTV.setExternalData(map)

Définissez les données externes et envoyez-les au serveur.

Obtenir des données externes

val map: Map<String, Any> = appConsentTV.getExternalData()

4 - Récupérez vos consentements

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