Implémentation d'AFS pour les applications mobiles (AFSMA) pour Android

Conditions préalables

Ce guide d'implémentation part du principe que vous connaissez les éléments suivants:

  • Protocole d'implémentation des annonces pour les recherches personnalisées (CSA)
  • Développement d'applications Android
  • Associer le SDK Google Mobile Ads pour Android (qui fait désormais partie des services Google Play) à un projet Android Studio La version 9.0.0 des services Google Play est requise.

Classes

Pour diffuser des annonces AFSMA (également appelées annonces dynamiques du Réseau de Recherche avec hauteur dynamique) dans votre application, implémentez les classes suivantes:

SearchAdView

  • Cette classe hérite de la classe Android ViewGroup et affiche les annonces AFSMA. SearchAdView envoie la demande d'annonce avec un DynamicHeightSearchAdRequest et affiche les annonces renvoyées. Le SearchAdView doit être ajouté à tous les groupes de vues existants de l'application.
  • Le SearchAdView doit être instancié avec le contexte dans lequel le SearchAdView s'exécute, généralement un Activity.
  • Une fois l'élément SearchAdView instancié, vous devez appeler la méthode setAdSize() avec AdSize.SEARCH pour demander les annonces AFSMA. Les autres valeurs d'énumération demandent des annonces non compatibles avec APR pour les applications mobiles.
  • Appelez la méthode setAdUnitId() sur cet objet avec votre code de propriété.

DynamicHeightSearchAdRequest.Builder

  • Cette classe encapsule les paramètres de demande d'annonce. Cette méthode revient à définir des paramètres dans les objets de demande d'annonce JavaScript (options de page, options de bloc) pour le Web mobile et pour ordinateur d'AFS.
  • Définissez les paramètres avec les setters appropriés (autrement dit, appelez setQuery() pour définir le paramètre de requête).

Exemple d'implémentation

L'exemple ci-dessous montre comment utiliser un Activity pour créer un SearchAdView en tant que sous-vue d'un ViewGroup. Pour demander correctement des annonces AFSMA, l'objet SearchAdView doit appeler la méthode setAdSize() avec AdSize.SEARCH.

//  MainActivity.java implementation
//  (MainActivity is a subclass of Activity)

// Create the SearchAdView
final SearchAdView searchAdView = new SearchAdView(this);

// Set parameter to request for dynamic height search ads
searchAdView.setAdSize(AdSize.SEARCH); // Important!

// Replace with your pub ID (e.g. ms-app-pub-9616389000213823)
searchAdView.setAdUnitId("ms-app-pub-################");

// Add searchAdView to parent view group
...

Dans le même Activity, créez un DynamicHeightSearchAdRequest.Builder qui détermine les paramètres de l'annonce qui sera affichée dans SearchAdView. Les annonces AFSMA sont configurées de la même manière que les annonces AFS pour les recherches personnalisées. Pour en savoir plus, consultez la documentation de référence concernant ce type d'annonce.

// Create the ad request
DynamicHeightSearchAdRequest.Builder builder =
        new DynamicHeightSearchAdRequest.Builder();
builder.setQuery("flowers");
builder.setNumber(2);

// Replace with the ID of a style from your custom search styles
builder.setAdvancedOptionValue("csa_styleId", "0000000001");

// Customization options (set using setters on
// DynamicHeightSearchAdRequest.Builder)
builder.setAdTest(true);

D'autres options de personnalisation sont possibles en définissant des propriétés supplémentaires sur l'objet DynamicHeightSearchAdRequest.Builder.

Pour envoyer une demande d'annonce, appelez la méthode loadAd() avec l'objet DynamicHeightSearchAdRequest.Builder à partir de l'objet SearchAdView:

searchAdView.loadAd(builder.build());

Options avancées

La plupart des paramètres de demande d'annonce peuvent être définis via des méthodes setter sur l'objet DynamicHeightSearchAdRequest.Builder. Tous les paramètres qui n'ont pas de méthode setter dans DynamicHeightSearchAdRequest.Builder peuvent être définis à l'aide de paires clé/valeur avec la méthode setAdvancedOptionValue(). Consultez la documentation de référence sur les annonces pour les recherches personnalisées AFS pour obtenir la liste complète des paramètres pouvant être définis à l'aide de la méthode setAdvancedOptionValue().

Le paramètre de clé doit être précédé de "csa_" pour que la propriété soit définie correctement.

// Advanced customization options (set using key-value pair)

// Set a parameter (parameter_name) and its value (parameter_value)
// builder.setAdvancedOptionValue("csa_parameter_name", "parameter_value");

// Example: Show visible URL below description
// (domainLinkAboveDescription: false)
builder.setAdvancedOptionValue("csa_domainLinkAboveDescription", "false");

Si vous utilisez la méthode "setter" d'un paramètre et que vous la définissez à l'aide de setAdvancedOptionValue, le deuxième appel remplace la valeur du premier appel.

Examiner les erreurs

SearchAdView (searchAdView ici) contient une méthode setAdListener() pour vous aider à examiner les erreurs. Dans le même Activity:

searchAdView.setAdListener(new AdListener() {
    @Override
    public void onAdLoaded() {
        // Called when an ad is loaded
        super.onAdLoaded();
        Toast.makeText(MainActivity.this, "Ad Loaded",
                Toast.LENGTH_SHORT).show();
        Log.d(MainActivity.class.getSimpleName(), "Ad Loaded");
    }

    @Override
    public void onAdOpened() {
        // Called when an ad opens an overlay that covers the screen
        super.onAdOpened();
        Toast.makeText(MainActivity.this, "Ad Opened",
                Toast.LENGTH_SHORT).show();
        Log.d(MainActivity.class.getSimpleName(), "Ad Opened");
    }

    @Override
    public void onAdLeftApplication() {
        // Called when an ad leaves the application
        // (to go to the browser for example)
        super.onAdLeftApplication();
        Toast.makeText(MainActivity.this, "Ad Left Application",
                Toast.LENGTH_SHORT).show();
        Log.d(MainActivity.class.getSimpleName(), "Ad Left Application");
    }

    @Override
    public void onAdFailedToLoad(int errorCode) {
        // Called when an ad request failed
        super.onAdFailedToLoad(errorCode);
        Toast.makeText(MainActivity.this, "Ad Failed to Load: " + errorCode,
                Toast.LENGTH_SHORT).show();
        Log.e(MainActivity.class.getSimpleName(), "Ad Failed to Load: " +
                errorCode);
    }
});

Les constantes utilisées dans la méthode de rappel onAdFailedToLoad() sont décrites dans la documentation de référence de l'API.

Se préparer aux exigences concernant le communiqué sur les données sur Google Play

En mai 2021, Google Play a annoncé la nouvelle section sur la sécurité des données, qui est une communiqué fourni par le développeur sur les pratiques d'une application concernant la collecte, le partage et la sécurité des données.

Cette page peut vous aider à remplir les exigences liées à ce communiqué concernant votre utilisation du SDK natif AFS (également applicable à AdSense pour Shopping). Sur cette page, vous trouverez des informations sur la façon dont nos SDK traitent les données des utilisateurs finaux, et si oui, comment.

Notre objectif est d'être le plus transparent possible pour vous aider. Toutefois, en tant que développeur de l'application, vous êtes seul responsable de vos réponses au formulaire de la section Sécurité des données de Google Play concernant la collecte et le partage des données des utilisateurs finaux dans votre application, ainsi que vos pratiques de sécurité.

Utiliser les informations de cette page

Cette page liste uniquement les données de l'utilisateur final collectées par la dernière version du SDK.

Pour créer votre communiqué sur les données, vous pouvez consulter le guide sur les types de données d'Android afin de déterminer quel type de données décrit le mieux les données collectées. Dans votre communiqué, veillez également prendre en compte comment votre application spécifique partage et utilise les données collectées.

Type de données auquel le SDK accède et qu'il collecte

Colis:

com.google.android.gms:play-services-afs-native

com.google.ads.afsn

Données collectées automatiquement

Le SDK APR collecte automatiquement les données suivantes. Toutes les données sont transmises à Google depuis l'appareil dans le but de diffuser des annonces, et toutes les données sont chiffrées lors de leur transfert. Les informations personnelles de l'utilisateur ne sont jamais collectées, sauf si votre application lui envoie une requête utilisateur.

Données Ces données sont collectées aux fins suivantes...
Adresse IP Résumé :
  • Prévention des fraudes, sécurité et conformité
  • Publicité ou marketing
  • Déterminer la position approximative
Détails :
L'adresse IP est utilisée pour surveiller la fraude et les utilisations abusives, ainsi que pour déterminer la position approximative de l'utilisateur.

La position approximative est ensuite utilisée pour s'assurer que les annonces diffusées sont conformes aux réglementations locales et pour proposer des annonces pertinentes par rapport à la position géographique approximative de l'utilisateur.

Activité dans les applications
  • Pages vues et appuis dans une application
  • Historique des recherches dans l'application
Résumé :
  • Analyses
  • Prévention des fraudes, sécurité et conformité
  • Publicité ou marketing
  • Personnalisation
Détails :
Votre application nous fournit la requête de l'utilisateur afin de nous permettre de renvoyer des annonces sur le Réseau de Recherche pertinentes par rapport au mot clé. Nous mesurons les vues et l'engagement (clics) avec les annonces affichées.
Diagnostic Résumé :
  • Analyses
Détails :
Le SDK mesure la latence de rendu des annonces afin de permettre l'implémentation et la mesure des améliorations du produit. Nous envoyons également des rapports d'erreur/d'erreur et, si nécessaire, nous ajoutons de temps en temps d'autres instruments pour comprendre comment les éditeurs utilisent ces fonctionnalités.
Appareil ou autres identifiants Résumé :
  • Prévention des fraudes, sécurité et conformité
  • Publicité ou marketing
Détails :
L'ID de l'appareil sert à surveiller les fraudes et utilisations abusives, ainsi qu'à mesurer les performances des annonces.