Protected Audience-Auktionen profilieren

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

  1. 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
  2. Öffnen Sie in Android Studio die Protected Audience-Beispiel-App aus dem Verzeichnis privacy-sandbox-samples/Fledge/FledgeKotlin.

  3. Erstelle die Beispiel-App und installiere sie auf deinem Testgerät oder Emulator.

Auktion ausführen und Perfetto-Trace erstellen

  1. 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.
  2. 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>"
  3. Aktivieren Sie „Shoes CA“, um zu prüfen, ob mindestens eine benutzerdefinierte Zielgruppe aktiv ist.

    Die Funktion „Schuhe – Creative Assist“ ist in der Demo-App aktiviert.
    Protected Audience Demo App
  4. 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
  5. 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.

  6. 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

  1. 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:

    Perfetto-Benutzeroberfläche mit der Protected Audience-Auktion Tracks wie „RunOnDeviceAdSelection“ und „RunBidding“ sind sichtbar.
    Protected Audience-Auktion mit einem einzelnen Käufer in Perfetto
  2. Klicken Sie auf einen Trace, um ihn zu untersuchen. Details wie die Ausführungslatenz sind hier verfügbar.

    Perfetto-UI, in der ein Trace-Segment untersucht wird. Latenzdetails sind sichtbar.
    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.

  1. Rufen Sie in Perfetto im linken Navigationsbereich „Query (SQL)“ auf.
  2. Geben Sie die folgende Abfrage ein:

    SELECT AVG(dur)
    FROM slice
    WHERE slice.name GLOB 'FetchPayload';
    
  3. Führen Sie die Abfrage aus und sehen Sie sich die Ergebnisse an.

    SQL-Abfrageergebnisse. Die durchschnittliche Latenz beträgt 17.693.688 Nanosekunden.
    SQL-Abfrageergebnisse in Nanosekunden.