為應用程式設定同意聲明模式

本頁面適用於在應用程式中使用 Google Analytics for Firebase SDK,且想整合同意聲明模式的開發人員。如要瞭解同意聲明模式,請參閱「同意聲明模式總覽」。

Google Analytics 提供同意聲明模式,可根據使用者的同意聲明狀態調整 SDK 行為。您可以以基本或進階方式導入同意聲明模式。如果不確定應導入基本或進階同意聲明模式,可進一步瞭解基本和進階同意聲明模式,並參考貴公司的規範。

事前準備

您必須先實作以下項目,才能管理使用者同意聲明:

  • Google Analytics for Firebase SDK
  • 用於收集使用者同意聲明的同意聲明設定橫幅

如要設定同意聲明模式,您必須:

  1. 設定預設的同意聲明狀態

系統不會預設任何同意聲明模式值。如要為應用程式設定預設同意聲明狀態,請按照下列步驟操作:

  1. 開啟應用程式的 AndroidManifest.xml 檔案。
  2. 新增同意聲明模式鍵/值組合。鍵會說明同意聲明類型,而值則代表同意聲明狀態。值可以是 true,表示已授予同意聲明,或是 false,表示同意聲明遭到拒絕。

    根據《歐洲經濟區 (EEA) 流量同意聲明模式》更新,ad_user_dataad_personalization 可以設為 eu_consent_policy 值,這樣一來,使用者就無法在受到《歐盟地區使用者同意授權政策》規範的地區取得同意。

    設定下列欄位:

    • google_analytics_default_allow_analytics_storage
    • google_analytics_default_allow_ad_storage
    • google_analytics_default_allow_ad_user_data
    • google_analytics_default_allow_ad_personalization_signals
  3. 儲存變更。接下來,請導入更新同意聲明值的機制。

舉例來說,如要預設為所有參數設定所有授權同意聲明,請按照下列步驟操作:

<meta-data android:name="google_analytics_default_allow_analytics_storage" android:value="true" />
<meta-data android:name="google_analytics_default_allow_ad_storage" android:value="true" />
<meta-data android:name="google_analytics_default_allow_ad_user_data" android:value="true" />
<meta-data android:name="google_analytics_default_allow_ad_personalization_signals" android:value="true" />

如要在應用程式啟動後更新同意聲明值,請呼叫 setConsent 方法。

setConsent 方法設定的值會覆寫預設設定,並在應用程式執行期間保留。即使使用者關閉應用程式並重新開啟,值仍會維持在該狀態,直到再次呼叫 setConsent 為止。setConsent 只會更新您指定的參數。

如果使用者撤銷先前同意 Analytics 或廣告儲存資料,Google Analytics 會刪除所有使用者資源,包括 ad_personalization 的同意聲明。如要保留使用者對廣告個人化功能的同意選擇,請使用 setConsent (Kotlin+KTX | Java) 還原廣告個人化功能的先前值。

以下範例顯示 setConsent 方法將不同的同意值更新為 granted

Java

// Set consent types.
Map<ConsentType, ConsentStatus> consentMap = new EnumMap<>(ConsentType.class);
consentMap.put(ConsentType.ANALYTICS_STORAGE, ConsentStatus.GRANTED);
consentMap.put(ConsentType.AD_STORAGE, ConsentStatus.GRANTED);
consentMap.put(ConsentType.AD_USER_DATA, ConsentStatus.GRANTED);
consentMap.put(ConsentType.AD_PERSONALIZATION, ConsentStatus.GRANTED);

mFirebaseAnalytics.setConsent(consentMap);

Kotlin

Firebase.analytics.setConsent {
  analyticsStorage(ConsentStatus.GRANTED)
  adStorage(ConsentStatus.GRANTED)
  adUserData(ConsentStatus.GRANTED)
  adPersonalization(ConsentStatus.GRANTED)
}

如果使用者決定撤銷同意聲明,請務必相應更新同意聲明狀態

為持續維護以隱私權為重的數位廣告生態,Google 將強化落實歐盟地區使用者同意授權政策

進一步瞭解 Google 的歐洲經濟區流量同意聲明模式更新

除了廣告儲存空間和數據分析儲存空間外,同意聲明模式使用者還需要傳送兩個新參數:

  1. 更新應用程式的 AndroidManifest.xml,加入以下項目:

    <meta-data android:name="google_analytics_default_allow_ad_user_data" android:value="true" />
    <meta-data android:name="google_analytics_default_allow_ad_personalization_signals" android:value="true" />
    ```
    
  2. 更新同意聲明呼叫,加入廣告使用者資料和廣告個人化功能的參數:

    Java

    // Set consent types.
    Map<ConsentType, ConsentStatus> consentMap = new EnumMap<>(ConsentType.class);
    consentMap.put(ConsentType.ANALYTICS_STORAGE, ConsentStatus.GRANTED);
    consentMap.put(ConsentType.AD_STORAGE, ConsentStatus.GRANTED);
    consentMap.put(ConsentType.AD_USER_DATA, ConsentStatus.GRANTED);
    consentMap.put(ConsentType.AD_PERSONALIZATION, ConsentStatus.GRANTED);
    
    mFirebaseAnalytics.setConsent(consentMap);
    

    Kotlin

    Firebase.analytics.setConsent {
      analyticsStorage(ConsentStatus.GRANTED)
      adStorage(ConsentStatus.GRANTED)
      adUserData(ConsentStatus.GRANTED)
      adPersonalization(ConsentStatus.GRANTED)
    }
    

您可以查看應用程式的記錄訊息,確認同意聲明設定是否正常運作。

請按照下列步驟操作:

  1. 在裝置上啟用詳細記錄
  2. 在 Android Studio 的 Logcat 中,找出開頭為 Setting consent 的記錄訊息。舉例來說,如果啟用了廣告儲存空間,您會看到下列記錄訊息:

    Setting consent, ... AD_STORAGE=granted