Protected Audience-Auktionen profilieren

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

  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 Beispielanwendung „Protected Audience“ aus dem Verzeichnis privacy-sandbox-samples/Fledge/FledgeKotlin.

  3. Erstellen Sie die Beispiel-App und installieren Sie sie auf Ihrem Testgerät oder Emulator.

Auktion ausführen und Perfetto-Trace erstellen

  1. 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.
  2. 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>"
  3. Aktivieren Sie die Option „Benutzerdefinierte Zielgruppe für Schuhe“, damit mindestens eine benutzerdefinierte Zielgruppe aktiv ist.

    Die Schuh-CA ist in der Demo-App aktiviert.
    Demo-App für Protected Audience
  4. 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
  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 „Würde Anzeige von http://example.com/bidding/render_shoes ausliefern“ angezeigt.

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

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

    Perfetto-Benutzeroberfläche mit Informationen zur 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 prüfen. Details wie die Ausführungslatenz finden Sie hier.

    Perfetto-UI mit einem Trace-Segment Details zur Latenz sind sichtbar.
    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.

  1. Klicken Sie in Perfetto im linken Navigationsbereich auf „Abfrage (SQL)“.
  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 17693688 Nanosekunden.
    SQL-Abfrageergebnisse in Nanosekunden.