展示頻率上限是一種廣告相關做法,可限制在特定時間範圍內,向使用者放送的特定類別廣告數量。展示頻率上限能確保廣告曝光的新鮮度與吸引力,改善使用者體驗,也可以協助廣告客戶控管廣告支出。
本提案說明如何使用 Android 版 Protected Audience,以正確且保護隱私權的方式實作展示頻率上限功能。
Protected Audience 會結合兩項功能來實作展示頻率上限:在裝置端儲存廣告專屬事件數量的計數器,以及根據預先定義的一組篩選策略過濾廣告的功能。展示頻率上限功能可讓廣告客戶在指定時間範圍內,針對直方圖總和設定計數器門檻。
每組裝置設定檔、廣告技術和計數器鍵組合的計數器不會重複。每則廣告應包含一組計數器鍵,以便在已登錄廣告的觀看或曝光時使用。Protected Audience 會針對每個鍵儲存一組計數器,每個計數器都會記錄在特定時間間隔內發生的所有廣告專屬事件。發生曝光或觀看時,裝置端計數器會遞增,而且計數器資料會持續保留在裝置上。具體持續時間會在之後定義。
Protected Audience 的廣告選擇工作流程中的廣告篩選邏輯可以存取計數器、再行銷廣告和內容相關廣告,讓 Protected Audience 展示頻率上限能處理所有這類型的廣告要求。
注意事項:廣告篩選功能僅適用於 Android 版 Privacy Sandbox。Chrome 的 Protected Audience 實作目前不會導入內容比對非 Protected Audience 廣告的篩選機制。本提案僅涵蓋買方支援。若客戶有需求,我們將在日後新增賣方支援。
Protected Audience 展示頻率上限支援多種需求,包括:
- 在裝置端計數器更新時即時篩選,並且盡可能降低伺服器端延遲。
- 彈性的鍵階層,包括個別廣告、廣告活動或任何其他群組。
- 可搭配其他展示頻率上限方法,且不依賴 AdID。
- 可用於特定裝置使用者設定檔中的多個應用程式。
- 準確且完整的計數器。
- 支援廣告事件的自訂定義,例如觀看次數或曝光次數。
- 用於再行銷和內容相關廣告的一項函式。
設定展示頻率上限的步驟如下:
步驟 1:在廣告中加入展示頻率上限資訊
內容相關廣告和再行銷廣告會使用 ad_counter_keys
欄位 (包含任意整數的清單),指示要在廣告觀看或曝光時更新的相關直方圖計數器。這個欄位不會包含在 Protected Audience 未剖析的 metadata
欄位中。
以下範例顯示 AdSelectionConfig
中 adsData
欄位的資料格式。如果是再行銷廣告,特定自訂目標對象的廣告格式會與以下範例中的 ads
欄位內容一致:
'adsData': [
{
"buyer": "ads.example.com",
"ads": [
{
'render_url': 'exampleUrl',
'metadata': {...}, /* metadata are opaque to Protected Audience are
required to be in valid JSON format */
'ad_counter_keys': [1234, 5678]
}]
}]
}
步驟 2:登錄觀看或曝光
廣告技術可叫用 updateAdCounterHistogram
方法,登錄用於展示頻率上限的發生事件。您可以針對勝出廣告的 eventType
中指定的鍵,在相同事件中重複叫用該方法。
void updateAdCounterHistogram(@EventType eventType, long adSelectionId)
輸入內容:
eventType
:指出事件是否計為觀看、曝光、點擊或廣告選擇程序的勝出。adSelectionId
:AdSelectionOutcome
物件中由selectAds
呼叫傳回的 ID 值。
updateAdCounterHistogram
呼叫會更新一組鍵的直方圖,該組合定義為由 CustomAudience
擷取的再行銷廣告的一部分,或在 AdSelectionConfig
參數中為 selectAds
納入的內容相關廣告。
假設步驟 1 中的廣告是 AdSelection
的勝出者,且 id
值為 9999
,則呼叫 updateAdCounterHistogram(FrequencyCapFilters.AD_EVENT_TYPE_VIEW,
adSelectionId: 999)
時,下列三個主鍵的計數器會遞增:
{'ads.example.com', 1234, VIEW}
{'ads.example.com', 5678, VIEW}
廣告技術名稱取自買方欄位,來源包括內容相關廣告或自訂目標對象,視勝出廣告的來源而定。
Android 版 Protected Audience 會針對 selectAds
API 呼叫傳回廣告的事件類型 FrequencyCapFilters.AD_EVENT_TYPE_WIN
,自動遞增上述提到的所有計數器。這在功能上等同於在 Chrome 的 Protected Audience 實作的 generateBid
中,將 prev_wins
引數加到 browser_signals
。
步驟 3:使用篩選器實作展示頻率上限篩選功能
為獲得最佳效能,系統會在 AdServices
中執行展示頻率上限篩選函式。Protected Audience 會讀取 AdsData
物件中的篩選器欄位,藉此判斷訊息是否需要篩選。篩選器清單是在 frequency_cap
中指定。鍵、event_type
和 interval_in_seconds
的值是用來擷取篩選功能和 Protected Audience 所用事件的直方圖。
您可以為自訂目標對象提供的再行銷廣告,以及做為 AdSelectionConfig
物件一部分的內容相關廣告,指定篩選資訊。
針對具有展示頻率上限篩選器的內容相關廣告,系統會使用 AdSelectionConfig
物件的廣告欄位傳入廣告。系統會篩選廣告,並傳回最高出價的廣告做為 selectAds
呼叫的結果。
針對設有展示頻率上限篩選器的再行銷廣告,系統會在呼叫買方提供的 generateBid()
JavaScript 函式前篩選廣告。
以下範例顯示套用展示頻率上限篩選的訊息:
{
'render_url': 'url',
'metadata': {...}, /* metadata are opaque to Protected Audience and assumed
to be in valid JSON format */
'ad_counter_keys': [1234, 5678],
"filters": {
"frequency_cap": {
"view": [
{
"ad_counter_key": 1234
"max_count": 10,
"interval_in_seconds": 86400
},
{
"ad_counter_key": 5678
"max_count": 10,
"interval_in_seconds": 86400
},
],
"win": [
{
"ad_counter_key": 1234
"max_count": 5,
"interval_in_seconds": 604800
},
{
"ad_counter_key": 5678
"max_count": 5,
"interval_in_seconds": 345600
},
]
},
// This field is only required in contextual ads and is used in
// reportImpression calls to fetch the reportWin function.
'reportingJS': "https://ads.example.com?reportWin.js"
}
步驟 4:製作勝出廣告報表
廣告選擇程序完成後,系統會傳回包含 renderUri
和 adSelectionId
(也就是 selectAds
呼叫的數字 ID) 的 AdSelectionOutcome
物件。這個 ID 可用於叫用目前支援事件層級報表的 reportImpression
API。在 Beta 版第 1 版中,這個方法支援再行銷廣告報表,而日後版本中也會支援內容相關廣告的報表功能。針對內容相關廣告,買方必須在廣告結構中使用名為 reportingJS
的額外欄位,在 reportImpression
呼叫期間指出可擷取 reportWin
函式的位置,如上例所示。
選取候選廣告的最佳做法
Protected Audience 會將展示頻率上限的執行作業從伺服器移至裝置。雖然 Privacy Sandbox 會報告勝出出價,但開發人員不會知道廣告無法顯示的原因。廣告可能因出價落選或展示頻率上限而無法顯示。出價系統無法全面瞭解某些廣告無法勝出的原因,因此還需要進行額外工作,確保系統放送成效最佳的廣告。這些最佳做法有助於確保您透過 Protected Audience,以成效最佳的方式放送廣告。
傳送足夠的再行銷廣告
再行銷廣告無法針對每位使用者進行最佳化。如果使用者看到來自自訂目標對象的大量廣告,且廣告限制數量偏低,可能就被篩除。再行銷廣告會定期更新,因此廣告空間必須足以通過展示頻率上限,確保再行銷廣告能繼續放送。不過,這需要與可在 joinCustomAudience
呼叫期間,以及自訂目標對象每日更新期間指定的廣告大小限制取得平衡。買方必須考量到,出價階段的延遲時間可能會增加。為了盡可能降低這些問題的影響,系統會在呼叫 generateBid
之前執行展示頻率上限篩選。
在伺服器上保留內容相關計數器
透過伺服器端預估功能,開發人員可以大概估算出展示頻率上限啟用的時機。這些預估值表示廣告很可能達到展示頻率上限,因此建議發送更多候選廣告或完全刪除。
根據結構定義的回應,傳送多個候選廣告
您應該在 Protected Audience 競價之前,傳送多個包含情境回應的候選廣告。這樣可確保篩除多則廣告時,其他廣告還是會顯示。您可以設定候選廣告的優先順序,將部分廣告做為備份提供。
由於執行程序有時間限制,因此選擇候選廣告時,應選擇較可能在競價獲勝的廣告,以及不會遭到篩除的廣告。
限制
以下是 Protected Audience 展示頻率上限的已知限制:
- Protected Audience 展示頻率上限是在裝置使用者設定檔層級運作,沒有與其他裝置或設定檔共用的計數器。如有需要,您必須手動整合從其他裝置顯示的廣告增量。
- 裝置計數器是在裝置上儲存及存取資料,因此必須個別管理伺服器端計數器。
- 系統會在裝置上處理展示頻率上限和相關廣告篩選功能,因此廣告技術平台無法直接控管這些作業。如要略過裝置的展示頻率上限門檻,廣告技術平台可傳送多個包含不同篩選條件的候選廣告。
- 不支援根據記錄頻率設定出價調整幅度。
generateBid
函式無法查看頻率計數器。
為您推薦
- 注意:系統會在 JavaScript 關閉時顯示連結文字
- Protected Audience:整合指南
- Android 開發人員指南中的 Protected Audience API
- 使用 Protected Audience API 支援自訂指定目標對象