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

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

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

事前準備

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

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

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

  1. 使用者同意前:暫時停用 Analytics (分析) 收集功能
  2. 設定預設同意聲明狀態
  3. 根據使用者與同意聲明設定的互動來更新同意聲明狀態
  4. 重新啟用 Analytics (分析) 收集功能

暫時停用 Analytics (分析) 收集功能

同意聲明模式的基本導入是指在使用者同意前,禁止 Google Analytics for Firebase SDK 載入。

如要暫時停用 Analytics (分析) 收集功能,請在應用程式的 AndroidManifest.xml 中將 firebase_analytics_collection_enabled 的值設為 false。例如:

<meta-data android:name="firebase_analytics_collection_enabled" android:value="false" />

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

  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" />

重新啟用 Analytics (分析) 收集功能

使用者表示同意後,使用 setAnalyticsCollectionEnabled() 方法再次啟用 Analytics (分析) 資料收集功能。

setAnalyticsCollectionEnabled 方法設定的值會在應用程式執行期間保留,並覆寫應用程式 AndroidManifest.xml 檔案中 FIREBASE_ANALYTICS_COLLECTION_ENABLED 的值。設定 setAnalyticsCollectionEnabled 的值後,即使使用者關閉並重新開啟應用程式,Analytics (分析) 集合都會保持處於該狀態,直到再次呼叫 setAnalyticsCollectionEnabled 為止。

如要更新 Analytics (分析) 集合,請按照下列步驟操作:

setAnalyticsCollectionEnabled(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)
}