@nstudio/nativescript-mixpanel
Mixpanel 追踪的 NativeScript 插件
npm i --save @nstudio/nativescript-mixpanel

NativeScript Mixpanel

GitHub Workflow Status npm npm npm

一个提供与 Mixpanel 集成的 NativeScript 插件。

安装

从您的命令提示符/终端转到您的应用程序的根目录并执行

tns plugin add @nstudio/nativescript-mixpanel

用法

示例

这可以在应用程序的各个位置初始化,例如在服务中。然而,建议在您的 main.ts 文件中初始化此插件。

初始化

import {
NativeScriptMixpanel,
NativeScriptMixpanelPeople,
} from "@nstudio/nativescript-mixpanel";

const MIXPANEL_TOKEN = "ABCDEF12345678";

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

识别

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

如果您选择,您可以分配自己的用户 ID。当用户在多个设备或平台上使用您的应用程序(例如,Web 和移动)时,这特别有用。要分配自己的 distinct_ids,您可以使用 identify 方法。

import { NativeScriptMixpanel } from "@nstudio/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

用自定义日志记录器绑定替换默认控制台日志记录器。

如果您打算使用自定义日志记录器或绑定日志记录器,应在 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 识别的用户。

此调用不会为 People Analytics 识别用户;要这样做,请参阅 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。

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

registerSuperProperties(properties: JSON): void

注册将在后续调用track时发送的属性。

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发送People更新和跟踪调用。此方法将内部跟踪对项目的opt-in事件。

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

清除调整、所有distinct_ids、superProperties和推送注册,但不清除引用信息。

NativeScriptMixpanel.reset();

贡献者

  • Alex Miller
  • Antonio Cueva Urraco
  • Blake Nussey
  • Demetrio Filocamo