通常,透過應用程式安裝廣告提高新的行動應用程式的安裝量。為了盡可能提高廣告支出的投資報酬率,建議放送廣告時,不要將已安裝應用程式的裝置列入範圍。在本提案中,我們將這項做法稱為「應用程式安裝廣告篩選功能」。
本提案說明 Android 版 Protected Audience 如何以保護隱私權的方式支援內容相關廣告篩選功能,特別是應用程式安裝廣告篩選功能。如要採用此做法,裝置上的應用程式必須明確選擇啟用應用程式安裝廣告篩選功能。選擇廣告時,系統會根據廣告技術已知在裝置上安裝的應用程式清單來篩選廣告候選。
系統只會在廣告選擇流程中顯示已安裝的應用程式清單,並且依賴買方平台指出應根據裝置上是否安裝有某個應用程式來篩選特定廣告
設定應用程式安裝廣告篩選功能的步驟如下:
步驟 1:註冊應用程式以使用應用程式安裝廣告篩選功能
若要選擇啟用應用程式安裝廣告篩選功能,應用程式開發人員應透過廣告技術買家 eTLD+1 清單,從應用程式或廣告技術 SDK 叫用 registerForAdFiltering
應用程式註冊 API。如此一來,名單中的買方 (僅限這些買家) 就能根據應用程式的安裝狀態,直接或透過廣告技術的 SDK 篩選廣告。註冊後,應用程式開發人員可完全掌控是否要讓應用程式使用應用程式安裝廣告篩選功能。
java
void registerForAdFiltering(List<AdTechIdentifier> buyers);
步驟 2:要求過濾應用程式安裝廣告
在考慮對廣告進行出價時,買方可以選擇根據應用程式的安裝狀態來標記要過濾的廣告。爲此,請在應用程式的中繼資料中加入應用程式的套件名稱。應用程式安裝廣告篩選要求是 Protected Audience 競價程序中,要填入的廣告資料的一部分。系統會根據內容是相關廣告或再行銷廣告,建立不同的廣告資料。
- 針對內容相關廣告用途 (應用程式安裝廣告篩選功能的主要用途),篩選資訊會包含在廣告資料中,而買方在回應 Protected Audience 以外的內容相關出價時,會向賣方提供這些資料。Protected Audience 預期篩選資訊會做為內容相關回應的一部分傳回,就像其他廣告專用的中繼資料一樣。
- 針對再行銷廣告用途,Protected Audience 預期篩選資訊會包含在自訂目標對象中。有 2 個時機可加入這些資訊:加入目標對象時,以及在更新目標對象程序中擷取新的目標對象資料時。用來篩除應用程式安裝廣告的要求應在
AdData
JSON 物件中如下所示:json { "render_uri": "https://..", "metadata": {..}, "filters": { "app_install": { "app_package_names": ["app1.package", "app2.package"] } } }
步驟 3:在選擇廣告期間篩除應用程式安裝廣告
在廣告請求中,買方可以將多個廣告連同篩選資訊傳回賣方,以便系統過濾已安裝應用程式的廣告。賣方必須將篩選資訊做為 adData
欄位中 selectAds
函式設定的一部分傳遞。Android 預期的訊息格式與以下示例類似。
AdData myAdData = new AdData.Builder()
.setRenderUri(Uri.parse("https://.."))
.setMetadata("{...}")
.setFilters(new AdFilters.Builder()
.setAppInstalledFilter(new AppInstalledFilter.Builder()
.setPackageNames(ImmutableList.of("app1.package", "app2.package"))
.build())
.build())
.build();
AdSelectionConfig myAdSelectionConfig = new AdSelectionConfig.Builder()
.setSeller(AdTechIdentifier.fromString("example-ssp1.com"))
.setDecisionLogicUri(Uri.parse("https://..."))
...
.setContextualAds(ImmutableList.of(new ContextualAd.Builder()
.setBuyer(AdTechIdentifier.fromString("example.com"))
.setReportingUri("https://example.com/reporting")
.setBid(20)
// myAdData could be taken from the JSON above
.setAd(myAdData)
.build()))
.build();
// Invoke ad services API to initiate ad selection workflow.
selectAds(myAdSelectionConfig);
在 selectAds
API 中繼續篩選。如果訊息中指定的應用程式,與廣告技術買家特定應用程式安裝清單中的應用程式一致,Protected Audience 會篩除廣告。這可能會有以下兩種結果:
- 應用程式不在這份清單中,代表使用者尚未安裝與開啟應用程式。
- 在清單中找到應用程式,表示已安裝並開啟該應用程式。如果 Protected Audience 偵測到該應用程式已安裝,則系統會從競價用於執行
scoreAds
的廣告清單中,將該廣告排除。
使用內容相關廣告時的注意事項
搭配應用程式安裝廣告篩選功能,Protected Audience API 即可開始支援內容相關廣告篩選功能。假如競價是針對內容相關廣告和再行銷廣告,或僅針對內容相關廣告,則您必須指定幾個條件。
- 執行
selectAd
競價時,買方可選擇傳入ContextualAd
物件清單。這些物件包括廣告買方的 eTLD+1、廣告出價、指向廣告報表邏輯的網址、包含實際廣告素材網址的AdData
,以及屬於買方的驗證簽章 (詳情請參閱「內容相關廣告簽署」一節)。請注意,AdData
格式可用於內容相關廣告和再行銷廣告。 - 競價程序開始時,系統會根據
AdData.adFilters.appInstallFilters.packageNames
中指定的一組套件名稱,篩選內容相關廣告和再行銷廣告。接著,系統會決定所有再行銷廣告的出價金額,並使用現有的scoreAds
函式對再行銷廣告和內容相關廣告進行評分。得分最高的廣告即為競價勝出者。請注意,即使沒有再行銷廣告,這項程序仍會運作。 如果內容相關廣告贏得競價,並且應用程式觸發了曝光報表,Protected Audience 會從內容相關廣告資料中包含的報表網址,下載並執行名為
reportWin()
的 JS 函式。這與再行銷廣告贏得競價時產生報表的方式類似。JavaScript 回報函式範例:
function reportWin(ad_selection_signals, per_buyer_signals, signals_for_buyer, contextual_signals) { let reporting_address = 'https://reporting.example.com'; return {'status': 0, 'results': {'reporting_uri': reporting_address + '?some_signal=' + per_buyer_signals.some_signal} }; }
內容相關廣告簽署
如果內容相關廣告含有應用程式安裝篩選功能,必須由買方簽署。平台會使用這個簽章驗證提供廣告的廣告技術,並確認廣告要套用哪些廣告技術應用程式安裝篩選器。這麼做可以防止惡意廣告技術利用其他廣告技術的識別資訊,享有其他廣告技術的應用程式安裝篩選註冊服務。
Privacy Sandbox 會從註冊期間提供的廣告技術端點擷取這些金鑰。建議的最佳做法是,金鑰必須經常更新,最久不超過每 6 個月更新一次。
在註冊過程中,Privacy Sandbox 會要求廣告技術確認廣告技術提供的端點是否可用。如要進一步瞭解現有和新註冊的廣告技術需要採取哪些行動,請參閱註冊操作說明。
我們將在不久後發布一份開發人員指南,提供更詳細的實作操作說明。
為您推薦
- 注意:系統會在 JavaScript 關閉時顯示連結文字
- Android 開發人員指南中的 Protected Audience API
- 版本資訊
- 使用 Protected Audience API 支援自訂指定目標對象