Cómo generar perfiles de una subasta de Protected Audience

Las subastas de Protected Audience se pueden analizar, ya sea de manera visual o mediante una consulta en SQL con Perfetto. Las tecnologías publicitarias pueden usar la generación de perfiles con Perfetto para medir el rendimiento de las subastas de Protected Audience, incluido lo siguiente:

  • Tiempo de CPU de la secuencia de comandos de ofertas y puntuación
  • Latencia de las solicitudes HTTP, como el servicio del par clave-valor
  • Impacto en el rendimiento de la caché vacía en comparación con la caché activa
  • Comparación entre más y menos públicos personalizados
  • Comparación entre conjuntos de indicadores más grandes y más pequeños
  • Diferentes secuencias de comandos de lógica de ofertas por público personalizado en comparación con el uso de la misma secuencia de comandos para todas las ofertas

Configuración

  1. Clona los repositorios de Perfetto y Privacy Sandbox.

    git clone https://android.googlesource.com/platform/external/perfetto
    git clone https://github.com/android/privacy-sandbox-samples
    
  2. En Android Studio, abre la app de ejemplo de Protected Audience desde el directorio privacy-sandbox-samples/Fledge/FledgeKotlin.

  3. Compila y, luego, instala la app de ejemplo en tu dispositivo de prueba o emulador.

Cómo ejecutar una subasta y realizar un seguimiento de Perfetto

  1. Configura y, luego, implementa extremos HTTPS de prueba. Anota la URL de los extremos alojados, ya que son necesarios para que funcione la app de demo de Protected Audience.
  2. Inicia la app de demo con una URL de extremo de prueba especificada. Reemplaza <test-endpoint-url> por una URL de extremo alojada que registraste en el paso anterior.

    adb shell am start -n com.example.adservices.samples.fledge.sampleapp/.MainActivity \
      -e baseUrl "<test-endpoint-url>"
    
  3. Activa "Shoes CA" para garantizar que haya, al menos, 1 público personalizado activo.

    Captura de pantalla de la app de demo de Protected Audience. Se activó &quot;Shoes CA&quot;.
    App de demostración de Protected Audience.
  4. Registra un seguimiento con el archivo trace_config.textproto del repositorio de GitHub de Herramientas para desarrolladores de Privacy Sandbox:

    ./perfetto/tools/record_android_trace \
      -c path/to/trace_config.textproto
    
  5. Presiona el botón "Run Ad Selection" y espera los resultados de la subasta. Cuando finaliza la subasta, el resultado muestra un mensaje como "Would display ad from http://example.com/bidding/render_shoes".

  6. En tu terminal, finaliza (CTRL + C) el programa record_android_trace para terminar el seguimiento. Se abrirá la IU de Perfetto en tu navegador con los datos del seguimiento cargados.

Realiza una exploración visual de los seguimientos en Perfetto

  1. Busca "RunOnDeviceAdSelection" con la barra de direcciones de la parte superior de la IU. Haz clic en Enter para completar la búsqueda y mostrar los resultados:

    IU de Perfetto donde se visualiza la subasta de Protected Audience. Son visibles seguimientos tales como RunOnDeviceAdSelection y RunBidding.
    Subasta de Protected Audience para un solo comprador en Perfetto.
  2. Haz clic en un seguimiento para inspeccionarlo. Los detalles como la latencia de ejecución están disponibles aquí.

    IU de Perfetto donde se inspecciona un segmento de seguimiento. Se pueden ver los detalles de latencia.
    Cómo inspeccionar un segmento de seguimiento.

Segmentos de seguimiento específicos de Protected Audience

La subasta de Protected Audience es un proceso complejo y el seguimiento de Perfetto captura muchos segmentos diferentes. En esta tabla, se documenta lo que representa cada segmento de seguimiento.

Tiempo Segmento Descripción Frecuencia
Antes de la subasta RunOnDeviceAdSelection Extremo a extremo de la subasta Por subasta
Ofertas (orientadas a la compra) FilterContextualAds Filtra la limitación de frecuencia y la instalación de apps en anuncios contextuales Por subasta
GetBuyersCustomAudience Carga público personalizado del comprador desde la base de datos Por comprador
FilterCustomAudiences Filtra la limitación de frecuencia y la instalación de apps en públicos personalizados Por subasta
GetTrustedBiddingSignals Carga indicadores de ofertas del comprador Por comprador
RunBiddingPerCustomAudience Ofertas de anuncios para un único público personalizado Por público personalizado
GetBuyerDecisionLogic Carga el JavaScript del comprador desde la red o la base de datos, si está almacenado en caché Por público personalizado
RunBidding Ejecución de JavaScript para un comprador Por comprador
GenerateBids Ejecución de JavaScript para un público personalizado Por público personalizado
Puntuación (orientada a la venta) GetTrustedScoringSignals Carga los indicadores de puntuación del vendedor Por vendedor
RunAdScoring Ejecución de JavaScript para la puntuación Por subasta
ScoreAd Ejecución de JavaScript para un anuncio Por anuncio
GetAdSelectionLogic Carga la lógica de selección de anuncios del vendedor Por subasta
RunAdOutcomeSelection Filtrado final Por subasta
Después de la subasta PersistOnDeviceAdSelection Escribe el resultado de la subasta en la base de datos Por subasta

Cómo consultar la latencia de ejecución promedio

Perfetto puede usar consultas en SQL para obtener mediciones precisas de lo que sucede dentro de un seguimiento en particular.

En esta sección, se documenta cómo medir la latencia de ejecución promedio para la ejecución de JavaScript.

  1. En Perfetto, navega a "Query (SQL)" en el panel de navegación izquierdo.
  2. Ingresa la siguiente consulta:

    SELECT AVG(dur)
    FROM slice
    WHERE slice.name GLOB 'FetchPayload';
    
  3. Ejecuta la consulta y, luego, inspecciona los resultados.

    Resultados de la consulta en SQL. La latencia promedio es de 17,693,688 nanosegundos.
    Resultados de la consulta en SQL en nanosegundos.