分析 Protected Audience 競價

您可以利用視覺化的方式,或透過 PerfettoSQL 查詢分析 Protected Audience 競價。廣告技術可以運用 Perfetto 進行分析,評估 Protected Audience 競價的成效,包括:

  • 出價和評分指令碼的 CPU 作業時間
  • HTTP 要求 (例如鍵/值服務) 的延遲時間
  • 冷快取與熱快取的效能影響比較
  • 自訂目標對像人數多寡比較
  • 信號組合較大或較小
  • 以下兩種方式的比較:對每位自訂目標對象採取不同的出價邏輯指令碼,與對所有出價皆使用相同的指令碼

設定

  1. 複製 Perfetto 與 Privacy Sandbox 存放區。

    git clone https://android.googlesource.com/platform/external/perfetto
    git clone https://github.com/android/privacy-sandbox-samples
    
  2. 在 Android Studio 中,從 privacy-sandbox-samples/Fledge/FledgeKotlin 目錄開啟 Protected Audience 範例應用程式。

  3. 測試裝置或模擬器上建構及安裝範例應用程式。

進行競價並錄製 Perfetto 追蹤記錄

  1. 設定及部署測試 HTTPS 端點。請記下代管端點的網址,因為 Protected Audience 範例應用程式需要這項資訊才能執行。
  2. 以指定的測試端點網址啟動範例應用程式。將 <test-endpoint-url> 替換為您在上一個步驟中記下的代管端點網址。

    adb shell am start -n com.example.adservices.samples.fledge.sampleapp/.MainActivity \
      -e baseUrl "<test-endpoint-url>"
    
  3. 切換「Shoes CA」按鈕,確保至少有 1 位自訂目標對象已啟用。

    Protected Audience 範例應用程式的螢幕截圖,其中「Shoes CA」按鈕已切換為開啟。
    Protected Audience 試用版應用程式。
  4. 使用 Privacy Sandbox 開發人員工具 GitHub 存放區中的 trace_config.textproto 檔案錄製追蹤記錄:

    ./perfetto/tools/record_android_trace \
      -c path/to/trace_config.textproto
    
  5. 輕觸「Run Ad Selection」按鈕,等待競價結果產生。競價完成後,輸出內容會顯示類似「Would display ad from http://example.com/bidding/render_shoes」的訊息。

  6. 在終端機中終止 record_android_trace 程式 (按下 CTRL + C 鍵) 以完成追蹤記錄。Perfetto UI 會在瀏覽器中開啟,並載入追蹤資料。

在 Perfetto 中以視覺化方式探索追蹤記錄

  1. 使用 UI 頂端的網址列搜尋「RunOnDeviceAdSelection」。按下 Enter 鍵即可完成搜尋並顯示結果:

    這個 Perfetto UI 顯示 Protected Audience 競價畫面,可以看到 RunOnDeviceAdSelection 和 RunBidding 等追蹤項目。
    Perfetto 中的單一買家 Protected Audience 競價。
  2. 按一下追蹤記錄即可進行檢查,取得執行作業延遲時間等詳細資料。

    這個 Perfetto UI 顯示檢查追蹤記錄區隔時的畫面,可以看到延遲時間詳細資料。
    檢查追蹤記錄區隔。

Protected Audience 專用的追蹤記錄區隔

Protected Audience 競價程序相當複雜,Perfetto 追蹤記錄會擷取許多不同的區隔。下表說明每個追蹤記錄區隔代表的意義。

時間 區隔 說明 頻率
競價前 RunOnDeviceAdSelection 競價端對端 每次競價
出價 (買方) FilterContextualAds 針對內容相關廣告執行應用程式安裝和展示頻率上限篩選功能 每次競價
GetBuyersCustomAudience 從資料庫載入買家的自訂目標對象 每位買家
FilterCustomAudiences 針對自訂目標對象執行應用程式安裝和展示頻率上限篩選功能 每次競價
GetTrustedBiddingSignals 載入買家的出價信號 每位買家
RunBiddingPerCustomAudience 單一自訂目標對象的廣告出價 每位自訂目標對象
GetBuyerDecisionLogic 從網路或資料庫 (如果已快取的話) 載入買家的 JavaScript 每位自訂目標對象
RunBidding 為買家執行 JavaScript 每位買家
GenerateBids 為自訂目標對象執行 JavaScript 每位自訂目標對象
評分 (賣方) GetTrustedScoringSignals 載入賣家的評分信號 每位賣家
RunAdScoring 為評分執行 JavaScript 每次競價
ScoreAd 為廣告執行 JavaScript 每個廣告
GetAdSelectionLogic 載入賣家的廣告選擇邏輯 每次競價
RunAdOutcomeSelection 最終篩選 每次競價
競價後 PersistOnDeviceAdSelection 將競價結果寫入資料庫 每次競價

查詢平均的執行作業延遲時間

Perfetto 可以利用 SQL 查詢,準確評估特定追蹤記錄中的活動情況。

本節說明如何評估 JavaScript 執行作業的平均延遲時間。

  1. 在 Perfetto 中,前往左側導覽窗格中的「Query (SQL)」。
  2. 輸入下列查詢:

    SELECT AVG(dur)
    FROM slice
    WHERE slice.name GLOB 'FetchPayload';
    
  3. 執行查詢並檢查結果。

    SQL 查詢結果,平均延遲時間為 17693688 奈秒。
    SQL 查詢結果 (以奈秒為單位)。