Criar perfil em um leilão da API Protected Audience

Os leilões da Protected Audience podem ser analisados visualmente ou por consulta SQL com o Perfetto. As adtechs podem usar a criação de perfil com o Perfetto para medir o desempenho de leilões da Protected Audience, incluindo:

  • Tempo de CPU de script de lances e pontuação.
  • Latência de solicitações HTTP, como serviço de chave-valor.
  • Comparação entre o impacto do cache frio e do cache quente na performance
  • Comparação entre muitos e poucos públicos-alvo personalizados.
  • Conjuntos de indicadores maiores e menores.
  • Scripts de lógica de lances diferentes por público-alvo personalizado em comparação com o uso do mesmo script para todos os lances.

Instalação

  1. Clone os repositórios do Perfetto e do Sandbox de privacidade.

    git clone https://android.googlesource.com/platform/external/perfetto
    git clone https://github.com/android/privacy-sandbox-samples
    
  2. No Android Studio, abra o app de exemplo da Protected Audience no diretório privacy-sandbox-samples/Fledge/FledgeKotlin.

  3. Crie e instale o app de exemplo no dispositivo ou emulador de teste.

Fazer um leilão e gerar um rastro do Perfetto

  1. Configure e implante endpoints HTTPS de teste. Anote o URL dos endpoints hospedados, porque eles são necessários para que o app de demonstração da Protected Audience funcione.
  2. Inicie o app de demonstração com um URL de endpoint de teste especificado. Substitua <test-endpoint-url> por um URL do endpoint hospedado que você registrou na etapa anterior.

    adb shell am start -n com.example.adservices.samples.fledge.sampleapp/.MainActivity \
      -e baseUrl "<test-endpoint-url>"
    
  3. Ative a opção "Shoes CA" para garantir que haja pelo menos um público-alvo personalizado ativo.

    Captura de tela do app de demonstração. A opção &quot;Shoes CA&quot; está ativada.
    App de demonstração da Protected Audience.
  4. Registre um rastro usando o arquivo trace_config.textproto (link em inglês) do repositório DevTools do Sandbox de privacidade no GitHub:

    ./perfetto/tools/record_android_trace \
      -c path/to/trace_config.textproto
    
  5. Toque no botão "Run Ad Selection" (Executar a seleção de anúncios) e aguarde os resultados do leilão. Quando o leilão estiver concluído, a saída vai mostrar uma mensagem como "Would display ad from http://example.com/bidding/render_shoes".

  6. No seu terminal, encerre (CTRL+C) o programa record_android_trace para concluir o rastro. A interface do Perfetto é aberta no navegador com os dados de rastro carregados.

Analisar rastros visualmente no Perfetto

  1. Pesquise "RunOnDeviceAdSelection" usando a barra de endereço na parte de cima da interface. Clique em Enter para concluir a pesquisa e mostrar os resultados:

    Interface do Perfetto no leilão da Protected Audience. Faixas como RunOnDeviceAdSelection e RunBidding estão visíveis.
    Leilão da Protected Audience de comprador único no Perfetto.
  2. Clique em um rastro para inspecionar. Detalhes como a latência de execução são mostrados.

    Interface do Perfetto inspecionando um segmento de rastro. Os detalhes de latência estão visíveis.
    Inspeção de um segmento de rastro.

Segmentos de rastreamento específicos para a Protected Audience

O leilão da Protected Audience é um processo complexo, e muitos segmentos diferentes são capturados pelo rastro do Perfetto. Esta tabela documenta o que cada segmento de rastro representa.

Tempo Segmento Descrição Frequência
Pré-leilão RunOnDeviceAdSelection Leilão completo Por leilão
Lances (para compradores) FilterContextualAds Realizar a instalação do app e a filtragem do limite de frequência em anúncios contextuais Por leilão
GetBuyersCustomAudience Carregar o público-alvo personalizado do comprador a partir do banco de dados Por comprador
FilterCustomAudiences Realizar a instalação do app e a filtragem do limite de frequência em anúncios personalizados Por leilão
GetTrustedBiddingSignals Carregar os indicadores de lances do comprador Por comprador
RunBiddingPerCustomAudience Lances de anúncio para um único público-alvo personalizado Por público-alvo personalizado
GetBuyerDecisionLogic Carregar o JavaScript do comprador pela rede ou, se armazenado em cache, pelo banco de dados. Por público-alvo personalizado
RunBidding Execução do JavaScript para um comprador Por comprador
GenerateBids Execução do JavaScript para um público-alvo personalizado Por público-alvo personalizado
Pontuação (para vendedores) GetTrustedScoringSignals Carregar os indicadores de pontuação do vendedor Por vendedor
RunAdScoring Execução de JavaScript para pontuação Por leilão
ScoreAd Execução de JavaScript de um anúncio Por anúncio
GetAdSelectionLogic Carregar a lógica de seleção de anúncios do vendedor Por leilão
RunAdOutcomeSelection Filtragem final Por leilão
Pós-leilão PersistOnDeviceAdSelection Gravar o resultado do leilão no banco de dados Por leilão

Consultar latência média de execução

O Perfetto pode usar consultas SQL para ter uma medição precisa do que está acontecendo em um rastro específico.

Nesta seção, documentamos como medir a latência média de execução do JavaScript.

  1. No Perfetto, acesse "Query (SQL)" no painel de navegação à esquerda.
  2. Digite esta consulta:

    SELECT AVG(dur)
    FROM slice
    WHERE slice.name GLOB 'FetchPayload';
    
  3. Execute a consulta e confira os resultados.

    Resultados da consulta SQL. A latência média é de 17693688 nanossegundos.
    Os resultados da consulta SQL são mostrados em nanossegundos.