Protected Audience-Auktionen können mit Perfetto visuell oder per SQL-Abfrage analysiert werden. AdTech-Unternehmen können Profiling mit Perfetto verwenden, um die Leistung von Protected Audience-Auktionen zu messen, einschließlich:
- CPU-Zeit für Gebots- und Scoring-Scripts
- Latenz von HTTP-Anfragen, z. B. für den Schlüssel/Wert-Dienst
- Leistungsauswirkungen von Cold Cache im Vergleich zu Hot Cache
- Mehr oder weniger benutzerdefinierte Zielgruppen
- Größere und kleinere Signalmengen
- Unterschiedliche Scripts für die Gebotslogik für jede benutzerdefinierte 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 Protected Audience-Beispiel-App aus dem Verzeichnis
privacy-sandbox-samples/Fledge/FledgeKotlin
.Erstelle die Beispiel-App und installiere sie auf deinem Testgerät oder Emulator.
Auktion ausführen und Perfetto-Trace erstellen
- HTTPS-Testendpunkte einrichten und bereitstellen Notieren Sie sich die URL der gehosteten Endpunkte, da sie für die Funktion der Protected Audience-Demo-App erforderlich sind.
Starten Sie die Demo-App mit einer angegebenen Testendpunkt-URL. Ersetzen Sie
<test-endpoint-url>
durch eine gehostete Endpunkt-URL, 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 „Shoes CA“, um zu prüfen, ob mindestens eine benutzerdefinierte Zielgruppe aktiv ist.
Protected Audience Demo App Erstellen Sie einen Trace mit der Datei trace_config.textproto aus dem GitHub-Repository für 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 „Would display ad from
http://example.com/bidding/render_shoes
“ angezeigt.Beenden Sie das
record_android_trace
-Programm im Terminal mit STRG+C, um den Trace abzuschließen. Die Perfetto-Benutzeroberfläche wird in Ihrem Browser mit den geladenen Tracedaten geöffnet.
Traces in Perfetto visuell untersuchen
Suchen Sie über die Adressleiste oben in der Benutzeroberfläche nach „RunOnDeviceAdSelection“. Klicken Sie auf Eingabe, 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 untersuchen. Details wie die Ausführungslatenz sind hier verfügbar.
Trace-Segment untersuchen
Protected Audience-spezifische Trace-Segmente
Die Protected Audience-Auktion ist ein komplexer Prozess und der Perfetto-Trace erfasst viele verschiedene Segmente. In dieser Tabelle wird beschrieben, was die einzelnen Segmenten eines Traces 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 für kontextbezogene Anzeigen durchführen | Pro Auktion |
GetBuyersCustomAudience |
Benutzerdefinierte Zielgruppe des Käufers aus Datenbank laden | Pro Käufer | |
FilterCustomAudiences |
App-Installations- und Frequency Capping-Filter für benutzerdefinierte Zielgruppen anwenden | Pro Auktion | |
GetTrustedBiddingSignals |
Gebotssignale des Käufers laden | Pro Käufer | |
RunBiddingPerCustomAudience |
Gebote für Anzeigen für eine einzelne benutzerdefinierte Zielgruppe | Pro benutzerdefinierte Zielgruppe | |
GetBuyerDecisionLogic |
JavaScript des Käufers aus dem Netzwerk oder der Datenbank laden, falls es im Cache gespeichert ist | Pro benutzerdefinierte Zielgruppe | |
RunBidding |
JavaScript-Ausführung für einen Käufer | Pro Käufer | |
GenerateBids |
JavaScript-Ausführung für eine benutzerdefinierte Zielgruppe | Pro benutzerdefinierte 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 Datenbank schreiben | Pro Auktion |
Durchschnittliche Ausführungslatenz abfragen
Perfetto kann SQL-Abfragen verwenden, um genaue Messungen der Vorgänge in einem bestimmten Trace zu erhalten.
In diesem Abschnitt wird beschrieben, wie Sie die durchschnittliche Ausführungslatenz für die JavaScript-Ausführung messen.
- Rufen Sie in Perfetto im linken Navigationsbereich „Query (SQL)“ auf.
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.