Vous pouvez analyser les mises aux enchères Protected Audience (visuellement ou par requête SQL avec Perfetto). Les technologies publicitaires peuvent utiliser le profilage avec Perfetto pour mesurer les performances des mises aux enchères Protected Audience :
- Temps CPU du script d'enchères et d'attribution de scores
- Latence des requêtes HTTP telles que le service clé-valeur
- Impact des performances du cache inactif par rapport au cache actif
- Plus d'audiences personnalisées par rapport à moins d'audiences personnalisées
- Vastes ensembles de signaux par rapport aux petits ensembles de signaux
- Utilisation de différents scripts d'enchères par audience personnalisée ou utilisation du même script pour toutes les enchères
Configuration
Clonez les dépôts Perfetto et Privacy Sandbox.
git clone https://android.googlesource.com/platform/external/perfetto
git clone https://github.com/android/privacy-sandbox-samples
Dans Android Studio, ouvrez l'application exemple Protected Audience à partir du répertoire
privacy-sandbox-samples/Fledge/FledgeKotlin
.Créez et installez l'application exemple sur votre appareil de test ou votre émulateur.
Lancer une mise aux enchères et enregistrer une trace Perfetto
- Configurez et déployez des points de terminaison HTTPS de test. Prenez note de l'URL des points de terminaison hébergés, car ils sont nécessaires au fonctionnement de l'application de démonstration Protected Audience.
Lancez l'application de démonstration en spécifiant une URL de point de terminaison de test. Remplacez
<test-endpoint-url>
par une URL de point de terminaison hébergée que vous avez enregistrée à l'étape précédente.adb shell am start -n com.example.adservices.samples.fledge.sampleapp/.MainActivity \ -e baseUrl "<test-endpoint-url>"
Activez "Shoes CA" pour vous assurer qu'au moins une audience personnalisée est active.
Application de démonstration Protected Audience Enregistrez une trace à l'aide du fichier trace_config.textproto à partir du dépôt GitHub des outils de développement de la Privacy Sandbox :
./perfetto/tools/record_android_trace \ -c path/to/trace_config.textproto
Appuyez sur le bouton "Run Ad Selection" (Lancer une sélection d'annonces) et attendez les résultats de la mise aux enchères. Une fois la mise aux enchères terminée, le résultat affiche un message du type "Would display ad from
http://example.com/bidding/render_shoes
" (Afficherait l'annonce de http://example.com/bidding/render_shoes).Dans votre terminal, arrêtez le programme
record_android_trace
(CTRL+C) pour terminer la trace. L'interface utilisateur de Perfetto s'ouvre dans votre navigateur avec les données de trace chargées.
Explorer visuellement les traces dans Perfetto
Recherchez "RunOnDeviceAdSelection" dans la barre d'adresse en haut de l'interface utilisateur. Cliquez sur Enter (Entrée) pour terminer la recherche et afficher les résultats :
Mise aux enchères Protected Audience à acheteur unique dans Perfetto. Cliquez sur une trace pour l'inspecter. Des détails tels que la latence d'exécution sont disponibles.
Inspection d'un segment de trace.
Segments de trace spécifiques à Protected Audience
La mise aux enchères Protected Audience est un processus complexe, et de nombreux segments différents sont capturés par la trace Perfetto. Ce tableau documente ce que chaque segment de trace représente.
Durée | Segment | Description | Fréquence |
---|---|---|---|
Avant la mise aux enchères | RunOnDeviceAdSelection |
Mise aux enchères complète | Par mise aux enchères |
Enchères (côté acheteur) | FilterContextualAds |
Filtrer les annonces contextuelles en fonction de l'installation d'applications et limiter la fréquence d'exposition | Par mise aux enchères |
GetBuyersCustomAudience |
Charger l'audience personnalisée de l'acheteur à partir de la base de données | Par acheteur | |
FilterCustomAudiences |
Filtrer les audiences personnalisées en fonction des installations d'applications et de la limite de la fréquence d'exposition | Par mise aux enchères | |
GetTrustedBiddingSignals |
Charger les signaux d'enchère de l'acheteur | Par acheteur | |
RunBiddingPerCustomAudience |
Enchères publicitaires pour une seule audience personnalisée | Par audience personnalisée | |
GetBuyerDecisionLogic |
Charger le code JavaScript de l'acheteur à partir du réseau ou de la base de données, s'il est mis en cache | Par audience personnalisée | |
RunBidding |
Exécution JavaScript pour un acheteur | Par acheteur | |
GenerateBids |
Exécution JavaScript pour une audience personnalisée | Par audience personnalisée | |
Attribution de scores (côté vente) | GetTrustedScoringSignals |
Charger les signaux d'attribution de scores du vendeur | Par vendeur |
RunAdScoring |
Exécution JavaScript pour l'attribution de scores | Par mise aux enchères | |
ScoreAd |
Exécution JavaScript pour une annonce | Par annonce | |
GetAdSelectionLogic |
Charger la logique de sélection des annonces du vendeur | Par mise aux enchères | |
RunAdOutcomeSelection |
Filtrage final | Par mise aux enchères | |
Après la mise aux enchères | PersistOnDeviceAdSelection |
Écrire le résultat de la mise aux enchères dans la base de données | Par mise aux enchères |
Interroger la latence d'exécution moyenne
Perfetto peut utiliser des requêtes SQL pour obtenir des mesures précises de ce qui se passe dans une trace particulière.
Cette section explique comment mesurer la latence d'exécution moyenne pour l'exécution JavaScript.
- Dans Perfetto, accédez à "Query (SQL)" (Requête (SQL)) dans le volet de navigation de gauche.
Saisissez la requête suivante :
SELECT AVG(dur) FROM slice WHERE slice.name GLOB 'FetchPayload';
Exécutez la requête et inspectez les résultats.
Les résultats de la requête SQL sont exprimés en nanosecondes.