Profilare un'asta Protected Audience

Le aste Protected Audience possono essere analizzate (visivamente o tramite query SQL con Perfetto). Le ad tech possono utilizzare la profilazione con Perfetto per misurare il rendimento delle aste Protected Audience, tra cui:

  • Tempo di CPU dello script di offerte e punteggio
  • Latenza delle richieste HTTP, ad esempio del servizio chiave/valore
  • Impatto sulle prestazioni della cache fredda rispetto alla cache calda
  • Più o meno segmenti di pubblico personalizzati
  • Set di indicatori più grandi e più piccoli
  • Script di logica di offerta diversi per ogni segmento di pubblico personalizzato rispetto all'utilizzo dello stesso script per tutte le offerte

Configurazione

  1. Clona i repository Perfetto e Privacy Sandbox.

    git clone https://android.googlesource.com/platform/external/perfetto
    git clone https://github.com/android/privacy-sandbox-samples
  2. In Android Studio, apri l'app di esempio Protected Audience dalla directory privacy-sandbox-samples/Fledge/FledgeKotlin.

  3. Crea e installa l'app di esempio sul tuo dispositivo di test o emulatore.

Esegui un'asta e acquisisci una traccia Perfetto

  1. Configura ed esegui il deployment degli endpoint HTTPS di test. Prendi nota dell'URL degli endpoint ospitati perché sono necessari per il funzionamento dell'app demo Protected Audience.
  2. Avvia l'app demo con un URL endpoint di test specificato. Sostituisci <test-endpoint-url> con un URL dell'endpoint ospitato che hai registrato nel passaggio precedente.

    adb shell am start -n com.example.adservices.samples.fledge.sampleapp/.MainActivity \
      -e baseUrl "<test-endpoint-url>"
  3. Attiva/disattiva "Scarpe CA" per verificare che sia attivo almeno un segmento di pubblico personalizzato.

    L&#39;opzione Shoes CA è attivata nell&#39;app demo.
    App demo Protected Audience
  4. Registra una traccia utilizzando il file trace_config.textproto dal repository GitHub di Privacy Sandbox DevTools:

    ./perfetto/tools/record_android_trace \
      -c path/to/trace_config.textproto
  5. Tocca il pulsante "Esegui selezione annuncio" e attendi i risultati dell'asta. Al termine dell'asta, l'output mostra un messaggio come "Visualizzerebbe l'annuncio di http://example.com/bidding/render_shoes".

  6. Nel terminale, termina (Ctrl+C) il programma record_android_trace per completare la traccia. Perfetto UI si apre nel browser con i dati di traccia caricati.

Esplorare visivamente le tracce in Perfetto

  1. Cerca "RunOnDeviceAdSelection" utilizzando la barra degli indirizzi nella parte superiore dell'interfaccia utente. Fai clic su Invio per completare la ricerca e mostrare i risultati:

    Interfaccia utente di Perfetto che mostra l&#39;asta Protected Audience. Sono visibili tracce come RunOnDeviceAdSelection e RunBidding.
    Asta Protected Audience con un solo acquirente in Perfetto.
  2. Fai clic su una traccia per esaminarla. Dettagli come la latenza di esecuzione sono disponibili qui.

    La UI di Perfetto che ispeziona un segmento di traccia. I dettagli della latenza sono visibili.
    Ispezione di un segmento di traccia.

Segmenti di traccia specifici di Protected Audience

L'asta Protected Audience è un processo complesso e ci sono molti segmenti diversi acquisiti dalla traccia Perfetto. Questa tabella documenta cosa rappresenta ogni segmento della traccia.

Ora Segmento Descrizione Frequenza
Pre-asta RunOnDeviceAdSelection Asta end-to-end Per asta
Offerte (lato acquisto) FilterContextualAds Eseguire il filtro per installazione di app e quota limite sugli annunci contestuali Per asta
GetBuyersCustomAudience Caricare il segmento di pubblico personalizzato dell'acquirente dal database Per acquirente
FilterCustomAudiences Eseguire il filtro per installazioni di app e quota limite sui segmenti di pubblico personalizzati Per asta
GetTrustedBiddingSignals Carica gli indicatori di offerta dell'acquirente Per acquirente
RunBiddingPerCustomAudience Offerte per gli annunci per un singolo segmento di pubblico personalizzato Per segmento di pubblico personalizzato
GetBuyerDecisionLogic Carica il JavaScript dell'acquirente dalla rete o dal database, se memorizzato nella cache Per segmento di pubblico personalizzato
RunBidding Esecuzione di JavaScript per un acquirente Per acquirente
GenerateBids Esecuzione di JavaScript per un segmento di pubblico personalizzato Per segmento di pubblico personalizzato
Punteggio (lato vendite) GetTrustedScoringSignals Caricare gli indicatori di punteggio del venditore Per venditore
RunAdScoring Esecuzione di JavaScript per l'assegnazione del punteggio Per asta
ScoreAd Esecuzione di JavaScript per un annuncio Per annuncio
GetAdSelectionLogic Carica la logica di selezione degli annunci del venditore Per asta
RunAdOutcomeSelection Filtro finale Per asta
Post-asta PersistOnDeviceAdSelection Scrivere il risultato dell'asta nel database Per asta

Query per la latenza di esecuzione media

Perfetto può utilizzare query SQL per ottenere una misurazione precisa di ciò che accade all'interno di una traccia specifica.

Questa sezione descrive come misurare la latenza di esecuzione media per l'esecuzione di JavaScript.

  1. In Perfetto, vai a "Query (SQL)" nel riquadro di navigazione a sinistra.
  2. Inserisci la seguente query:

    SELECT AVG(dur)
    FROM slice
    WHERE slice.name GLOB 'FetchPayload';
    
  3. Esegui la query ed esamina i risultati.

    Risultati della query SQL. La latenza media è di 17693688 nanosecondi.
    Risultati della query SQL in nanosecondi.