Partecipa alla delega del pubblico personalizzato con Protected Audience

L'API fetchAndJoinCustomAudience consente agli acquirenti di delegare la partecipazione a un'istanza pubblico sfruttando la presenza sul dispositivo delle piattaforme MMP o SSP dei partner.

Panoramica

Una panoramica generale di come funziona è che il chiamante sul dispositivo (indipendentemente dal fatto che essere un SDK MMP o SSP) crea un elemento fetchAndJoinCustomAudienceRequest che ha il seguente aspetto:

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

Una nota importante su tutti i parametri facoltativi è che, se sono impostati, all'interno della richiesta di recupero, i relativi dati non possono essere sostituiti da ciò che viene restituito dall'Acquirente, offrendo al chiamante sul dispositivo ulteriori controlli su ciò un segmento di pubblico personalizzato.

fetchUri deve indirizzare a un endpoint server gestito dall'Acquirente che restituisce un oggetto JSON Segmento di pubblico personalizzato corrispondente al formato visualizzato qui:

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

Per ulteriori informazioni su come viene risolto questo problema sul lato API, consulta la Proposta di progettazione per la delega di un'autorità di certificazione.

Test

Dopo aver implementato la chiamata di recupero all'interno del codice client e aver ottenuto un configurato sul lato DSP per restituire i dati dei segmenti di pubblico personalizzati, puoi delega di partecipazione a un segmento di pubblico personalizzato. Prima di eseguire l'app, devi avere esegui questo comando per aprire la UI e abilitare Privacy Sandbox:

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

Quando viene visualizzata la UI, attiva l'opzione per abilitare Privacy Sandbox, quindi esegui questi comandi ADB per completare la configurazione del dispositivo per il test:

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

Una volta eseguiti questi comandi, dovresti poter iniziare a creare tramite l'API Fetch.

Per vedere un esempio di questo flusso, sono state aggiunte le chiamate di recupero allo sviluppatore anteprima del ramo del repository di esempi di Privacy Sandbox su GitHub.