向歐洲使用者徵求同意

必要條件

使用支援 User Messaging Platform SDK 的 GMA Flutter 外掛程式 1.3.0 版完成開始使用

請閱讀 IAB 規定對歐盟地區同意授權訊息的影響

簡介

UMP SDK 提供多項工具,可讓發布商要求個人化廣告的同意聲明,以及處理 Apple 的應用程式追蹤透明度 (ATT) 規定。所有設定都是在 Ad Manager 隱私權與訊息

根據 Google 歐盟地區使用者同意授權政策,您必須向歐洲經濟區 (EEA) 和英國境內的使用者揭露特定資訊,並依法取得使用者同意,才能使用 Cookie 或其他本機儲存空間,以及使用個人資料 (例如廣告 ID) 放送廣告。本政策是配合《歐盟地區電子通訊隱私指令》和《一般資料保護規則》(GDPR) 而製定。

為了協助發布商根據這項政策履行自身職責,Google 提供了 User Messaging Platform (UMP) SDK。UMP SDK 已更新,現已支援最新的 IAB 標準。我們也簡化了同意聲明表單和刊登廣告合作夥伴的設定程序。所有這些設定現在都能在 Ad Manager 隱私權與訊息

本指南將逐步說明如何安裝 SDK、實作 IAB 解決方案並啟用測試功能。

應用程式追蹤透明度 (僅限 iOS)

如果您打算使用 UMP SDK 處理 Apple 的應用程式追蹤透明度規定,請確認您已透過 Ad Manager 隱私權與訊息

為了讓 UMP SDK 顯示自訂快訊訊息,請更新 Info.plist 以加入 NSUserTrackingUsageDescription 鍵,並加入描述使用情況的自訂訊息字串。

<key>NSUserTrackingUsageDescription</key>
<string>This identifier will be used to deliver personalized ads to you.</string>

顯示同意聲明表單時,使用說明會顯示在 ATT 對話方塊中:

接著,您需要連結 AppTrackingTransparency 架構:

在測試時,請注意,根據 Apple 的規定,廣告識別碼 ATT 對話方塊只會顯示一次,因為 requestTrackingAuthorization: 是一次性的要求。如要再次顯示這類快訊,您必須先在測試裝置上解除安裝應用程式,再重新安裝。

使用 SDK

SDK 能夠以線性方式使用。使用 SDK 的步驟包括:

  1. 索取最新的同意聲明資訊。
  2. 確認是否需要提供同意聲明。
  3. 檢查是否有表單可用,如果有,系統會載入表單。
  4. 提交表單。
  5. 為使用者提供變更同意聲明的方法。

建議您在每次應用程式啟動時,要求更新同意聲明資訊。這個模式可判斷使用者是否需要提供同意聲明。

final params = ConsentRequestParameters();
ConsentInformation.instance.requestConsentInfoUpdate(
  params,
  () async {
    // The consent information state was updated.
    // You are now ready to check if a form is available.
  },
  (FormError error) {
    // Handle the error
  },
);

載入表單 (如果有的話)

用來取得同意聲明的表單建立在 Ad ManagerUI 中。當您決定向使用者徵求同意後,下一步就是判斷是否有表單可供填寫。表單無法使用的原因有很多,例如:

  • 使用者已啟用限制廣告追蹤功能。
  • 您已標記為未滿規定年齡的使用者。

如要檢查表單是否可用,請在 ConsentInformation 例項上使用 isConsentFormAvailable() 方法。新增用於載入表單的包裝函式方法:

final params = ConsentRequestParameters();
ConsentInformation.instance.requestConsentInfoUpdate(
  params,
  () async {
    if (await ConsentInformation.instance.isConsentFormAvailable()) {
      loadForm();
    }
  },
  (FormError error) {
    // Handle the error
  },
);

如要載入表單,請在 ConsentForm 類別上使用靜態 loadConsentForm() 方法。變更 loadForm() 方法,如下所示:

void loadForm() {
  ConsentForm.loadConsentForm(
    (ConsentForm consentForm) async {
      // Present the form
    },
    (FormError formError) {
      // Handle the error
    },
  );
}

視需要填寫表單

如要顯示同意聲明表單,請對 ConsentForm 類別使用 show() 方法。您必須判斷使用者是否需要同意才能顯示表單。如要檢查是否需要同意,請對 ConsentInformation 物件呼叫 getConsentStatus(),系統會傳回 ConsentStatus 類型的列舉。ConsentStatus 有四種可能的值:

  • unknown:同意聲明狀態不明。
  • required:必須取得使用者同意聲明,但尚未取得。
  • notRequired:不需要使用者同意。例如,使用者不在歐洲經濟區或英國。
  • obtained:已取得使用者同意聲明。未定義個人化設定。

變更 loadForm 方法,如下所示:

void loadForm() {
  ConsentForm.loadConsentForm(
    (ConsentForm consentForm) async {
      var status = await ConsentInformation.instance.getConsentStatus();
      if (status == ConsentStatus.required) {
        consentForm.show(
          (FormError formError) {
            // Handle dismissal by reloading form
            loadForm();
          },
        );
      }
    },
    (formError) {
      // Handle the error
    },
  );
}

如果不需要同意聲明,您可以保留表單參考資料,讓使用者能變更同意聲明狀態。

測試

強制設定地理位置

UMP SDK 可讓您使用 ConsentDebugSettings.debugGeography,測試應用程式行為,就像裝置在歐洲經濟區境內一樣。

您必須在應用程式的偵錯設定中提供測試裝置的雜湊 ID,才能使用偵錯功能。如果您在呼叫 requestConsentInfoUpdate() 時未設定這個值,應用程式會在執行時記錄必要的 ID 雜湊。

ConsentDebugSettings debugSettings = ConsentDebugSettings(
  debugGeography: DebugGeography.debugGeographyEea,
  testIdentifiers: ['TEST-DEVICE-HASHED-ID']);

ConsentRequestParameters params = ConsentRequestParameters(
  consentDebugSettings: debugSettings);

ConsentInformation.instance.requestConsentInfoUpdate(
  params,
  () {},
  (error) {});

如要強制 SDK 將裝置視為不在歐洲經濟區或英國境內,請使用 DebugGeography.debugGeographyNotEea。請注意,偵錯設定僅適用於測試裝置。由於模擬器預設為啟用測試,因此無須將模擬器新增至裝置 ID 清單。

使用 UMP SDK 測試應用程式時,建議您重設 SDK 狀態,以便模擬使用者的首次安裝體驗。SDK 提供 reset 方法即可執行這項操作。

ConsentInformation.instance.reset();

如果您決定將 UMP SDK 從專案中完全移除,建議您呼叫重設。

中介服務

如果您使用中介服務,則必須根據選擇在自家應用程式中使用的同意聲明架構,以不同方式處理中介服務合作夥伴的同意聲明。Google 支援 IAB 同意聲明架構,但也可讓您擁有自訂的同意聲明解決方案。以下詳細說明如何處理上述各選項的中介服務。 進一步瞭解同意聲明解決方案

將中介服務合作夥伴加進已發布的 GDPR 訊息

UMP SDK 和 Mobile Ads SDK 都不會將同意聲明資訊轉送給中介服務合作夥伴。使用 IAB 解決方案時,UMP SDK 會將同意聲明狀態資訊寫入本機儲存空間,而每個中介服務合作夥伴的 SDK 有責任讀取適當的金鑰。請務必與各個第三方聯播網聯絡,確認對方是否支援 IAB 解決方案。

如果您使用自訂同意聲明解決方案,您有責任將應用程式的同意聲明狀態通知第三方 SDK。每個中介服務聯播網各有專門用來處理同意聲明的 API,詳情請參閱 AndroidiOS 說明。

如要瞭解如何從 Dart 呼叫這些 API,請參閱使用網路特定 API

Google Mobile Ads SDK 的預設行為是放送個人化廣告。 如果使用者同意只接收非個人化廣告,您可以使用下列程式碼設定 AdManagerAdRequest 物件,指定只請求非個人化廣告:

final AdManagerAdRequest = AdManagerAdRequest(nonPersonalizedAds: true);

根據 Google 的《歐盟地區使用者同意授權政策》規定,您必須取得 廣告技術供應商 為發布商 ID 設定的完整清單,才能顯示個人化廣告,即使您使用第三方中介服務解決方案向 Google 傳送廣告請求也一樣。