Rejoignez la délégation d'audience personnalisée avec Protected Audience

L'API fetchAndJoinCustomAudience permet aux acheteurs de déléguer la participation à une audience personnalisée en exploitant la présence sur l'appareil de leurs MMP ou SSP partenaires.

Présentation

Présentation générale sur le fonctionnement : l'appelant sur l'appareil (qu'il s'agisse d'un MMP ou d'un SSP SDK) crée un fetchAndJoinCustomAudienceRequest qui se présente comme suit :

Kotlin

/**
 * @param fetchUri The URL to retrieve the CA from.
 * (optional)@param name The name of the CA to join.
 * (optional)@param activationTime The time when the CA will activate.
 * (optional)@param expirationTime The time when the CA will expire,
    must be a time in the future otherwise this will fail
 * (optional)@param userBiddingSignals The user bidding signals used at auction.
*/

val request = FetchAndJoinCustomAudienceRequest.Builder(fetchUri)
    .setName(name)
    .setActivationTime(activationTime)
    .setExpirationTime(expirationTime)
    .setUserBiddingSignals(userBiddingSignals)
    .build()

Java

/**
 * @param fetchUri The URL to retrieve the CA from.
 * (optional)@param name The name of the CA to join.
 * (optional)@param activationTime The time when the CA will activate.
 * (optional)@param expirationTime The time when the CA will expire,
    must be a time in the future otherwise this will fail
 * (optional)@param userBiddingSignals The user bidding signals used at auction.
*/

FetchAndJoinCustomAudienceRequest request =
 new FetchAndJoinCustomAudienceRequest.Builder(fetchUri)
  .setName(name) //Optional
  .setActivationTime(activationTime) //Optional
  .setExpirationTime(expirationTime) //Optional
  .setUserBiddingSignals(userBiddingSignals) //Optional
  .build();

Remarque importante concernant tous les paramètres facultatifs : s'ils sont définis dans la requête de récupération, leurs données ne peuvent pas être remplacées par ce qui est renvoyé par l'acheteur. L'appelant sur l'appareil dispose ainsi de contrôles supplémentaires sur ce que conserve l'audience personnalisée.

fetchUri doit diriger vers un point de terminaison de serveur géré par l'acheteur, qui renverra un objet JSON d'audience personnalisée correspondant au format présenté ici :

//Return a 200 response with data matching the format of the following in the body
{
  "daily_update_uri": "https://js.example.com/bidding/daily",
  "bidding_logic_uri": "https://js.example.com/bidding",
  "user_bidding_signals": {
    "valid": true,
    "arbitrary": "yes"
  },
  "trusted_bidding_data": {
    "trusted_bidding_uri": "https://js.example.com/bidding/trusted",
    "trusted_bidding_keys": [
      "key1",
      "key2"
    ]
  },
  "ads": [
    {
      "render_uri": "https://js.example.com/render/fetch_and_join_ad1",
      "metadata": {
        "valid": 1
      }
    },
    {
      "render_uri": "https://js.example.com/render/fetch_and_join_ad2",
      "metadata": {
        "valid": 2
      }
    }
  ]
}

Pour en savoir plus sur la résolution de ce problème côté API, consultez la proposition de conception pour participer à la délégation d'autorité de certification.

Tests

Une fois que vous avez implémenté l'appel Fetch dans le code client et que vous avez configuré un point de terminaison côté DSP pour renvoyer les données d'audience personnalisée, vous pouvez tester la délégation de participation à l'audience personnalisée. Avant d'exécuter votre application, vous devrez exécuter la commande suivante pour ouvrir l'interface utilisateur et activer la Privacy Sandbox :

adb shell am start -n com.google.android.adservices.api/com.android.adservices.ui.settings.activities.AdServicesSettingsMainActivity

Lorsque l'interface utilisateur s'affiche, n'oubliez pas d'activer la Privacy Sandbox, puis d'exécuter les commandes ADB suivantes pour terminer la configuration de l'appareil pour les tests :

adb shell device_config set_sync_disabled_for_tests persistent
adb shell device_config put adservices ppapi_app_signature_allow_list \"\*\"
adb shell device_config put adservices ppapi_app_allow_list \"\*\"
adb shell device_config put adservices adservice_system_service_enabled true
adb shell device_config put adservices adservice_enabled true
adb shell device_config put adservices adservice_enable_status true
adb shell device_config put adservices global_kill_switch false
adb shell device_config put adservices fledge_js_isolate_enforce_max_heap_size false
adb shell device_config put adservices fledge_custom_audience_service_kill_switch false
adb shell device_config put adservices fledge_select_ads_kill_switch false
adb shell device_config put adservices adid_kill_switch false
adb shell setprop debug.adservices.disable_fledge_enrollment_check true
adb shell device_config put adservices fledge_fetch_custom_audience_enabled true

Une fois que vous avez exécuté ces commandes, vous devriez pouvoir commencer à effectuer des appels à l'aide de l'API Fetch.

Pour voir un exemple de ce flux, des appels de récupération ont été ajoutés à la branche Preview développeur du dépôt d'exemples Privacy Sandbox sur GitHub.