Profil für Protected Audience-Auktionen erstellen

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

  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 Beispiel-App „Protected Audience“ über die privacy-sandbox-samples/Fledge/FledgeKotlin-Verzeichnis.

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

Auktion durchführen und Perfetto-Nachverfolgung erstellen

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

    <ph type="x-smartling-placeholder">
    </ph> Screenshot der Demo-App. Die Schuh-Zertifizierungsstelle ist umgeschaltet.
    Protected Audience Demo App
  4. 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
  5. 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".

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

  1. 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">
    </ph> Perfetto-Benutzeroberfläche mit Blick auf die Protected Audience-Auktion Tracks wie RunOnDeviceAdSelection und RunBidding sind sichtbar.
    Protected Audience-Auktion für einzelne Käufer in Perfetto
  2. Klicken Sie auf einen Trace, um ihn zu überprüfen. Details wie die Ausführungslatenz finden Sie hier.

    <ph type="x-smartling-placeholder">
    </ph> Perfetto-UI zur Prüfung eines Trace-Segments Details zur Latenz sind sichtbar.
    Trace-Segment prüfen

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.

  1. Gehen Sie in Perfetto zu „Query (SQL)“. im linken Navigationsbereich.
  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.

    <ph type="x-smartling-placeholder">
    </ph> SQL-Abfrageergebnisse. Die durchschnittliche Latenz beträgt 17.693.688 Nanosekunden.
    SQL-Abfrageergebnisse in Nanosekunden.