設定 AdServices

詳閱 Android 版 Privacy Sandbox 說明文件時,請利用「開發人員預覽版」或「Beta 版」按鈕選取您要使用的計畫版本,因為兩者的操作說明可能不盡相同。


請按照以下操作說明宣告 API 專屬權限,並設定 SDK 對於目標 API 所管理資源的存取權。

宣告 AdServices API 專屬權限

您必須具備廣告服務 normal 權限,才能存取每個 PPAPI。在資訊清單中,請宣告應用程式或 SDK 所需 API 相應的適當存取權限。

Attribution Reporting API:

<uses-permission android:name="android.permission.ACCESS_ADSERVICES_ATTRIBUTION" />

Attribution Reporting API (含偵錯報表):

<uses-permission android:name="android.permission.ACCESS_ADSERVICES_ATTRIBUTION" />
<uses-permission android:name="android.permission.ACCESS_ADSERVICES_AD_ID" />

Protected Audience/Custom Audience API:

<uses-permission android:name="android.permission.ACCESS_ADSERVICES_CUSTOM_AUDIENCE" />

Topics API:

<uses-permission android:name="android.permission.ACCESS_ADSERVICES_TOPICS" />

如要使用 Attribution Reporting API 接收偵錯報表,請視需要加入 AD_ID 權限:

<uses-permission android:name="android.permission.ACCESS_ADSERVICES_AD_ID" />

如果專案具有模組或 SDK 的依附元件,可能已在資訊清單檔案中宣告必要的廣告服務權限。根據預設,Gradle 建構作業會將所有資訊清單檔案合併為單一檔案,封裝到應用程式中。請透過「Merged Manifest」檢視畫面確認已使用正確權限。

如果您需要避免透過 SDK 等依附元件將任何權限合併到應用程式,請為特定權限加入 remove 節點標記。以下範例說明如何避免合併 Topics 權限。

<uses-permission android:name="android.permission.ACCESS_ADSERVICES_TOPICS"
    tools:node="remove" />

設定 API 專屬廣告服務

與 PPAPI 存取權限類似,每個 API 在廣告服務設定中都有對應項目。您可以使用這項設定,針對應用程式或內嵌 SDK 中受 API 管理的資源,進行精細的存取權控管。在資訊清單中指定 adservicesConfig 屬性,如以下範例所示:

<application ...>
      ...
    <property android:name="android.adservices.AD_SERVICES_CONFIG"
        android:resource="@xml/ad_services_config" />

      ...
</application>

指定資訊清單所參照的廣告服務 XML 資源,例如 res/xml/ad_services_config.xml。針對適用於應用程式 (或內嵌 SDK) 的每個隱私權保護 API,將 allowAllToAccess 屬性設為 true,對所有呼叫端授予存取權。

或者,您可以使用 allowAdPartnersToAccess 屬性,針對每項廣告技術授予精細的 API 存取權。這時,您需要提供開發人員透過註冊取得的註冊帳戶 ID 清單。如果 allowAllToAccess 屬性設定為 true,則此屬性的優先順序會高於 allowAdPartnersToAccess 屬性中指定的任何註冊帳戶 ID。

廣告技術平台也應確保其應用程式用戶端正確授予權限,以利存取廣告服務設定中必要的隱私權保護 API。

以下範例說明如何指定廣泛存取權,確保任何註冊帳戶 ID 都能存取所有隱私權保護 API:

<ad-services-config>
   <!-- Attribution API -->
   <attribution allowAllToAccess="true" />

   <!-- Topics API -->
   <topics allowAllToAccess="true" />

   <!-- Protected Audience on Android API -->
   <custom-audiences allowAllToAccess="true" />
</ad-services-config>

以下範例說明如何針對特定註冊帳戶 ID,為每個隱私權保護 API 指定精細存取權:

<ad-services-config>
    <!-- Attribution API -->
    <attribution allowAdPartnersToAccess="ENROLLMENT-ID" allowAllToAccess="false" />

    <!-- Topics API →-->
    <includes-sdk-library name="ENROLLMENT-ID" />
    <topics allowAdPartnersToAccess="ENROLLMENT-ID" allowAllToAccess="false" />

    <!-- Protected Audience on Android API -->
    <custom-audiences allowAdPartnersToAccess="ENROLLMENT-ID" allowAllToAccess="false" />
</ad-services-config>