Auktionen mit geschützten Zielgruppen können mit Perfetto entweder visuell oder per SQL-Abfrage analysiert werden. Anbieter von Anzeigentechnologien können mithilfe von Perfetto die Leistung von Protected Audience-Auktionen messen, darunter:
- CPU-Zeit für Gebots- und Bewertungsscript
- Latenz von HTTP-Anfragen wie Schlüssel/Wert-Dienst
- Leistungsauswirkungen von Cold-Cache und Hot-Cache
- Mehr oder weniger benutzerdefinierte Zielgruppen
- Mehrere Signale im Vergleich zu weniger Signalen
- Unterschiedliche Scripts für die Gebotslogik pro benutzerdefinierter Zielgruppe im Vergleich zur Verwendung desselben Scripts für alle Gebote
Einrichtung
Klonen Sie die Perfetto- und Privacy Sandbox-Repositories.
git clone https://android.googlesource.com/platform/external/perfetto
git clone https://github.com/android/privacy-sandbox-samples
Öffnen Sie in Android Studio die Beispielanwendung „Protected Audience“ aus dem Verzeichnis
privacy-sandbox-samples/Fledge/FledgeKotlin
.Erstellen Sie die Beispiel-App und installieren Sie sie auf Ihrem Testgerät oder Emulator.
Auktion ausführen und Perfetto-Trace erstellen
- Richten Sie Test-HTTPS-Endpunkte ein und stellen Sie sie bereit. Notieren Sie sich die URL der gehosteten Endpunkte, da sie für die Funktion der Demo-App für geschützte Zielgruppen erforderlich sind.
Starten Sie die Demo-App mit einer angegebenen Testendpunkt-URL. Ersetzen Sie
<test-endpoint-url>
durch die URL eines gehosteten Endpunkts, die Sie im vorherigen Schritt notiert haben.adb shell am start -n com.example.adservices.samples.fledge.sampleapp/.MainActivity \ -e baseUrl "<test-endpoint-url>"
Aktivieren Sie die Option „Benutzerdefinierte Zielgruppe für Schuhe“, damit mindestens eine benutzerdefinierte Zielgruppe aktiv ist.
Demo-App für Protected Audience Erfassen Sie eine Trace-Datei mit der Datei „trace_config.textproto“ aus dem GitHub-Repository der Privacy Sandbox DevTools:
./perfetto/tools/record_android_trace \ -c path/to/trace_config.textproto
Tippen Sie auf die Schaltfläche „Anzeigenauswahl ausführen“ und warten Sie auf die Auktionsergebnisse. Nach Abschluss der Auktion wird in der Ausgabe eine Meldung wie „Würde Anzeige von
http://example.com/bidding/render_shoes
ausliefern“ angezeigt.Beenden Sie das
record_android_trace
-Programm im Terminal (STRG + C), um die Aufzeichnung zu beenden. Die Perfetto-Benutzeroberfläche wird in Ihrem Browser geöffnet und die Trace-Daten werden geladen.
Traces in Perfetto visuell untersuchen
Suchen Sie in der Adressleiste oben in der Benutzeroberfläche nach „RunOnDeviceAdSelection“. Klicken Sie auf die Eingabetaste, um die Suche abzuschließen und die Ergebnisse anzuzeigen:
Protected Audience-Auktion mit einem einzelnen Käufer in Perfetto. Klicken Sie auf einen Trace, um ihn zu prüfen. Details wie die Ausführungslatenz finden Sie hier.
Trace-Segment prüfen
Protected Audience-spezifische Trace-Segmente
Die Protected Audience-Auktion ist ein komplexer Prozess und der Perfetto-Trace enthält viele verschiedene Segmente. In dieser Tabelle wird beschrieben, was die einzelnen Trace-Segmente darstellen.
Zeit | Segment | Beschreibung | Häufigkeit |
---|---|---|---|
Vor der Auktion | RunOnDeviceAdSelection |
End-to-End-Auktion | Pro Auktion |
Gebote (Käuferseite) | FilterContextualAds |
App-Installations- und Frequency Capping-Filterung auf kontextbezogene Anzeigen anwenden | Pro Auktion |
GetBuyersCustomAudience |
Benutzerdefinierte Zielgruppe des Käufers aus der Datenbank laden | Pro Käufer | |
FilterCustomAudiences |
Filter für App-Installationen und Frequency Capping auf benutzerdefinierte Zielgruppen anwenden | Pro Auktion | |
GetTrustedBiddingSignals |
Gebotssignale des Käufers laden | Pro Käufer | |
RunBiddingPerCustomAudience |
Gebotsstrategie für eine einzelne benutzerdefinierte Zielgruppe | Pro benutzerdefinierter Zielgruppe | |
GetBuyerDecisionLogic |
JavaScript des Käufers aus dem Netzwerk oder der Datenbank laden, falls im Cache | Pro benutzerdefinierter Zielgruppe | |
RunBidding |
JavaScript-Ausführung für einen Käufer | Pro Käufer | |
GenerateBids |
JavaScript-Ausführung für eine benutzerdefinierte Zielgruppe | Pro benutzerdefinierter Zielgruppe | |
Bewertung (Verkäuferseite) | GetTrustedScoringSignals |
Bewertungssignale des Verkäufers laden | Pro Verkäufer |
RunAdScoring |
JavaScript-Ausführung für die Bewertung | Pro Auktion | |
ScoreAd |
JavaScript-Ausführung für eine Anzeige | Pro Anzeige | |
GetAdSelectionLogic |
Logik zur Anzeigenauswahl des Verkäufers laden | Pro Auktion | |
RunAdOutcomeSelection |
Endgültige Filterung | Pro Auktion | |
Nach der Auktion | PersistOnDeviceAdSelection |
Auktionsergebnis in die Datenbank schreiben | Pro Auktion |
Durchschnittliche Ausführungslatenz abfragen
Perfetto kann mit SQL-Abfragen genau messen, was in einem bestimmten Trace passiert.
In diesem Abschnitt wird beschrieben, wie Sie die durchschnittliche Ausführungslatenz für die JavaScript-Ausführung messen.
- Klicken Sie in Perfetto im linken Navigationsbereich auf „Abfrage (SQL)“.
Geben Sie die folgende Abfrage ein:
SELECT AVG(dur) FROM slice WHERE slice.name GLOB 'FetchPayload';
Führen Sie die Abfrage aus und sehen Sie sich die Ergebnisse an.
SQL-Abfrageergebnisse in Nanosekunden.