Protected Audience-Auktionen können analysiert werden (entweder visuell oder über SQL-Abfrage mit Perfetto. Profilerstellung für Anzeigentechnologie-Anbieter mit Perfetto die Leistung von Protected Audience-Auktionen messen, einschließlich:
- CPU-Zeit für Gebots- und Bewertungsskript
- Latenz von HTTP-Anfragen wie Schlüssel/Wert-Paar-Dienst
- Auswirkung von Cold-Cache im Vergleich zu Hot-Cache auf die Leistung
- Mehr oder weniger benutzerdefinierte Zielgruppen
- Größere oder kleinere Signalgruppen
- Unterschiedliche Scripts für die Gebotslogik pro benutzerdefinierter Zielgruppe im Vergleich zur Verwendung der dasselbe Skript 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 Beispiel-App „Protected Audience“ über die
privacy-sandbox-samples/Fledge/FledgeKotlin
-Verzeichnis.Erstellen Sie die Beispiel-App und installieren Sie sie auf Ihrem Testgerät oder Emulator.
Auktion durchführen und Perfetto-Nachverfolgung erstellen
- HTTPS-Testendpunkte einrichten und bereitstellen Notieren Sie sich die URL der gehosteten Endpunkten, da sie für die Protected Audience-Demo-App erforderlich sind, .
Starte die Demo-App mit einer angegebenen Testendpunkt-URL. Ersetzen
<test-endpoint-url>
durch eine gehostete Endpunkt-URL, die Sie im vorherigen Schritt.adb shell am start -n com.example.adservices.samples.fledge.sampleapp/.MainActivity \ -e baseUrl "<test-endpoint-url>"
Ein/Aus-Schaltfläche „Schuhe CA“ damit mindestens eine benutzerdefinierte Zielgruppe aktiv ist.
<ph type="x-smartling-placeholder">Zeichnen Sie einen Trace mit der Datei trace_config.textproto aus dem GitHub-Repository der Privacy Sandbox DevTools auf:
./perfetto/tools/record_android_trace \ -c path/to/trace_config.textproto
Tippen Sie auf „Anzeigenauswahl ausführen“. und warten Sie auf die Auktionsergebnisse. Wenn der Parameter Auktion abgeschlossen haben, wird in der Ausgabe eine Meldung wie "Ich würde Anzeige von
http://example.com/bidding/render_shoes
".Beenden Sie in Ihrem Terminal mit Strg + C das Programm
record_android_trace
, um beenden Sie den Trace. Die Perfetto-UI wird mit dem Trace in Ihrem Browser geöffnet. Daten geladen.
Traces in Perfetto visuell erkunden
Suchen Sie nach „RunOnDeviceAdSelection“. mithilfe der Adressleiste oben auf der auf der Benutzeroberfläche. Drücken Sie die Eingabetaste, um die Suche abzuschließen und die Ergebnisse anzuzeigen:
<ph type="x-smartling-placeholder">Klicken Sie auf einen Trace, um ihn zu überprüfen. Details wie die Ausführungslatenz finden Sie hier.
<ph type="x-smartling-placeholder">
Protected Audience-spezifische Trace-Segmente
Protected Audience-Auktionen sind ein komplexer Prozess und die vom Perfetto-Trace erfasst wurden. In dieser Tabelle wird dokumentiert, was jeder Trace dargestellt wird.
Zeit | Segment | Beschreibung | Häufigkeit |
---|---|---|---|
Vor der Auktion | RunOnDeviceAdSelection |
Ende-zu-Ende-Auktion | Pro Auktion |
Gebote (für Käufer) | FilterContextualAds |
App-Installationen und Frequency Capping für kontextbezogene Anzeigen filtern | Pro Auktion |
GetBuyersCustomAudience |
Benutzerdefinierte Zielgruppe des Käufers aus Datenbank laden | Pro Käufer | |
FilterCustomAudiences |
App-Installationen und Frequency Capping für benutzerdefinierte Zielgruppen filtern | Pro Auktion | |
GetTrustedBiddingSignals |
Gebotssignale des Käufers laden | Pro Käufer | |
RunBiddingPerCustomAudience |
Anzeigengebote für eine einzelne benutzerdefinierte Zielgruppe | Pro benutzerdefinierte Zielgruppe | |
GetBuyerDecisionLogic |
Laden des JavaScript-Codes des Käufers aus dem Netzwerk oder der Datenbank (falls im Cache gespeichert) | 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 einer Anzeige | Pro Anzeige | |
GetAdSelectionLogic |
Anzeigenauswahllogik des Verkäufers laden | Pro Auktion | |
RunAdOutcomeSelection |
Abschließende Filterung | Pro Auktion | |
Nach der Auktion | PersistOnDeviceAdSelection |
Auktionsergebnis in Datenbank schreiben | Pro Auktion |
Abfrage der durchschnittlichen Ausführungslatenz
Perfetto kann SQL-Abfragen verwenden, um präzise Messungen zu erhalten, in einem bestimmten Trace.
In diesem Abschnitt wird dokumentiert, wie Sie die durchschnittliche Ausführungslatenz für JavaScript-Ausführung.
- Gehen Sie in Perfetto zu „Query (SQL)“. im linken Navigationsbereich.
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.
<ph type="x-smartling-placeholder">