中介服務是賣方廣告平台提供收益管理服務的常見方式。在中介服務工作流程中,中介服務 SDK (「中介服務」) 會叫用多個廣告聯播網 (「中介服務」或「中介服務」),為指定廣告空間取得最佳廣告。在某些情況下,中介服務和叫用的廣告聯播網都需要 SDK 在裝置上互動。
本文將說明 SDK 執行階段中,中介服務工作流程的主要變更。涵蓋下列主題:
- 舊版中介服務流程與目前 SDK 執行階段中介服務支援的差異
- 在 SDK 執行階段中設定中介服務工作流程的動作,以及不同的轉換階段
- 如何處理並非所有 SDK 都已遷移至執行階段的情況
從 AGP 8.5 和下列版本的 SDK 執行階段 Jetpack 程式庫開始,即可在 SDK 執行階段中支援中介服務廣告:
| Androidx 程式庫 | 版本 |
|---|---|
| androidx.privacysandbox.activity | 1.0.0-alpha01 |
| androidx.privacysandbox.sdkruntime | 1.0.0-alpha13 |
| androidx.privacysandbox.tools | 1.0.0-alpha08 |
| androidx.privacysandbox.ui | 1.0.0-alpha09 |
詞彙
如要瞭解 SDK 執行階段中的中介服務,請務必掌握下列字詞:
- 支援執行階段的 SDK (RE SDK):這類 SDK 專為在 SDK 執行階段環境中執行而設計,並透過跨程序通訊 (IPC) 與應用程式通訊。
- 支援執行階段的 SDK (RA SDK):與應用程式靜態連結的非執行階段 SDK,可能包含現有的 SDK 程式碼,以及呼叫支援執行階段的 SDK 的新程式碼。
- 應用程式內 SDK:與應用程式靜態連結並執行的 SDK,不會察覺 SDK 執行階段。這可能是尚未轉換至 SDK 執行階段的廣告聯播網,或是發布商的自訂轉接程式。
- 中介服務:廣告中介服務 SDK,可與其他廣告聯播網 SDK 互動,在裝置上提供中介服務。
- 中介對象:由中介服務呼叫的廣告聯播網 SDK,負責提供及放送廣告。
- 中介服務轉接程式:中介服務 SDK 使用的 SDK,可提供 API 介面轉譯功能,與各種中介服務 SDK 互通,通常由中介服務提供。這些可以是可感知執行階段或無法感知執行階段。
一般中介服務流程
如果 SDK 需要在 SDK 執行階段支援中介服務用途,您必須進行一些變更。本節將回顧中介服務流程的關鍵要素,以便解決中介服務和中介服務對象所需的變更。
我們說明的流程是簡化版裝置端中介服務,使用多個廣告聯播網 SDK,可做為討論基礎,瞭解如何進行必要變更,讓中介服務流程與 SDK 執行階段相容。
由於中介服務流程的實作方式各不相同,我們將著重於下列兩大流程:
- 初始化 (包括探索廣告聯播網和通訊)
- 廣告使用者介面 (UI) 呈現
初始化
以下是標準初始化、廣告聯播網探索和通訊流程:
- 用戶端應用程式會啟動中介服務
- 中介服務會探索並初始化相關中介服務和轉接程式
- 中介服務會使用轉接程式與每個中介服務對象通訊
- 用戶端應用程式要求中介服務載入廣告
- 用戶端應用程式要求中介服務顯示這則廣告
廣告 UI 呈現
在先前步驟的最終請求後算繪廣告時,流程取決於廣告類型:
| 橫幅廣告 | 全螢幕廣告 | 原生廣告 |
|---|---|---|
| 中介服務 SDK 會建立廣告檢視區塊,包裝勝出中介服務的廣告檢視區塊。 這個 View 也可能會設定接聽程式,或自動重新整理廣告 (使用相同或不同的中介服務)。 |
中介服務 SDK 會向中介服務對象請求全螢幕廣告,後者則會啟動活動。 | 發布商會使用中介服務 SDK 傳回的元件,管理檢視區塊的處理和膨脹。 |
SDK 執行階段中的中介服務流程
中介服務在 SDK 執行階段中的運作方式,取決於中介服務是否支援執行階段。根據這項資訊,我們可能會遇到下列情況:
- 中介服務和中介目標都在 SDK 執行階段中:RE 中介目標
- 中介服務位於 SDK 執行階段,中介服務對象位於應用程式內:應用程式內中介服務對象
RE Mediatee
下圖為架構圖,概略說明中介服務的已啟用執行階段 (RE) 和可感知執行階段 (RA) SDK、RE 中介服務介面卡,以及中介服務對象的 RE SDK 之間的互動。
中介服務轉接程式必須與介接的 mediatee 位於相同程序,因此也必須遷移至 SDK 執行階段。

初始化
考量啟用執行階段的仲介服務和仲介對象的初始化、探索和通訊時,流程會遵循下列步驟:
- 應用程式 (或 RA SDK) 會使用
SdkSandboxManager#loadSdk載入並初始化中介服務 SDK。 - 中介服務 SDK 初始化時,會使用
SdkSandboxController#loadSdk在 SDK 執行階段載入並初始化所有必要的中介服務。 - RE SDK 可以呼叫
SdkSandboxController#getSandboxedSdks,探索執行階段中載入的所有 SDK。
廣告 UI 呈現
以下章節說明如何從中介服務載入橫幅和全螢幕廣告。
RE Mediatee 橫幅廣告
如果應用程式要求載入橫幅廣告,完成顯示的流程如下:
- 中介服務會為這個廣告選取勝出的中介服務。
- 中介方會從中介對象取得
SandboxedUiAdapter。 - 中介服務會將 UiAdapter 轉送至應用程式。
進一步瞭解 SandboxedUiAdapter 的用法和 SDK 執行階段 UI 程式庫。
重疊廣告轉為橫幅廣告
中介服務如要在廣告中加入疊加層,必須按照下列方式修改流程:
- 中介服務會使用疊加層和
SandboxedSdkView建立版面配置。 - 中介服務會為這個廣告選取勝出的中介服務。
- 中介服務會從中介目標取得
SandboxedUiAdapter。 - 中介器會將中介對象的
UiAdapter設為SandboxedSdkView。 - 中介服務會將填入的檢視區塊提供給應用程式。
RE Mediatee 全螢幕廣告
如果應用程式要求載入全螢幕廣告,系統會按照下列步驟執行流程:
- 應用程式 (或 RA SDK) 會將
SdkActivityLauncher傳遞給中介服務,要求載入廣告。- 用戶端可以使用述詞限制活動的建立。
- 中介服務會為這個廣告選取勝出的中介服務。
- 中介服務會要求中介服務對象載入廣告,並傳遞應用程式的
SdkActivityLauncher。 - 受調解者會註冊活動處理常式,並取得已註冊活動的 ID 權杖。
- 受調解者會使用
SdkActivityLauncher要求使用這個權杖啟動活動。 - 如果用戶端應用程式的述詞允許,SDK 執行階段會在專屬程序中啟動這項活動。
進一步瞭解 SDK 執行階段中全螢幕廣告的 Activity 支援。
應用程式內中介服務
下圖為架構圖,概略說明中介服務的 RE 和 RA SDK、不瞭解 SDK 執行階段的中介服務介面卡,以及靜態連結至應用程式的受中介服務 SDK (同樣不瞭解執行階段) 之間的互動。
初始化
由於在這個情境中,中介服務會靜態連結至應用程式,且尚未遷移至 SDK 執行階段,因此中介服務支援執行階段的 SDK 應具備註冊程序。
中介服務的 API 應可存取這項註冊資訊,但實作細節由各中介服務自行決定。我們將此 API 稱為 MediationSandboxedSdk#registerInAppMediatee。
考量 RE 中介服務 SDK 和應用程式內中介服務 SDK 的初始化、探索和通訊時,流程會遵循下列步驟:
- 應用程式會載入並初始化中介服務的執行階段感知 SDK。
- 中介服務的 RA SDK:
- 使用
SdkSandboxManager#loadSdk初始化中介服務的 RE SDK。 - 初始化所有應用程式內中介服務 SDK。
- 使用 RE SDK 提供的 API (
MediationSandboxedSdk#registerInAppMediate) 探索及註冊應用程式內中介服務 SDK。
- 使用
除了註冊所有應用程式內中介服務 SDK,中介服務的 RE SDK 也可以使用 SdkSandboxController#getSandboxedSdks 探索 SDK 執行階段中載入的所有 SDK。

廣告 UI 呈現
下一節將說明如何從應用程式內中介服務載入橫幅和全螢幕廣告。
應用程式內中介服務橫幅廣告
如果應用程式要求載入橫幅廣告,完成顯示的流程如下:
- 中介服務的支援執行階段 SDK 會將應用程式的要求轉送至支援執行階段的 SDK。
- 中介服務的 RE SDK 會選取相關中介服務。
- 中介服務的 RE SDK 會擷取中介服務對象的參照,並透過 RA SDK 請求載入廣告。
- RA SDK 會從應用程式內中介服務對象取得 View。
- RA SDK 會為收到的 View 建立
SandboxedUiAdapter。 - RA SDK 會將
UiAdapter轉送至 RE SDK。 - RE SDK 會將
UiAdapter轉送至應用程式。
應用程式內中介服務全螢幕廣告
如果應用程式要求載入全螢幕廣告,系統會按照下列步驟執行流程:
- 應用程式會將
SdkActivityLauncher傳遞至中介服務的 RA SDK,並要求載入廣告。- 用戶端可以使用述詞限制活動的建立。
- 中介服務的 RA SDK 會將應用程式的要求轉送至 RE SDK。
- 中介服務的 RE SDK:
- 選取相關受調解人。
- 擷取應用程式內中介物件的參照。
- 透過 RA SDK 載入廣告的請求。
- RA SDK 會要求中介服務對象載入廣告。
- 受邀者會直接啟動活動。系統不會採用應用程式的述詞。
參與討論及分享意見
Android 版 Privacy Sandbox 是一項持續進行的計畫,本文說明的是目前的設計。竭誠邀請您分享意見回饋,協助我們持續開發及提升功能。回報錯誤來提供意見回饋。