Protected Audience-Auktionen können entweder visuell oder per SQL-Abfrage mit Perfetto analysiert werden. AdTechs können mithilfe der Profilerstellung mit Perfetto die Leistung von Protected Audience-Auktionen messen, darunter:
- CPU-Zeit des Gebots- und Bewertungsskripts
- Latenz von HTTP-Anfragen wie dem Schlüssel/Wert-Dienst
- Leistungsauswirkung von Cold-Cache im Vergleich zu Hot Cache
- Mehr oder weniger benutzerdefinierte Zielgruppen
- Größere oder kleinere Gruppen von Signalen
- Unterschiedliche Skripts für die Gebotslogik pro benutzerdefinierter Zielgruppe, im Vergleich zur Verwendung desselben Skripts für alle Gebote
Einrichtung
Klonen Sie die Perfetto- und die 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
.Erstellen und installieren Sie die Beispiel-App auf Ihrem Testgerät oder Emulator.
Auktion durchführen und Perfetto-Trace erhalten
- HTTPS-Testendpunkte einrichten und bereitstellen Notieren Sie sich die URL der gehosteten Endpunkte, da sie erforderlich sind, damit die Protected Audience-Demo-App funktioniert.
Starten Sie die Demo-App mit der angegebenen Test-Endpunkt-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>"
Stellen Sie die Ein/Aus-Schaltfläche für „Schuhe CA“ ein, damit mindestens eine aktive benutzerdefinierte Zielgruppe vorhanden ist.
Zeichne einen Trace mit der Datei trace_config.textproto aus dem GitHub-Repository der Privacy Sandbox-Entwicklertools auf:
./perfetto/tools/record_android_trace \ -c path/to/trace_config.textproto
Tippen Sie auf die Schaltfläche „Anzeigenauswahl ausführen“ und warten Sie die Auktionsergebnisse. Nach Abschluss der Auktion wird in der Ausgabe eine Meldung wie „Würde Anzeige von
http://example.com/bidding/render_shoes
angezeigt“ angezeigt.Beenden Sie in Ihrem Terminal mit Strg + C das Programm
record_android_trace
, um den Trace zu beenden. Die Perfetto-UI wird mit den geladenen Trace-Daten in Ihrem Browser geöffnet.
Traces in Perfetto visuell untersuchen
Suchen Sie oben auf der Benutzeroberfläche über die Adressleiste nach „RunOnDeviceAdSelection“. Drücken Sie die Eingabetaste, um die Suche abzuschließen und die Ergebnisse anzusehen:
Klicken Sie auf einen Trace, um ihn zu prüfen. Details wie die Ausführungslatenz sind hier verfügbar.
Geschützte zielgruppenspezifische Trace-Segmente
Die Protected Audience-Auktion ist ein komplexer Prozess und der Perfetto-Trace erfasst viele verschiedene Segmente. In dieser Tabelle wird dokumentiert, wofür die einzelnen Trace-Segmente stehen.
Uhrzeit | Segment | Beschreibung | Frequenz |
---|---|---|---|
Vorauktion | RunOnDeviceAdSelection |
Ende-zu-Ende-Auktion | Pro Auktion |
Gebote (Käuferseite) | FilterContextualAds |
Bei kontextbezogenen Anzeigen nach App-Installationen und Frequency Capping filtern | Pro Auktion |
GetBuyersCustomAudience |
Benutzerdefinierte Zielgruppe des Käufers aus Datenbank laden | Pro Käufer | |
FilterCustomAudiences |
Bei benutzerdefinierten Zielgruppen nach App-Installationen und Frequency Capping filtern | Pro Auktion | |
GetTrustedBiddingSignals |
Gebotssignale des Käufers laden | Pro Käufer | |
RunBiddingPerCustomAudience |
Anzeigengebote für eine einzelne benutzerdefinierte Zielgruppe | Pro benutzerdefinierter Zielgruppe | |
GetBuyerDecisionLogic |
JavaScript des Käufers aus dem Netzwerk oder der Datenbank laden (falls im Cache gespeichert) | 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äufer) | 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 |
Anzeigenauswahllogik des Verkäufers laden | Pro Auktion | |
RunAdOutcomeSelection |
Endgültige Filterung | Pro Auktion | |
Nach Auktion | PersistOnDeviceAdSelection |
Auktionsergebnis in Datenbank schreiben | Pro Auktion |
Abfrage der durchschnittlichen Ausführungslatenz
Perfetto kann mit SQL-Abfragen präzise messen, was in einem bestimmten Trace passiert.
In diesem Abschnitt wird beschrieben, wie die durchschnittliche Ausführungslatenz bei der JavaScript-Ausführung gemessen wird.
- Gehen Sie in Perfetto im linken Navigationsbereich zu „Query (SQL)“.
Geben Sie die folgende Abfrage ein:
SELECT AVG(dur) FROM slice WHERE slice.name GLOB 'FetchPayload';
Führen Sie die Abfrage aus und prüfen Sie die Ergebnisse.