Partagez vos commentaires et contribuez à l'élaboration de la feuille de route du SDK Google Mobile Ads. Répondez à l'enquête annuelle sur le SDK Google Mobile Ads 2023 avant sa fermeture le 5 mai 2023.

Commencer

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

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

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é.

Utilisez les informations stockées dans l'objet consentInformationlorsque 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.

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.