@enduco/nativescript-mixpanel
作者:enduco | v1.0.4
添加插件描述
npm i --save @enduco/nativescript-mixpanel

@enduco/nativescript-mixpanel

一个NativeScript插件,用于提供与Mixpanel集成的功能。

安装

从您的命令提示符/终端转到您的应用程序根文件夹,并执行

ns plugin add @enduco/nativescript-mixpanel

使用

示例

这可以在应用程序的多个位置初始化,例如在服务中。但是,建议在您的 main.ts 文件中初始化。

初始化

import {
NativescriptMixpanel,
NativescriptMixpanelPeople,
} from "@enduco/nativescript-mixpanel";

const MIXPANEL_TOKEN = "ABCDEF12345678";

// Init Mixpanel itself
NativescriptMixpanel.init(MIXPANEL_TOKEN);

识别

Mixpanel 库将为安装您的应用程序的每个唯一用户分配一个默认的唯一标识符。这个独特的ID被保存到设备存储中,以便在会话之间持久化。

如果您选择,您可以分配您自己的用户ID。如果您希望用户在多个设备或平台(例如,网页和移动端)上使用您的应用程序,这将非常有用。要分配您自己的 distinct_ids,您可以使用 identify 方法。

import { NativescriptMixpanel } from "@enduco/nativescript-mixpanel";

const someId = "test identity";
NativescriptMixpanel.identify(someId);
// It is recommended to identify both the base and people instances.
NativescriptMixpanel.getPeople().identify(someId);

自定义日志记录/日志绑定

如果您需要将日志输出(例如错误)重定向到您自己的应用程序日志记录实现,您可以通过一个简单的对象提供对您的日志记录器的绑定。

如果您使用此功能,建议在您调用 init 之前调用 useLogger

const customLogger: NativescriptMixpanelLogger = {
log: (tag: string, msg: string) => someOtherLogger.log(tag, msg),
info: (tag: string, msg: string) => someOtherLogger.info(tag, msg),
warn: (tag: string, msg: string) => someOtherLogger.warn(tag, msg),
error: (tag: string, msg: string) => someOtherLogger.error(tag, msg),
};
NativescriptMixpanel.useLogger(customLogger);

API

NativescriptMixpanel

init(token: string): void

获取与您的 Mixpanel 项目令牌关联的 MixpanelAPI 实例。

参数 类型 描述
token string
NativescriptMixpanel.init("token");

useLogger(providedLogger: NativescriptMixpanelLogger): void

用自定义日志记录器绑定替换默认的 console 日志记录器。

如果您打算使用自定义日志记录器或绑定日志记录器,应在 init 之前调用此,以确保正确输出任何错误。

参数 类型 描述
providedLogger NativescriptMixpanelLogger 一个新的日志记录器或绑定日志记录器的对象
const customLogger: NativescriptMixpanelLogger = {
log: (tag: string, msg: string) => someOtherLogger.log(tag, msg),
info: (tag: string, msg: string) => someOtherLogger.info(tag, msg),
warn: (tag: string, msg: string) => someOtherLogger.warn(tag, msg),
error: (tag: string, msg: string) => someOtherLogger.error(tag, msg),
};
NativescriptMixpanel.useLogger(customLogger);

identify(distinctId: string): void

将所有未来的 track(string, JSON) 调用与通过给定 distinct id 识别的用户关联。

此调用不会识别用户进行人群分析;要执行此操作,请参阅 MixpanelAPI.People.identify(String)。Mixpanel 建议使用相同的 distinct_id 进行这两个调用,并使用易于与给定用户关联的 distinct_id,例如服务器端账户标识符。

在调用 identify 之前发出的 track(string, JSON) 调用将使用由库自动生成的匿名本地生成的 distinct id,这意味着最好尽早调用 identify,以确保您的 Mixpanel 管道和保留分析可以继续在整个用户生命周期内跟踪用户。我们建议在用户进行身份验证时调用 identify。

一旦调用 identify,本地 distinct id 将在您的应用程序重启后持续存在。

参数 类型 描述
distinctId string 一个字符串,唯一标识此用户。使用相同 distinct_id 发送到 Mixpanel 的事件将被视为与同一访问者/客户的关联,因此请确保为要跟踪的每个用户提供的值在全球范围内是唯一的。
NativescriptMixpanel.identify("test identity");

getDistinctId(): string

返回当前用于使用 track 发送事件关联用户的字符串 ID。在调用 identify 之前,这将是由库自动生成的 ID。

const distinctId = NativescriptMixpanel.getDistinctId();

alias(alias: string): void

此函数将创建一个指向当前事件distinct_id的别名,该distinct_id可能在调用identify(string)之前由Mixpanel库随机生成。

此调用之后不会识别用户。如果您希望新的别名用于事件和人物,则必须仍然调用identify和NativescriptMixpanel.getPeople().identify。

参数 类型 描述
alias string 新的distinct_id
NativescriptMixpanel.alias("test alias");

registerSuperProperties(properties: JSON): void

注册将在每次跟踪调用时发送的属性。

SuperProperties是一组属性,将随每个事件发送到Mixpanel,并超出您应用程序的生命周期。

使用registerSuperProperties设置superProperty将存储新的superProperty,可能会覆盖任何具有相同名称的现有superProperty。

即使您的应用程序被完全移出内存,SuperProperties也会持续存在。要删除superProperty,请调用unregisterSuperProperty或clearSuperProperties。

参数 类型 描述
properties JSON 包含要注册的super属性的自定义JSON对象
NativescriptMixpanel.registerSuperProperties({
"Test Type": "test value",
});

unregisterSuperProperty(superPropertyName: string): void

删除单个superProperty,以便它不会随未来调用track(String, JSONObject)发送。

如果已注册具有给定名称的superProperty,它将从现有的superProperties中永久删除。

要清除所有superProperties,请使用clearSuperProperties。

参数 类型 描述
superPropertyName string 要取消注册的属性的名称
NativescriptMixpanel.unregisterSuperProperty("Test Type");

clearSuperProperties(): void

擦除所有已注册的superProperties。

在调用clearSuperProperties方法之前注册的特定superProperties将不会包含在未来的跟踪调用中。

要删除单个superProperty,请使用unregisterSuperProperty。

NativescriptMixpanel.clearSuperProperties();

track(eventName: string, properties?: JSON): void

跟踪一个事件。

每次调用track最终都会将数据点发送到Mixpanel。这些数据点是您衡量、计数和分解以创建Mixpanel报告的内容。事件有一个字符串名称和一个可选的名称/值对集合,该集合描述了该事件的属性。

参数 类型 描述
eventName string 要发送的事件的名称
properties JSON 包含要包含在此事件中的属性键值对的JSON对象
NativescriptMixpanel.track("test event", {
tracking: "this",
});

timeEvent(eventName: string): void

开始跟踪事件的计时。调用timeEvent("事件名称")不会发送事件,但您最终调用track("事件名称")时,您跟踪的事件将包含一个"$duration"属性,表示两次调用之间的秒数。

参数 类型 描述
eventName string 要跟踪计时的事件名称
const eventName = "Time Event Test";
NativescriptMixpanel.timeEvent(eventName);

await new Promise((resolve) => setTimeout(resolve, 2000));
NativescriptMixpanel.track(eventName);

getPeople(): NativescriptMixpanelPeople

返回一个NativescriptMixpanelPeople实例,可用于识别和设置属性。

const people = NativescriptMixpanel.getPeople();

optInTracking(): void

使用此方法让已选择退出跟踪的用户选择加入。

使用此方法后,人们更新和跟踪调用将发送到Mixpanel。此方法将内部跟踪一个选择加入事件到您的项目中。

const people = NativescriptMixpanel.optInTracking();

optOutTracking(): void

使用此方法让用户选择退出跟踪。

尚未刷新的事件和人物更新将被删除。在调用此方法之前调用flush(),如果您想在之前发送所有队列到Mixpanel。

此方法还将从设备中删除任何用户相关信息。

const people = NativescriptMixpanel.optOutTracking();

flush(): void

将所有队列的Mixpanel事件和人物分析更改推送到Mixpanel服务器。

事件和人物消息将在您应用程序的生命周期中逐渐推送。这意味着为了确保在您的应用程序关闭时所有消息都发送到Mixpanel,您需要调用flush(),让Mixpanel库知道它应将所有剩余的消息发送到服务器。

我们强烈建议在主应用程序活动的onDestroy()方法中调用flush()。

NativescriptMixpanel.flush();

reset(): void

清除所有调整、所有不同的_ids、所有superProperties和推送注册信息从持久存储。不会清除引用信息。

NativescriptMixpanel.reset();