Profil für Protected Audience-Auktionen erstellen

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

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

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

Auktion durchführen und Perfetto-Trace erhalten

  1. HTTPS-Testendpunkte einrichten und bereitstellen Notieren Sie sich die URL der gehosteten Endpunkte, da sie erforderlich sind, damit die Protected Audience-Demo-App funktioniert.
  2. 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>"
    
  3. Stellen Sie die Ein/Aus-Schaltfläche für „Schuhe CA“ ein, damit mindestens eine aktive benutzerdefinierte Zielgruppe vorhanden ist.

    Screenshot der Demo-App. Die Ansicht „Schuhe CA“ ist umgeschaltet.
    Protected Audience Demo-App
  4. 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
    
  5. 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.

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

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

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

    Perfetto-UI zur Prüfung eines Trace-Segments Latenzdetails sind sichtbar.
    Trace-Segment prüfen

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.

  1. Gehen Sie in Perfetto im linken Navigationsbereich zu „Query (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 prüfen Sie die Ergebnisse.

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