@nativescript/firebase-analytics
NativeScript Firebase - 分析
npm i --save @nativescript/firebase-analytics

@nativescript/firebase-analytics

简介

此插件允许您将 Firebase 的 Google Analytics 添加到您的应用中。

注意:请与 @nativescript/firebase-core 插件一起使用此插件以在您的应用中初始化 Firebase。

分析收集您应用的用法和行为数据。其主要关注点包括

  • 事件:这些是在您的应用中发生的事件,例如用户操作、系统事件或错误。Google Analytics 收集三种类型事件的详细信息:自动收集推荐自定义 事件。

  • 用户属性:您定义的属性,用于描述您的用户基础中的各个部分,例如语言偏好或地理位置。

image

安装

通过在项目的根目录中运行以下命令安装插件。

npm install @nativescript/firebase-analytics

使用 @nativescript/firebase-analytics

以下示例展示了如何使用 @nativescript/firebase-analytics 记录自定义和预定义事件。

记录自定义事件

分析还允许开发者记录自定义事件。如果您已经熟悉 Google Analytics,此方法相当于在 gtag.js 中使用事件命令。

要向分析记录自定义事件,请调用 logEvent 方法,在 分析 类的实例上传递自定义事件名称作为第一个参数,事件数据对象作为第二个参数。

请注意,原始数据类型或原始数据类型的数组将在您的 Firebase 分析控制台中记录。

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 符号的任何应用程序进入儿童类别。

此外,如果应用程序访问 IDFA iOS 符号,则必须实现苹果公司的 App Tracking Transparency(或 ATT)。然而,如果应用程序不使用 IDFA 且以与 ATT 兼容的方式处理数据,则可消除此 ATT 要求。

如果您需要避免使用 IDFA 同时仍使用分析,请在您的 Podfile 中定义以下变量

$NSFirebaseAnalyticsWithoutAdIdSupport = true

在 pod 安装过程中,使用该变量安装了一个新的 Analytics With No Ad Ids pod,该 pod 由 firebase-ios-sdk 团队创建,并允许在儿童类别应用程序中使用 Firebase Analytics 以及无需处理 App Tracking Transparency(假设应用程序的其它部分不处理需要 ATT 的数据)

注意,使用 IDFA 之外的 Firebase Analytics 不兼容 AdMob。

演示应用

您可以在 这里 找到示例应用程序。

分析类

该插件通过 Analytics 类为您提供 Firebase Analytics 的管理。Analytics 类具有以下属性和方法。

属性

属性 类型
appInstanceId 字符串

logEvent()

firebase().analytics()
.logEvent(name, parameters)

将指定的事件数据发送到 Google Analytics。

参数 类型 描述
name 字符串 要记录的事件的名称。
parameters 事件参数 指定事件数据的对象。有关保留事件的 parameters 支持属性列表,请访问 FirebaseAnalytics.Param Constants Summary

setUserId()

firebase().analytics().setUserId(userId)

允许您为使用您的应用程序的个人存储用户 ID。有关设置用户 ID 的更多信息,请访问 此处


resetAnalyticsData()

firebase().analytics().resetAnalyticsData()

请参阅 此处 的描述。


setAnalyticsCollectionEnabled()

firebase().analytics().setAnalyticsCollectionEnabled(analyticsCollectionEnabled: boolean)

这是一个用于手动启用或禁用分析数据收集的方法。

  • analyticsCollectionEnabled:一个 boolean 值。如果设置为 true,则收集分析数据。如果设置为 false,则禁用分析数据收集。

setUserProperty()

firebase().analytics().setUserProperty(name: string, value: string)

设置用户属性。有关更多信息,请参阅 设置用户属性

参数 类型 描述
name 字符串 要设置的属性名称。
value 字符串 用户属性的值。

setSessionTimeoutInterval()

firebase().analytics().setSessionTimeoutInterval(sessionTimeoutInterval: number)

请参阅 setSessionTimeoutDuration 的描述。

参数 类型 描述
sessionTimeoutInterval 数字 不活动的持续时间,以毫秒为单位。默认为 180000030 分钟)。

setDefaultEventParameters()

firebase().analytics().setDefaultEventParameters(parameters)

请参阅 此处 的描述。

参数 类型 描述
parameters 事件参数 参数对象。有关保留事件的 parameters 支持属性列表,请访问 FirebaseAnalytics.Param Constants Summary

事件参数

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