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

本頁內容適用於在應用程式中使用 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 (分析) 收集功能,請在應用程式的 Info.plist 檔案中將 FIREBASE_ANALYTICS_COLLECTION_ENABLED 的值設為 false (布林值)。例如,在來源 XML 中檢視:

<key>FIREBASE_ANALYTICS_COLLECTION_ENABLED</key><false/>

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

  1. 開啟應用程式的 info.plist 檔案。
  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. 儲存變更。接下來,導入更新同意聲明值的機制。

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

<key>GOOGLE_ANALYTICS_DEFAULT_ALLOW_ANALYTICS_STORAGE</key> <true/>
<key>GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_STORAGE</key> <true/>
<key>GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_USER_DATA</key> <true/>
<key>GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_PERSONALIZATION_SIGNALS</key> <true/>

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

使用者提供同意聲明後,使用 setAnalyticsCollectionEnabled() 執行個體方法再次啟用 Analytics (分析) 收集功能。

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

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

Swift

swift Analytics.setAnalyticsCollectionEnabled(true)

Objective-C

obj-c [FIRAnalytics setAnalyticsCollectionEnabled:YES];

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

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

如果使用者撤銷先前授予 Analytics (分析) 或廣告儲存空間的同意聲明,Google Analytics (分析) 會刪除所有使用者屬性,包括對 ad_personalization 的同意聲明。如要保留使用者對廣告個人化的同意聲明選項,請使用 setConsent (Swift | Obj-C)。

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

Swift

Analytics.setConsent([
  .analyticsStorage: .granted,
  .adStorage: .granted,
  .adUserData: .granted,
  .adPersonalization: .granted,
])

Objective-C

[FIRAnalytics setConsent:@{
FIRConsentTypeAnalyticsStorage : FIRConsentStatusGranted,
FIRConsentTypeAdStorage : FIRConsentStatusGranted,
FIRConsentTypeAdUserData : FIRConsentStatusGranted,
FIRConsentTypeAdPersonalization : FIRConsentStatusGranted,
}];

如果使用者決定撤銷同意聲明,請務必據此更新同意聲明狀態,並使用 setAnalyticsCollectionEnabled() 再次停用 Analytics (分析) 資料收集功能。

為履行 Google 對保護隱私權數位廣告生態的承諾,我們加強落實歐盟地區使用者同意授權政策

進一步瞭解 Google 的「歐洲經濟區 (EEA) 流量同意聲明模式更新」一文。

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

  1. 更新應用程式的 info.plist,在其中加入下列內容:

    <key>GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_USER_DATA</key> <true/>
    <key>GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_PERSONALIZATION_SIGNALS</key> <true/>
    
  2. 更新同意聲明呼叫,加入廣告使用者資料和廣告個人化的參數:

    Swift

    Analytics.setConsent([
    .analyticsStorage: .granted,
    .adStorage: .granted,
    .adUserData: .granted,
    .adPersonalization: .granted,
    ])
    

    Objective-C

    [FIRAnalytics setConsent:@{
      FIRConsentTypeAnalyticsStorage : FIRConsentStatusGranted,
      FIRConsentTypeAdStorage : FIRConsentStatusGranted,
      FIRConsentTypeAdUserData : FIRConsentStatusGranted,
      FIRConsentTypeAdPersonalization : FIRConsentStatusGranted,
    }];
    

您可以查看應用程式的 Xcode 偵錯主控台,確認同意聲明設定是否正常運作。

請按照下列步驟操作:

  1. 在裝置上啟用詳細記錄
  2. 在 Xcode 偵錯主控台中,找出:

    • ad_storage
    • analytics_storage
    • ad_user_data
    • ad_personalization

    例如,若廣告儲存功能已啟用,您就會看到以下訊息:

    ad_storage is granted.