Filtrage des annonces incitant à installer une application

Les nouvelles installations d'applications mobiles sont souvent motivées par des annonces incitant à installer une application. Pour maximiser le ROI de vos dépenses publicitaires, nous vous recommandons de ne pas diffuser d'annonce incitant à installer une application sur les appareils où cette application est déjà installée. Dans cette proposition, nous appelons cette pratique "filtrage des annonces incitant à installer une application".

Cette proposition explique comment l'API Protected Audience sur Android prend en charge le filtrage des annonces contextuelles, en particulier le filtrage des annonces incitant à installer une application, tout en protégeant la confidentialité. Pour y participer, l'application doit explicitement activer le filtrage des annonces incitant à installer une application. Lors de la sélection des annonces, les annonces candidates sont filtrées en fonction de la liste des applications installées sur l'appareil connu par la technologie publicitaire. La liste des applications installées n'est visible que dans le flux de sélection des annonces et s'appuie sur la plate-forme côté achat pour indiquer qu'une annonce spécifique doit être filtrée en fonction de l'existence d'une application sur l'appareil.

Pour configurer le filtrage des annonces incitant à installer une application, procédez comme suit.

Étape 1 : Enregistrer l'application pour le filtrage des annonces incitant à installer une application

Pour activer le filtrage des annonces incitant à installer une application, le développeur appelle l'API d'enregistrement des applications registerForAdFiltering à partir de son application, ou d'un SDK ad tech, avec une liste eTLD+1 d'acheteurs de technologie publicitaire. Cela permet aux acheteurs de la liste, et uniquement à ces acheteurs, de filtrer les annonces en fonction de l'état d'installation de l'application, directement ou via le SDK de la technologie publicitaire. L'enregistrement permet au développeur de l'application de contrôler totalement si son application doit participer ou non au filtrage des annonces incitant à installer une application.

void registerForAdFiltering(List<AdTechIdentifier> buyers);

Étape 2 : Demander à filtrer les annonces incitant à installer une application

Lorsqu'une annonce est examinée pour les enchères, les acheteurs peuvent choisir de la filtrer en fonction de l'état d'installation de l'application. Pour ce faire, incluez le nom de package de l'application dans les métadonnées de l'annonce. La demande de filtrage des annonces incitant à installer une application fait partie des données relatives aux annonces transmises au processus d'enchères Protected Audience. Ces données sont créées différemment selon qu'il s'agit d'une annonce contextuelle ou de remarketing.

  • Le principal cas d'utilisation pour le filtrage des annonces incitant à installer une application concerne les annonces contextuelles. Ici, les informations de filtrage sont incluses dans les données relatives aux annonces que les acheteurs peuvent fournir aux vendeurs lorsqu'ils répondent à une enchère contextuelle en dehors de Protected Audience. Protected Audience s'attend à ce que ces informations de filtrage soient renvoyées dans la réponse contextuelle, comme toutes les autres métadonnées spécifiques aux annonces.
  • Pour le cas d'utilisation des annonces de remarketing, Protected Audience s'attend à ce que vous incluiez les informations de filtrage dans l'audience personnalisée. Vous pouvez choisir de le faire lorsque vous rejoignez l'audience et lorsque vous récupérez de nouvelles données d'audience dans le cadre du processus de mise à jour de l'audience.

La demande de filtrage des annonces incitant à installer une application doit se présenter comme suit dans l'objet JSON AdData :

{
  "render_uri": "https://..",
  "metadata": {..},
  "filters": {
    "app_install": {
       "app_package_names": ["app1.package", "app2.package"]
    }
  }
}

Remarque : Vous pouvez filtrer les annonces incitant à installer une application pour plusieurs applications à la fois. Pour ce faire, listez simplement tous les noms de packages d'applications à évaluer. Si ne serait-ce qu'un package figure dans la liste d'installations d'applications, l'annonce est filtrée.

Nous étudions des moyens d'activer le chiffrement et/ou la signature des informations sur les annonces contextuelles. Nous souhaiterions recueillir vos commentaires à ce sujet.

Étape 3 : Filtrer les annonces incitant à installer une application pendant la sélection des annonces

Lors d'une demande d'annonce, l'acheteur peut transmettre plusieurs annonces au vendeur avec des informations de filtrage afin que les annonces pour les applications installées puissent être filtrées. Le côté vente est nécessaire pour transmettre les informations de filtrage dans le champ adData de la configuration de la fonction selectAds. Android s'attend à un format de message semblable à celui ci-dessous.

AdData myAdData = new AdData.Builder()
        .setRenderUri(Uri.parse("https://.."))
        .setMetadata("{...}")
        .setFilters(new AdFilters.Builder()
                .setAppInstalledFilter(new AppInstalledFilter.Builder()
                    .setPackageNames(ImmutableList.of("app1.package", "app2.package"))
                    .build())
                .build())
        .build();

AdSelectionConfig myAdSelectionConfig = new AdSelectionConfig.Builder()
    .setSeller(AdTechIdentifier.fromString("example-ssp1.com"))
    .setDecisionLogicUri(Uri.parse("https://..."))
    ...
    .setContextualAds(ImmutableList.of(new ContextualAd.Builder()
                      .setBuyer(AdTechIdentifier.fromString("example.com"))
                      .setReportingUri("https://example.com/reporting")
                      .setBid(20)
                      // myAdData could be taken from the JSON above
                      .setAd(myAdData)
                      .build()))
    .build();

// Invoke ad services API to initiate ad selection workflow.
selectAds(myAdSelectionConfig);

Le filtrage est traité dans l'API selectAds. Protected Audience filtre l'annonce si l'application spécifiée dans le message correspond à l'application figurant dans la liste d'installations d'applications spécifique des acheteurs ad tech. Deux résultats sont possibles :

  • L'application ne figure pas dans cette liste. Elle n'est donc pas installée ni ouverte.
  • L'application figure dans cette liste. Elle est donc installée et ouverte.

Si Protected Audience détecte qu'une application est déjà présente, l'annonce est exclue de la liste des annonces sur lesquelles la mise aux enchères utilise scoreAds.

Remarques concernant les annonces contextuelles

Avec le filtrage des annonces incitant à installer une application, les API Protected Audience deviennent compatibles avec le filtrage des annonces contextuelles. Il est important de spécifier quelques points pour les cas où l'enchère est une combinaison d'annonces contextuelles et de remarketing, ou dans les cas où elle se compose seulement d'annonces contextuelles.

  • Lors d'une mise aux enchères selectAd, l'acheteur a la possibilité de transmettre une liste d'objets ContextualAd. Ces objets contiennent l'eTLD+1 de l'acheteur d'annonces, l'enchère pour l'annonce, une URL renvoyant vers la logique de création de rapports de l'annonce, l'AdData contenant l'URL du contenu de l'annonce et une signature de validation appartenant à l'acheteur. Pour en savoir plus, consultez la section sur la signature d'une annonce contextuelle. Notez que le format AdData est utilisé à la fois dans les annonces contextuelles et les annonces de remarketing.

  • Au début du processus d'enchères, les annonces contextuelles et de remarketing sont filtrées à l'aide de l'ensemble de noms du package spécifiés dans les AdData.adFilters.appInstallFilters.packageNames inclus. Les valeurs d'enchères sont ensuite définies pour les annonces de remarketing, et les annonces contextuelles et de remarketing sont évaluées à l'aide de la fonction scoreAds fournie. L'annonce avec le score le plus élevé remporte l'enchère. Notez que ce processus fonctionne même si aucune annonce de remarketing n'est présente.

  • Si une annonce contextuelle remporte l'enchère et que le rapport sur les impressions est déclenché par l'application, Protected Audience télécharge et exécute une fonction JS nommée reportWin() à partir de l'URL du rapport incluse dans les données relatives à l'annonce contextuelle. Le processus de création de rapports est le même que pour une annonce de remarketing qui remporte la mise aux enchères.

    Exemple de fonction de rapports JavaScript :

    function reportWin(ad_selection_signals, per_buyer_signals, signals_for_buyer,
    contextual_signals) {
    let reporting_address = 'https://reporting.example.com';
    return {'status': 0, 'results': {'reporting_uri':
         reporting_address + '?some_signal=' + per_buyer_signals.some_signal} };
    }
    

Signature d'une annonce contextuelle

  • Les annonces contextuelles qui comprennent le filtrage d'installation d'applis doivent être signées par l'acheteur. La plate-forme utilise cette signature pour connaître la technologie publicitaire qui a fourni les annonces et savoir quels filtres d'installation d'applis de technologie publicitaire appliquer aux annonces. Cela permet d'empêcher une technologie publicitaire malveillante d'utiliser l'identité d'une autre technologie publicitaire pour bénéficier de l'enregistrement du filtrage d'installation d'applis de cette autre technologie.

  • La Privacy Sandbox extrait ces clés à partir du point de terminaison de la technologie publicitaire fourni lors de l'enregistrement. Bonnes pratiques : il est recommandé de mettre à jour les clés régulièrement, au plus tard tous les six mois.

  • Lors du processus d'enregistrement, la Privacy Sandbox demandera aux technologies publicitaires de confirmer la disponibilité du point de terminaison fourni par la technologie publicitaire. Pour en savoir plus sur les actions requises par les technologies publicitaires actuelles et nouvellement enregistrées, consultez les instructions relatives à l'inscription.

  • Un guide du développeur contenant des instructions plus détaillées concernant l'implémentation sera bientôt publié.