插件
分析
@nativescript/firebase-analytics
简介
此插件允许您将 Firebase 的 Google Analytics 添加到您的应用中。
注意
将此插件与 @nativescript/firebase-core 插件一起使用以在您的应用中初始化 Firebase。
分析收集应用的使用和行为数据。其两个主要关注点是
事件:这些是发生在您的应用中的事件,例如用户操作、系统事件或错误。Google Analytics 收集三种类型事件的信息:自动收集、推荐 和 自定义 事件。
用户属性:您定义的用于描述用户群细分的属性,例如语言偏好或地理位置。
安装
通过在项目根目录中运行以下命令来安装插件。
npm install @nativescript/firebase-analytics
使用 @nativescript/firebase-analytics
以下示例演示了如何使用 @nativescript/firebase-analytics
记录自定义和预定义事件。
记录自定义事件
分析还允许开发人员记录自定义事件。如果您已经熟悉 Google Analytics,则此方法等效于在 gtag.js 中使用 event 命令。
要将自定义事件记录到分析中,请在 Analytics 类的实例上调用 logEvent
方法,并将自定义事件的名称作为第一个参数传递,并将事件数据对象作为第二个参数传递。
请注意,原始数据类型或原始数据类型的数组将记录在您的 Firebase Analytics 控制台中。
import { firebase } from '@nativescript/firebase-core'
import '@nativescript/firebase-analytics'
firebase()
.analytics()
.logEvent('basket', {
id: 3745092,
item: 'mens grey t-shirt',
description: ['round neck', 'long sleeved'],
size: 'L',
})
调用 logEvent
后,在分析实时数据中查找您的事件名称以查看是否已记录。
记录预定义事件
为了帮助您入门,Google Analytics 自动记录不同类型应用中常见的事件,包括零售和电子商务、旅行和游戏应用。
要记录预定义事件,请在 Analytics
类实例上调用 logEvent
方法,并将事件名称和 事件数据 对象传递给它。
以下示例演示了如何记录 select_content 事件。
import { firebase } from '@nativescript/firebase-core'
// Logs in the firebase analytics console as "select_content" event
// only accepts the two object properties which accept strings.
firebase().analytics().logEvent('select_content', {
content_type: 'clothing',
item_id: 'abcd',
})
调用 logEvent
后,在分析实时数据中查找您的事件名称以查看是否已记录。
保留事件
在分析中,自动记录的事件的名称称为 保留事件。使用这些名称创建自定义事件会导致错误。以下是一些保留事件名称
保留事件名称 |
---|
app_clear_data |
error |
first_open_time |
notification_dismiss |
notification_receive |
screen_view |
ad_click |
adunit_exposure |
有关更多保留事件名称,请访问 事件命名规则。
获取应用实例 ID
要获取应用程序的应用实例 ID,请调用 getAppInstanceId
方法。如果 ConsentType.Analytics_Storage = ConsentStatus.Denied
,则在 Android 上返回 null
。
import { firebase } from '@nativescript/firebase-core'
const appInstanceId = firebase().analytics().getAppInstanceId()
在 iOS 上禁用用于广告的标识符与分析
如果应用访问用于广告的标识符 (IDFA) iOS 符号,则 Apple 严格禁止该应用属于儿童类别。
此外,如果应用访问 IDFA iOS 符号,则必须实施 Apple 的 应用跟踪透明度(或 ATT
)。但是,如果应用不使用 IDFA 并且以与 ATT 兼容的方式处理数据,则可以消除此 ATT 要求。
如果需要在仍然使用分析的同时避免使用 IDFA,请在您的 Podfile 中定义以下变量
$NSFirebaseAnalyticsWithoutAdIdSupport = true
在 pod install 期间,使用该变量会安装一个新的 不带广告 ID 的分析
pod(由 firebase-ios-sdk 团队创建),并允许在儿童类别应用中使用 Firebase 分析,以及在无需处理应用跟踪透明度的情况下使用 Firebase 分析(假设您的应用的其他部分不以需要 ATT 的方式处理数据)。
注意,配置 Firebase 分析以在不使用 IDFA 的情况下使用与 AdMob 不兼容。
演示应用
您可以在 此处 找到演示应用。
Analytics 类
该插件通过 Analytics 类为您提供管理 Firebase Analytics 的功能。Analytics 类具有以下属性和方法。
属性
属性 | 类型 |
---|---|
appInstanceId | 字符串 |
logEvent()
firebase().analytics().logEvent(name, parameters)
将指定的事件数据发送到 Google Analytics。
参数 | 类型 | 描述 |
---|---|---|
name | 字符串 | 要记录的事件的名称。 |
parameters | EventParameter | 一个指定事件数据的对象。有关保留事件的 parameters 支持属性列表,请访问 FirebaseAnalytics.Param 常量摘要。 |
setUserId()
firebase().analytics().setUserId(userId)
允许您为使用您的应用的个人存储用户 ID。在此处详细了解设置用户 ID 此处。
resetAnalyticsData()
firebase().analytics().resetAnalyticsData()
请参阅 此处 的描述。
setAnalyticsCollectionEnabled()
firebase().analytics().setAnalyticsCollectionEnabled(analyticsCollectionEnabled: boolean)
一种用于手动禁用或启用分析数据收集的方法。
analyticsCollectionEnabled
:一个布尔值
。如果设置为true
,则收集分析数据。如果设置为false
,则禁用分析收集。
setUserProperty()
firebase().analytics().setUserProperty(name: string, value: string)
设置用户属性。有关更多详细信息,请参阅 设置用户属性。
参数 | 类型 | 描述 |
---|---|---|
name | 字符串 | 要设置的用户属性的名称。 |
value | 字符串 | 用户属性的值。 |
setSessionTimeoutInterval()
firebase().analytics().setSessionTimeoutInterval(sessionTimeoutInterval: number)
有关描述,请参阅 setSessionTimeoutDuration。
参数 | 类型 | 描述 |
---|---|---|
sessionTimeoutInterval | 数字 | 非活动持续时间(以毫秒为单位)。默认为 1800000 (30 分钟)。 |
setDefaultEventParameters()
firebase().analytics().setDefaultEventParameters(parameters)
请参阅 此处 的描述。
参数 | 类型 | 描述 |
---|---|---|
parameters | EventParameter | 参数对象。有关保留事件的 parameters 支持属性列表,请访问 FirebaseAnalytics.Param 常量摘要。 |
EventParameter
interface EventParameter {
[key: string]: any
}
setConsent()
firebase().analytics().setConsent(consentSettings)
请参阅 此处 的描述。
参数 | 类型 | 描述 |
---|---|---|
consentSettings | Map<ConsentType,ConsentStatus> |
ConsentType
enum ConsentType {
Ad_Storage,
Analytics_Storage,
Ad_User_Data,
Ad_Personalization,
}
ConsentStatus
enum ConsentStatus {
Denied,
Granted,
}
handleOpenURL()
firebase().analytics().handleOpenURL(url)
(iOS 特定
)处理应用由 URL 启动时的事件。
参数 | 类型 | 描述 |
---|---|---|
url | 字符串 | 用于打开应用的 URL。 |
handleUserActivity()
firebase().analytics().handleUserActivity(userActivity)
(iOS 特定
) 处理应用收到与用户活动相关联的数据的事件,该数据包含通用链接(在 iOS 9.0 及更高版本上)。
参数 | 类型 | 描述 |
---|---|---|
userActivity | 任意 | 用于打开应用的 URL。 |
许可证
Apache 许可证 2.0 版