An der Delegation von benutzerdefinierten Zielgruppen mit Protected Audience teilnehmen

Mit der fetchAndJoinCustomAudience API können Käufer den Beitritt zu einer benutzerdefinierten Zielgruppe delegieren, indem sie die Präsenz ihrer Partner-MMPs oder SSPs auf dem Gerät nutzen.

Überblick

Ein allgemeiner Überblick über die Funktionsweise ist, dass der Aufrufer auf dem Gerät (ob über eine MMP oder ein SSP SDK) eine fetchAndJoinCustomAudienceRequest erstellt, die in etwa so aussieht:

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();

Wichtiger Hinweis zu allen optionalen Parametern: Wenn sie innerhalb der Abrufanfrage festgelegt werden, können ihre Daten nicht durch die vom Käufer zurückgegebenen Daten überschrieben werden. Dadurch erhält der Aufrufer auf dem Gerät zusätzliche Kontrolle darüber, welche benutzerdefinierte Zielgruppe beibehalten wird.

fetchUri sollte auf einen Serverendpunkt verweisen, der vom Käufer verwaltet wird und ein JSON-Objekt für eine benutzerdefinierte Zielgruppe zurückgibt, dessen Format dem hier gezeigten Format entspricht:

//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
      }
    }
  ]
}

Weitere Informationen dazu, wie dies auf der API-Seite behoben wird, finden Sie im Designvorschlag für die Delegierung der Zertifizierungsstelle.

Testen

Sobald Sie den Abrufaufruf im Clientcode implementiert und auf der DSP-Seite einen Endpunkt eingerichtet haben, um die Daten zu benutzerdefinierten Zielgruppen zurückzugeben, können Sie die Delegierung beim Beitritt zu einer benutzerdefinierten Zielgruppe testen. Bevor Sie Ihre App ausführen, müssen Sie den folgenden Befehl ausführen, um die Benutzeroberfläche zu öffnen und die Privacy Sandbox zu aktivieren:

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

Wenn die Benutzeroberfläche angezeigt wird, aktivieren Sie die Privacy Sandbox mit der Ein-/Aus-Schaltfläche und führen Sie dann die folgenden ADB-Befehle aus, um die Einrichtung des Geräts zum Testen abzuschließen:

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

Nachdem Sie diese Befehle ausgeführt haben, sollten Sie Aufrufe mit der Fetch API starten können.

Um ein Beispiel für diesen Ablauf zu sehen, wurden Abrufaufrufe im Entwicklervorschau-Zweig des Repositorys „Privacy Sandbox Samples“ auf GitHub hinzugefügt.