Profilowanie aukcji w ramach Protected Audience API

Aukcje w ramach Protected Audience API można analizować (wizualnie lub za pomocą zapytania SQL z użyciem Perfetto). Technologie reklamowe mogą wykorzystać profilowanie z użyciem Perfetto, aby mierzyć skuteczność aukcji Protected Audience API, w tym:

  • Czas pracy procesora przez skrypt ustalania stawek i punktacji
  • Opóźnienie żądań HTTP, takich jak usługa par klucz-wartość
  • Wpływ na wydajność pamięci podręcznej stanu zimnego i gorącego
  • Więcej lub mniej grup niestandardowych odbiorców
  • Większe lub mniejsze zbiory sygnałów
  • różne skrypty logiki ustalania stawek na niestandardowych listach odbiorców w porównaniu z użyciem tego samego skryptu.

Konfiguracja

  1. Skopiuj repozytoria Perfetto i Piaskownica prywatności.

    git clone https://android.googlesource.com/platform/external/perfetto
    git clone https://github.com/android/privacy-sandbox-samples
    
  2. W Android Studio otwórz przykładową aplikację Protected Audience z katalogu privacy-sandbox-samples/Fledge/FledgeKotlin.

  3. Skompiluj i zainstaluj aplikację próbną na urządzeniu testowym lub emulatorze.

Przeprowadź aukcję i przeprowadź ślad Perfetto

  1. Skonfiguruj i wdróż testowe punkty końcowe HTTPS. Zanotuj adresy URL hostowanych punktów końcowych, ponieważ są one wymagane do działania demonstracyjnej aplikacji Protected Audience.
  2. Uruchom aplikację demonstracyjną z podanym adresem URL punktu końcowego testu. Zastąp <test-endpoint-url> adresem URL hostowanego punktu końcowego zarejestrowanym w poprzednim kroku.

    adb shell am start -n com.example.adservices.samples.fledge.sampleapp/.MainActivity \
      -e baseUrl "<test-endpoint-url>"
    
  3. Przełącz pole „Shoes CA”, aby upewnić się, że jest aktywna co najmniej 1 niestandardowa lista odbiorców.

    Zrzut ekranu przedstawiający aplikację w wersji demonstracyjnej. Dostęp do urzędu certyfikacji butów jest włączony.
    Aplikacja demonstracyjna Protected Audience
  4. Zapisz ślad za pomocą pliku trace_config.textproto z repozytorium narzędzi deweloperskich Piaskownicy prywatności na GitHubie:

    ./perfetto/tools/record_android_trace \
      -c path/to/trace_config.textproto
    
  5. Kliknij przycisk „Uruchom wybór reklamy” i poczekaj na wyniki aukcji. Po zakończeniu aukcji w danych wyjściowych pojawi się komunikat „Wyświetla się reklama z http://example.com/bidding/render_shoes”.

  6. Aby zakończyć śledzenie, zakończ w terminalu (CTRL+C) program record_android_trace. W przeglądarce otworzy się interfejs Perfetto z wczytanymi danymi logu czasu.

Wizualne eksplorowanie śladów w Perfetto

  1. Wyszukaj „RunOnDeviceAdSelection”, korzystając z paska adresu u góry interfejsu. Naciśnij Enter, aby zakończyć wyszukiwanie i wyświetlić wyniki:

    Interfejs Perfetto z aukcją Protected Audience API. Widoczne są takie ścieżki, jak RunOnDeviceAdSelection i RunUS.
    Aukcja Protected Audience API na jednego kupującego w Perfetto.
  2. Kliknij log czasu, aby go sprawdzić. Szczegółowe informacje, takie jak czas oczekiwania na wykonanie, znajdziesz tutaj.

    Interfejs Perfetto bada segment logu czasu. Widoczne są szczegóły czasu oczekiwania.
    Sprawdzanie segmentu logu czasu.

Segmenty śledzenia w ramach Protected Audience API

Aukcja w ramach Protected Audience API to skomplikowany proces, w którym ślad Perfetto uwzględnia wiele różnych segmentów. Ta tabela zawiera informacje o poszczególnych segmentach logu czasu.

Godzina Segmenty Opis Częstotliwość
Przed aukcją RunOnDeviceAdSelection Aukcja kompleksowa Na aukcję
Określanie stawek (po stronie kupującego) FilterContextualAds Filtrowanie reklam kontekstowych na potrzeby instalacji aplikacji i ograniczenia liczby wyświetleń na użytkownika Na aukcję
GetBuyersCustomAudience Wczytaj niestandardową listę odbiorców kupującego z bazy danych Na kupującego
FilterCustomAudiences Filtrowanie niestandardowych list odbiorców na podstawie liczby instalacji aplikacji i limitu wyświetleń na użytkownika Na aukcję
GetTrustedBiddingSignals Wczytaj sygnały kupującego dotyczące ustalania stawek Na kupującego
RunBiddingPerCustomAudience Określanie stawek w przypadku jednej niestandardowej listy odbiorców Na niestandardową listę odbiorców
GetBuyerDecisionLogic Wczytywanie kodu JavaScript kupującego z sieci lub bazy danych, jeśli jest przechowywana w pamięci podręcznej Na niestandardową listę odbiorców
RunBidding Wykonywanie kodu JavaScript w przypadku kupującego Na kupującego
GenerateBids Wykonywanie kodu JavaScript w przypadku niestandardowej listy odbiorców Na niestandardową listę odbiorców
Wynik (sprzedaży) GetTrustedScoringSignals Wczytaj sygnały punktowe sprzedawcy Na sprzedawcę
RunAdScoring Wykonywanie kodu JavaScript na potrzeby oceny Na aukcję
ScoreAd Wykonywanie kodu JavaScript w reklamie Na reklamę
GetAdSelectionLogic Wczytaj logikę wyboru reklamy sprzedawcy Na aukcję
RunAdOutcomeSelection Końcowe filtrowanie Na aukcję
Po aukcji PersistOnDeviceAdSelection Zapisz wynik aukcji w bazie danych Na aukcję

Zapytanie dotyczące średniego czasu oczekiwania na wykonanie

Perfetto może używać zapytań SQL, aby dokładnie zmierzyć, co dzieje się w danym logu czasu.

W tej sekcji opisujemy, jak mierzyć średni czas oczekiwania na wykonanie kodu JavaScript.

  1. W Perfetto w panelu nawigacji po lewej stronie przejdź do sekcji „Zapytanie (SQL)”.
  2. Wpisz to zapytanie:

    SELECT AVG(dur)
    FROM slice
    WHERE slice.name GLOB 'FetchPayload';
    
  3. Uruchom zapytanie i sprawdź wyniki.

    Wyniki zapytania SQL. Średni czas oczekiwania to 17693688 nanosekund.
    Wyniki zapytania SQL w nanosekundach.