Conformément aux Règles de Google relatives au consentement de l'utilisateur dans l'UE, vous devez divulguer certaines informations à vos utilisateurs situés dans l'Espace économique européen (EEE) et au Royaume-Uni. Vous devez également obtenir leur consentement pour utiliser des cookies ou tout autre type de stockage local, lorsque la législation l'impose, et pour utiliser des données à caractère personnel (comme AdID) pour diffuser des annonces. Ces règles reflètent les exigences de la directive vie privée et communications électroniques de l'UE, et celles du Règlement général sur la protection des données (RGPD).
Afin d'aider les éditeurs à satisfaire aux obligations qui leur sont imposées par ce règlement, Google propose le SDK User Messaging Platform (UMP). Le SDK UMP a été mis à jour pour être compatible avec les dernières normes de l'IAB. Toutes ces configurations peuvent désormais être facilement gérées dans la section AdMob Confidentialité et messages.
Conditions préalables
- Suivez le guide de démarrage.
- Configurez vos messages dans l'onglet Confidentialité et messages de votre compteAdMob . Pour en savoir plus, consultez À propos de la confidentialité et des messages,
- Si vous vous intéressez aux exigences liées au RGPD, consultez Impact des exigences de l'IAB sur les messages demandant le consentement des utilisateurs de l'UE.
Types de messages destinés aux utilisateurs
Consultez la section Types de messages des utilisateurs pour obtenir la liste complète des messages acceptés. Pour obtenir des instructions spécifiques sur la mise en œuvre de chaque type de message, consultez la barre de navigation de gauche.
Installer avec Gradle
Si vous utilisez la version 19.8.0 ou ultérieure du SDK Google Mobile Ads, le SDK UMP est inclus dans votre package. Si vous utilisez une version antérieure du SDK Mobile Ads, incluez le SDK UMP dans le fichier build.gradle de votre application comme suit:
dependencies {
// This dependency is automatically included by Google Mobile Ads SDK 19.8.0
// or higher.
implementation 'com.google.android.ump:user-messaging-platform:2.0.0'
}
Après avoir modifié le fichier build.gradle de votre application, veillez à synchroniser votre projet avec les fichiers Gradle.
Ensuite,
recherchez l'ID de votre application
et l'ajouter à votre AndroidManifest.xml
:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.rewardedinterstitialexample">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<!-- Sample app ID: ca-app-pub-3940256099942544~3347511713 -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Déterminer si un message doit être affiché
Vous devez demander la mise à jour des informations de consentement de l'utilisateur à chaque lancement d'application, à l'aide de requestConsentInfoUpdate()
, avant de charger un formulaire.
Cela peut déterminer si votre utilisateur doit donner son autorisation s'il ne l'a pas déjà fait ou s'il a expiré.
consentInformation
lorsque vous présentez le formulaire, si nécessaire.
Voici un exemple de vérification de l'état au démarrage de l'application:
Java
package com.example.myapplication; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import com.google.android.ump.ConsentForm; import com.google.android.ump.ConsentInformation; import com.google.android.ump.ConsentRequestParameters; import com.google.android.ump.FormError; import com.google.android.ump.UserMessagingPlatform; public class MainActivity extends AppCompatActivity { private ConsentInformation consentInformation; private ConsentForm consentForm; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Set tag for under age of consent. false means users are not under // age. ConsentRequestParameters params = new ConsentRequestParameters .Builder() .setTagForUnderAgeOfConsent(false) .build(); consentInformation = UserMessagingPlatform.getConsentInformation(this); consentInformation.requestConsentInfoUpdate( this, params, new ConsentInformation.OnConsentInfoUpdateSuccessListener() { @Override public void onConsentInfoUpdateSuccess() { // The consent information state was updated. // You are now ready to check if a form is available. } }, new ConsentInformation.OnConsentInfoUpdateFailureListener() { @Override public void onConsentInfoUpdateFailure(FormError formError) { // Handle the error. } }); } }
Kotlin
Coming soon.
Charger un formulaire si disponible
Avant d'afficher un formulaire, vous devez d'abord déterminer si un formulaire est disponible. Les formulaires non disponibles peuvent être dus à l'activation du suivi limité des annonces par l'utilisateur ou à un tag indiquant qu'il n'a pas atteint l'âge minimal requis.
Pour vérifier la disponibilité d'un formulaire, utilisezthe isConsentFormAvailable()
method on the ConsentInformation
instance que vous avez créé précédemment.
Ajoutez ensuite une méthode wrapper pour charger le formulaire:
Java
... consentInformation.requestConsentInfoUpdate( this, params, new ConsentInformation.OnConsentInfoUpdateSuccessListener() { @Override public void onConsentInfoUpdateSuccess() { // The consent information state was updated. // You are now ready to check if a form is available. if (consentInformation.isConsentFormAvailable()) { loadForm(); } } }, new ConsentInformation.OnConsentInfoUpdateFailureListener() { @Override public void onConsentInfoUpdateFailure(FormError formError) { // Handle the error. } }); } public void loadForm() { } }
Kotlin
Coming soon.
Pour charger le formulaire, utilisez the static loadConsentForm()
method on the UserMessagingPlatform
class.
Java
public void loadForm() { // Loads a consent form. Must be called on the main thread. UserMessagingPlatform.loadConsentForm( this, new UserMessagingPlatform.OnConsentFormLoadSuccessListener() { @Override public void onConsentFormLoadSuccess(ConsentForm consentForm) { MainActivity.this.consentForm = consentForm; } }, new UserMessagingPlatform.OnConsentFormLoadFailureListener() { @Override public void onConsentFormLoadFailure(FormError formError) { // Handle the error } } ); }
Kotlin
Coming soon.
Présenter le formulaire si nécessaire
Une fois que vous avez déterminé la disponibilité du formulaire et l'avez chargé, utilisez la méthodeshow()
sur l'instanceConsentForm
pour présenter le formulaire.
Utilisez l'objetconsentInformation
précédent pour vérifierconsent status et mettre à jour votre méthodeloadForm()
:
Java
public void loadForm() { UserMessagingPlatform.loadConsentForm( this, new UserMessagingPlatform.OnConsentFormLoadSuccessListener() { @Override public void onConsentFormLoadSuccess(ConsentForm consentForm) { MainActivity.this.consentForm = consentForm; if(consentInformation.getConsentStatus() == ConsentInformation.ConsentStatus.REQUIRED) { consentForm.show( MainActivity.this, new ConsentForm.OnConsentFormDismissedListener() { @Override public void onConsentFormDismissed(@Nullable FormError formError) { // Handle dismissal by reloading form. loadForm(); } }); } } }, new UserMessagingPlatform.OnConsentFormLoadFailureListener() { @Override public void onConsentFormLoadFailure(FormError formError) { /// Handle Error. } } ); }
Kotlin
Coming soon.
Si vous devez effectuer des actions après que l'utilisateur a fait son choix ou a ignoré le formulaire, placez cette logique dans le gestionnaire d'achèvement ou de rappel de votre formulaire.
Tests
Forcer une zone géographique
Le SDK UMP permet de tester le comportement de votre application comme si l'appareil était situé dans l'EEE ou au Royaume-Uni à l'aide de the setDebugGeography
method on ConsentDebugSettings.Builder
.
Pour utiliser la fonctionnalité de débogage, vous devez fournir l'ID haché de votre appareil de test dans les paramètres de débogage de votre application. Si vous appelezrequestConsentInfoUpdate()
sans définir cette valeur, votre application consigne le hachage d'ID requis lors de l'exécution.
Java
ConsentDebugSettings debugSettings = new ConsentDebugSettings.Builder(this) .setDebugGeography(ConsentDebugSettings .DebugGeography .DEBUG_GEOGRAPHY_EEA) .addTestDeviceHashedId("TEST-DEVICE-HASHED-ID") .build(); ConsentRequestParameters params = new ConsentRequestParameters .Builder() .setConsentDebugSettings(debugSettings) .build(); consentInformation = UserMessagingPlatform.getConsentInformation(this); consentInformation.requestConsentInfoUpdate(this, params, new ConsentInformation.OnConsentInfoUpdateSuccessListener() { @Override public void onConsentInfoUpdateSuccess() { // The consent information state was updated. // You are now ready to check if a form is available. } }, new ConsentInformation.OnConsentInfoUpdateFailureListener() { @Override public void onConsentInfoUpdateFailure(FormError formError) { // Handle the error. } });
Kotlin
Coming soon.
Avec DebugGeography
, vous avez la possibilité de forcer la géographie à l'une des options suivantes:
Débogage | Description |
---|---|
DEBUG_GEOGRAPHY_DISABLED |
Zone géographique de débogage désactivée. |
DEBUG_GEOGRAPHY_EEA |
La zone géographique apparaît comme dans l'EEE pour les appareils à déboguer. |
DEBUG_GEOGRAPHY_NOT_EEA |
La zone géographique apparaît comme n'appartenant pas à l'EEE pour les appareils à déboguer. |
Notez que les paramètres de débogage ne fonctionnent que sur les appareils de test. Il n'est pas nécessaire d'ajouter des émulateurs à la liste des ID d'appareil, car les tests sont déjà activés par défaut.
Réinitialiser l'état du consentement
Lorsque vous testez votre application avec le SDK UMP, il peut être utile de réinitialiser l'état du SDK afin de simuler la première installation d'un utilisateur.
Pour ce faire, le SDK fournit la méthode reset()
.
Java
consentInformation.reset();
Kotlin
consentInformation.reset()
Vous devez également appeler reset()
si vous décidez de supprimer complètement le SDK UMP de votre projet.