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

本頁內容適用於在應用程式中使用 Google Analytics for Firebase SDK,並想整合同意聲明模式的開發人員。如需同意聲明模式簡介,請參閱「同意聲明模式總覽」一文。

Google Analytics (分析) 提供同意聲明模式,可根據使用者的同意聲明狀態調整 SDK 的行為。您可以透過基本或進階的方式導入同意聲明模式。如果不確定該採用基本或進階同意聲明模式,請進一步瞭解基本與進階同意聲明模式,並確認自己的公司準則。

事前準備

您需要先導入下列項目,才能管理使用者同意聲明:

  • Google Analytics for Firebase SDK
  • 用來擷取使用者同意聲明的同意聲明設定橫幅

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

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

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

  1. 開啟應用程式的 AndroidManifest.xml 檔案。
  2. 新增同意聲明模式鍵/值組合。該鍵會說明同意聲明類型,值則代表同意聲明狀態。值可以是 true (表示已授予同意聲明),或 false (表示同意聲明遭拒)。設定下列項目:

    • 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)
}