Profilare un'asta di segmenti di pubblico protetti

Le aste di Protected Audience possono essere analizzate (visivamente o per query SQL con Perfetto. Gli ad tech possono usare 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 il servizio chiave/valore
  • Impatto sulle prestazioni della cache fredda e della cache attiva
  • Più segmenti di pubblico personalizzati
  • Set di indicatori più grandi e più piccoli
  • Script logici di offerta diversi per 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 nel dispositivo o nell'emulatore di test.

Fai un'asta e fai una traccia Perfetto

  1. Configurare ed eseguire il deployment degli endpoint HTTPS di test. Prendi nota dell'URL degli endpoint ospitati, in quanto sono necessari per il funzionamento dell'app demo Protected Audience.
  2. Avvia l'app demo specificando un URL dell'endpoint di test. 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 "Shoes CA" per assicurarti che sia attivo almeno un segmento di pubblico personalizzato.

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

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

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

Esplora 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 visualizzare i risultati:

    UI Perfetto che osserva l&#39;asta Protected Audience. Tracce come RunOnDeviceAdSelection ed RunBidding sono visibili.
    Asta di Protected Audience per singolo acquirente in Perfetto.
  2. Fai clic su una traccia per ispezionarla. Dettagli come la latenza di esecuzione sono disponibili qui.

    La UI di Perfetto 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 di Protected Audience è una procedura complessa e la traccia Perfetto cattura diversi segmenti. Questa tabella documenta ciò che rappresenta ogni segmento di traccia.

Tempo Segmento Descrizione Frequenza
Pre-asta RunOnDeviceAdSelection End-to-end dell'asta Per asta
Offerte (per gli acquirenti) FilterContextualAds Applicazione di filtri alle installazioni di app e alla quota limite negli annunci contestuali Per asta
GetBuyersCustomAudience Carica il segmento di pubblico personalizzato dell'acquirente dal database Per acquirente
FilterCustomAudiences Applicazione di filtri a installazioni di app e quota limite per i 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 codice 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 vendita) GetTrustedScoringSignals Carica gli indicatori di punteggio del venditore Per venditore
RunAdScoring Esecuzione di JavaScript per il 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 Scrivi il risultato dell'asta nel database Per asta

Query per la latenza media di esecuzione

Perfetto può usare query SQL per ottenere una misurazione precisa di ciò che sta accadendo in una determinata traccia.

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

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

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

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