配置 Analytics 数据收集和使用方式



本页介绍了 Google Analytics 提供的一些功能,您可以使用这些功能控制 Analytics 数据的收集和使用。

停用 Analytics 数据收集

在某些情况下,您可能出于某些原因(比如要获得最终用户同意或履行法律义务),需要暂时或永久停用 Analytics 数据收集。Google Analytics 提供了多个用于暂时或永久停用 Analytics 数据收集的选项。您可以组合使用这些选项以应对多种使用场景。

暂时停用数据收集

如果您出于某些原因(例如为了在收集数据前征得最终用户的同意)希望暂时停用 Analytics 数据收集功能,可以在应用的 Info.plist 文件中,将 FIREBASE_ANALYTICS_COLLECTION_ENABLED 的值设置为 NO(布尔值)。例如,在源 XML 中查看:

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

如需重新启用数据收集功能(例如在最终用户表示同意之后),请调用 AnalyticssetAnalyticsCollectionEnabled 实例方法。例如:

Swift

注意:此 Firebase 产品不适用于 macOS 目标平台。
Analytics.setAnalyticsCollectionEnabled(true)

Objective-C

注意:此 Firebase 产品不适用于 macOS 目标平台。
[FIRAnalytics setAnalyticsCollectionEnabled:YES];

Unity

Firebase.Analytics.FirebaseAnalytics.SetAnalyticsCollectionEnabled(true);

如果您因任何原因需要再次暂停数据收集,则可调用以下代码,在您重新启用数据收集之前,数据收集将处于暂停状态。

Swift

注意:此 Firebase 产品不适用于 macOS 目标平台。
Analytics.setAnalyticsCollectionEnabled(false)

Objective-C

[FIRAnalytics setAnalyticsCollectionEnabled:NO];

Unity

Firebase.Analytics.FirebaseAnalytics.SetAnalyticsCollectionEnabled(false);

即使应用多次执行,通过 setAnalyticsCollectionEnabled 方法设置的值也会保持不变,并覆盖应用的 Info.plist 文件中 FIREBASE_ANALYTICS_COLLECTION_ENABLED 的值。在您为 setAnalyticsCollectionEnabled 设置值后,Analytics 数据收集的状态将保持到 setAnalyticsCollectionEnabled 再次调用,即使用户关闭再重新打开应用也是如此。

永久停用数据收集

如果您需要在应用的某个版本中永久停用 Analytics 数据收集功能,请在应用的 Info.plist 文件中将 FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED 设置为 YES(布尔值)。将 FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED 设置为 YES(布尔值)优先于应用的 Info.plistFIREBASE_ANALYTICS_COLLECTION_ENABLED 对应的任何值以及使用 setAnalyticsCollectionEnabled 设置的任何值。

如需重新启用数据收集,请从您的 Info.plist 中移除 FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED。将 FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED 设置为 NO(布尔值)没有任何作用,所导致的行为与未在 Info.plist 文件中设置 FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED 时一样。

停用 IDFA 收集

如果您通过在应用的 Podfile 中添加 pod 'Firebase/Analytics' 的方式通过 CocoaPods 安装了 Firebase,并且想要在 Apple 应用中停用 IDFA(设备的广告标识符)收集,请确保您的应用中不包含 AdSupport 框架。

如需在未启用任何 IDFA 收集功能的情况下安装 Firebase,请使用以下子规范(而不是 pod 'Firebase/Analytics'):

pod 'Firebase/AnalyticsWithoutAdIdSupport'

如需详细了解 IDFA,请参阅 Apple 的文档:

停用 IDFV 收集

如果您希望在 Apple 应用中停用 IDFV(供应商标识符)收集,请在应用的 Info.plist 文件中将 GOOGLE_ANALYTICS_IDFV_COLLECTION_ENABLED 的值设置为 NO(布尔值)。

控制个性化广告的数据收集

如果您已将 Google Analytics 项目与广告账号相关联或以其他方式启用了广告集成,或已选择启用数据共享,那么您的 Analytics 数据可能可以用在个性化广告中。这意味着您可以使用收集的事件(例如 first_open)创建和部署受众群体名单来开展再营销,除非您指明此类数据不适用于个性化广告。

您可以通过以下任一方法以编程方式控制是否应将用户的 Google Analytics 数据用于个性化广告:

通过用户属性停用个性化广告功能

Google 的意见征求模式 API 是用于启用和停用个性化广告的推荐方式。

不过,如果您的应用尚未使用意见征求模式,您可以使用以下选项控制个性化设置。

如需默认停用个性化广告行为,请在应用的 Info.plist 文件中将 GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_PERSONALIZATION_SIGNALS 的值设置为 NO(布尔值)。

通过用户属性重新启用个性化广告功能

如果您使用 AnalyticsUserPropertyAllowAdPersonalizationSignals 参数来控制广告个性化,则可以使用 setUserProperty 方法重新启用广告个性化,如下所示:

Swift

注意:此 Firebase 产品不适用于 macOS 目标平台。
Analytics.setUserProperty("true", forName: AnalyticsUserPropertyAllowAdPersonalizationSignals)

Objective-C

注意:此 Firebase 产品不适用于 macOS 目标平台。
[FIRAnalytics setUserPropertyString:@"YES" forName:kFIRUserPropertyAllowAdPersonalizationSignals];

Unity

Firebase.Analytics.FirebaseAnalytics.SetUserProperty(FirebaseAnalytics.UserPropertyAllowAdPersonalizationSignals, true);

如果您已选择暂时停用 Analytics 数据收集(例如,在最终用户同意之前停用),并且您希望在为用户重新启用 Analytics 数据收集时控制个性化广告功能,请确保您为指定此设置进行的调用先于为重新启用 Analytics 数据收集进行的调用。例如:

Swift

注意:此 Firebase 产品不适用于 macOS 目标平台。
Analytics.setUserProperty(..., forName: AnalyticsUserPropertyAllowAdPersonalizationSignals)
Analytics.setAnalyticsCollectionEnabled(true)

Objective-C

注意:此 Firebase 产品不适用于 macOS 目标平台。
[FIRAnalytics setUserPropertyString:... forName:kFIRUserPropertyAllowAdPersonalizationSignals];
[FIRAnalytics setAnalyticsCollectionEnabled:YES];

Unity

Firebase.Analytics.FirebaseAnalytics.SetUserProperty(FirebaseAnalytics.UserPropertyAllowAdPersonalizationSignals, ...);
Firebase.Analytics.FirebaseAnalytics.SetAnalyticsCollectionEnabled(true);

确认您的设置

当您已通过上面定义的某种机制为用户停用广告个性化信号时,从该用户的设备记录的后续事件捆绑包将包含名为 non_personalized_ads 的用户属性(其值为 1),以指明该捆绑包中的事件不适用于个性化广告。停用个性化广告不会影响将数据用于衡量目的,包括报告和归因。

查看您的配置更改

Google Analytics 设置进行更改后,SDK 就会下载更改的内容。该过程既快速又无缝,因此您可以快速测试您的更改。当您在 Analytics 中进行更改时,可能需要几分钟时间才能在应用中完成部署。如果您的应用已发布,则完整的部署过程最多可能需要一个小时才能完成。