更新记录

5.0.0(2022-08-05)

新增Android和iOS平台App原生插件


平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 11.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 适用版本区间:9 - 15

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


适用范围

TalkingData uni-app SDK 适用于 uni-app 平台开发的 Android 和 iOS 应用。

集成准备-创建应用并获取App ID

App ID 是 TalkingData 分析平台标识一款独立应用的唯一标识,集成 SDK 前需要在 TalkingData 产品中心创建应用并获取相应的 App ID。

步骤:

  1. 注册并登录 https://www.talkingdata.com/,进入产品中心。
  2. 创建应用并获取 App ID。
  3. 如果已创建的应用,请从“产品中心->我的应用->点击应用名称”查看 App ID。

集成准备-统计标准说明

根据各行业场景,TalkingData SDK 提供行业通用事件体系、行业专属事件体系、页面事件体系、自定义事件体系等。

 ● 用户:TalkingData SDK 数据系统中的“用户”,指用户的一台唯一设备。
 ● 激活用户:指下载、安装并首次启动应用成功的用户。
 ● 行业通用事件:适用于所有行业类型的移动App,包含唤醒、注册、登录、添加支付信息、收藏、分享、签到打卡、搜索。
 ● 行业专属事件:针对各行业特性专属定制的事件体系,例如查看商品、通过关卡、课程学习、授信交易等。
 ● 自定义事件:指用户在应用中进行了特定的操作或达成了特定的条件。例如:用户点击了某按钮,完成了某步骤等。自定义事件用于收集任意您期望跟踪的数据。

快速集成-引入SDK

引入SDK

在需要使用 SDK 的文件中调用如下代码引入 SDK 插件:

var TalkingDataSDK = uni.requireNativePlugin("TalkingData-SDK")

权限说明

Android 平台 SDK 需要获取适当的权限才可以正常工作,Plugin 中已配置必选权限,下列为所有权限说明。

权限 用途
INTERNET 允许程序联网和发送统计数据的权限
ACCESS_NETWORK_STATE 允许应用检测网络连接状态,在网络异常状态下避免数据发送,节省流量和电量
READ_PHONE_STATE 允许应用以只读的方式访问手机设备的信息,通过获取的信息来唯一标识用户
ACCESS_WIFI_STATE 获取设备的MAC地址,同样用来标识唯一用户
WRITE_EXTERNAL_STORAGE 用于保存设备信息,以及记录日志
ACCESS_FINE_LOCATION(可选) 可通过GPS获取设备的位置信息,用来修正用户的地域分布数据,使报表数据更准确
ACCESS_COARSE_LOCATION(可选) 用来获取该应用被使用的粗略位置信息
GET_TASKS(可选) 获取当前应用是否在显示应用,可以更精准的统计用户活跃

依赖框架说明

iOS 平台 SDK 需要添加适当的依赖框架才可以正常工作,Plugin 中已配置相应框架,下列为所有框架说明。

框架 用途
AdServices.framework Apple Search Ads 归因(iOS 14.3及以上)
iAd.framework Apple Search Ads 归因(iOS 14.5及以下)
StoreKit.framework Apple SKAdNetwork 归因转化
AppTrackingTransparency.framework 获取App跟踪授权状态
AdSupport.framework 获取advertisingIdentifier
CoreTelephony.framework 获取运营商标识
Security.framework 辅助存储设备标识
SystemConfiguration.framework 检测网络状况
libc++.tbd 支持最新的c++11标准
libz.tbd 进行数据压缩

快速集成-SDK初始化

接口说明

只有在SDK正确初始化后,SDK的其他接口才可以使用。

可以在 App.vue 文件的 onLaunch 方法中进行SDK初始化。

接口定义

TalkingDataSDK.init(appId, channelId, custom);

参数说明

参数 类型 是否必选 描述
appId string appId为应用追踪的唯一标识,在【产品中心】-【我的应用】-【点击应用名称】获取
channelId string channelId为渠道跟踪ID
如果在GooglePlay官方市场上架,channelId必须设置为GooglePlay或play.google.com,避免系统误判为其他第三方市场数据;
如果在AppStore官方市场上架,channelId必须设置为AppStore避免系统误判为其他第三方市场数据;
如果在国内第三方应用市场,或者越狱市场上架,channelId最多包含64个字符,支持中文、英文、数字、下划线、“.”,但不能包含空格或其他的转义字符。
此外,针对GooglePlay官方市场,请集成Google专属版SDK。详见:https://www.talkingdata.com/sdk-forgp.jsp
custom string (仅AdTracking)自定义初始化参数,用于开发者按需携带自有业务信息,长度至多64字符,支持数字、字母、符号组合,其中符号包含- : _

示例代码

onLaunch: function() {
    console.log('App Launch')
    TalkingDataSDK.init("DE40FB8A722D454B8981E2F842E6AAB6", "AppStore", "Test")
}

基础-基础统计

正确完成初始化调用后,自动完成应用启动的统计,详见集成步骤:SDK初始化。

基于应用启动,后台自动计算独立设备,并计算新增、活跃、留存、升级等指标。

基础-渠道统计

用途和用法

给应用的安装包打入特殊的渠道标记,用户安装并使用后,就可以在报表中分不同渠道来源单独查询相应的数据。

在您为应用商店、下载站等分发渠道提供应用安装包时,可以加入渠道标记;在进行特别的活动时也可加入特殊渠道标记便于单独分析效果。

注意事项:
用户的渠道归属是指每台设备首次安装激活的渠道,同一用户在更替渠道包使用后不会重复计算新增,使用数据归入首次激活渠道。如果未添加渠道标记,或渠道标记是示例代码中的默认值,用户将会归入为“未知渠道”。

集成方式说明

在初始化中写入渠道ID即可。

基础-获取设备ID

接口说明

获取设备的唯一id

接口定义

TalkingDataSDK.getDeviceId();

参数说明

示例代码

var tdid = TalkingDataSDK.getDeviceId();

基础-获取OAID(仅Android)

接口说明

通过调用 TalkingDataSDK 插件的 getOAID 接口获取 Android 10 及以上设备的 OAID。

需要注意的是,这个接口建议您在初始化SDK之后的 3-5 秒再去调用,以避免您获取到 null 值。

接口定义

TalkingDataSDK.getOAID();

参数说明

示例代码

var oaid = TalkingDataSDK.getOAID();

基础-后台使用时长(仅iOS)

接口说明

默认获取的是前台使用时长。如需获取后台使用时长,可通过调用以下接口设置。

调用该接口后,用户的使用时长指标包含前台使用时长和后台使用时长。

注意事项:该接口需要在SDK初始化方法之前调用。

接口定义

TalkingDataSDK.backgroundSessionEnabled();

参数说明

示例代码

TalkingDataSDK.backgroundSessionEnabled();
TalkingDataSDK.init("您的 App ID", "渠道 ID", "自定义参数");

基础-自定义位置(仅iOS)

接口说明

TalkingData 默认使用设备中收取的 MCC(移动国家码)和用户联网 IP 来判定用户的地区,与地区相关的数据会有一定误差。

如果您的应用会使用用户的位置信息,可通过接口将信息提交至 TalkingData 数据中,可使您获得更加精准的数据报表。

接口定义

TalkingDataSDK.setLocation(latitude, longitude);

参数说明

参数 类型 是否必选 描述
latitude number 纬度
longitude number 经度

示例代码

TalkingDataSDK.setLocation(39.942, 116.435);

基础-页面访问(仅AppAnalytics)

接口说明

此功能用于帮助开发者统计应用中各个页面的访问次数和停留时长,并可以追踪用户从某个页面离开后所访问的其他页面,为产品优化提供依据。

SDK会自动统计页面停留时长及来源页面。

注意事项:
 ● onPageBeginonPageEnd 接口必须成对调用。
 ● 尽可能对所有页面都进行追踪,以免因部分页面未追踪而导致分析用户跳转路径时分析结果异常。

接口定义

在进入页面时调用 TalkingDataSDKonPageBegin 方法。

TalkingDataSDK.onPageBegin(pageName);

在离开页面时调用 TalkingDataSDKonPageEnd 方法。

TalkingDataSDK.onPageEnd(pageName);

参数说明

参数 类型 是否必选 描述
pageName string 页面名称
最多包含64个字符,支持中文、英文、数字、下划线,但不能包含空格或其他的转义字符

示例代码

// 进入页面
TalkingDataSDK.onPageBegin("主页面");
// 离开页面
TalkingDataSDK.onPageEnd("主页面");

通用-唤醒(仅AdTracking)

接口说明

在用户通过 Deep Link 唤起应用的时候调用 TalkingDataSDKonReceiveDeepLink 接口。

接口定义

TalkingDataSDK.onReceiveDeepLink(link);

参数说明

参数 类型 是否必选 描述
link string 唤起应用的link,支持英文、数字、符号,至多800位字符。
需拼接campaignid,详见:http://doc.talkingdata.com/posts/904

示例代码

TalkingDataSDK.onReceiveDeepLink("https://www.talkingdata.com");

通用-注册

接口说明

注册接口用于记录用户在使用应用过程中的注册行为,在注册成功时调用 TalkingDataSDKonRegister 接口。

若应用具备“老用户邀请新用户注册”功能,可在此接口中传入注册邀请码 invitationCode ,TalkingData SDK 将基于此进行“受邀注册”的指标统计。

接口定义

TalkingDataSDK.onRegister(profileId, profile, invitationCode);

参数说明

参数 类型 是否必选 描述
profileId string 用户账号ID,支持英文、数字、符号
profile object (仅AppAnalytics)账户属性
invitationCode string (仅AdTracking)邀请码,支持英文、数字、符号

profile 说明:

属性 类型 是否必选 描述
name string 账户名称
type number 账户类型
0(匿名账户)
1(显示注册账户)
2(新浪微博)
3(QQ账户)
4(腾讯微博)
5(91账户)
6(微信)
11(自定义类型1)
12(自定义类型2)
13(自定义类型3)
14(自定义类型4)
15(自定义类型5)
16(自定义类型6)
17(自定义类型7)
18(自定义类型8)
19(自定义类型9)
20(自定义类型10)
gender number 用户性别
0(未知)
1(男)
2(女)
age number 用户年龄
property1 string/number 自定义属性1,仅支持字符串(string)和数字(number)类型
property2 string/number 自定义属性2,仅支持字符串(string)和数字(number)类型
property3 string/number 自定义属性3,仅支持字符串(string)和数字(number)类型
property4 string/number 自定义属性4,仅支持字符串(string)和数字(number)类型
property5 string/number 自定义属性5,仅支持字符串(string)和数字(number)类型
property6 string/number 自定义属性6,仅支持字符串(string)和数字(number)类型
property7 string/number 自定义属性7,仅支持字符串(string)和数字(number)类型
property8 string/number 自定义属性8,仅支持字符串(string)和数字(number)类型
property9 string/number 自定义属性9,仅支持字符串(string)和数字(number)类型
property10 string/number 自定义属性10,仅支持字符串(string)和数字(number)类型

示例代码

var profile = {
    name : "name01",
    type : 6,
    gender : 1,
    age : 18,
    property1 : "property1",
    property2 : 2,
    property3 : 3.14,
    property4 : "property4",
    property5 : "property5",
    property6 : 0.618,
    property7 : "property7",
    property8 : "property8",
    property9 : 9.8,
    property10 : "property10"
}
TalkingDataSDK.onRegister("user01", profile, "123456");

通用-登录

接口说明

登录接口用于记录用户在使用应用过程中的登录行为,在登录成功时调用 TalkingDataSDKonLogin 接口。

常用的调用登录接口的时机如下:
 ● 用户注册后自动登录,这时候可以按顺序调用注册和登录两个接口。
 ● 用户登录信息过期,手动发起并完成登录操作,此时调用登录接口。
 ● 用户登录信息未过期,每次启动应用时App自动判断为已登录状态,开发者按需调用登录接口。

接口定义

TalkingDataSDK.onLogin(profileId, profile);

参数说明

参数 类型 是否必选 描述
profileId string 用户账号ID,支持英文、数字、符号
profile object (仅AppAnalytics)账户属性

profile 说明:详见“通用-注册”的“参数说明”

示例代码

var profile = {
    name : "name01",
    type : 6,
    gender : 1,
    age : 18,
    property1 : "property1",
    property2 : 2,
    property3 : 3.14,
    property4 : "property4",
    property5 : "property5",
    property6 : 0.618,
    property7 : "property7",
    property8 : "property8",
    property9 : 9.8,
    property10 : "property10"
}
TalkingDataSDK.onLogin("user01", profile);

通用-账户属性更新(仅AppAnalytics)

接口说明

在用户账户属性发生变更时调用 TalkingDataSDKonProfileUpdate 接口。

接口定义

TalkingDataSDK.onProfileUpdate(profile);

参数说明

参数 类型 是否必选 描述
profile object 账户属性

profile 说明:详见“通用-注册”的“参数说明”

示例代码

var profile = {
    name : "name01",
    type : 6,
    gender : 1,
    age : 18,
    property1 : "property1",
    property2 : 2,
    property3 : 3.14,
    property4 : "property4",
    property5 : "property5",
    property6 : 0.618,
    property7 : "property7",
    property8 : "property8",
    property9 : 9.8,
    property10 : "property10"
}
TalkingDataSDK.onProfileUpdate(profile);

通用-添加支付信息(仅AdTracking)

接口说明

在用户添加支付信息成功后调用 TalkingDataSDKonCreateCard 接口。

接口定义

TalkingDataSDK.onCreateCard(profileId, method, content);

参数说明

参数 类型 是否必选 描述
profileId string 用户账号ID,支持英文、数字、符号
method string 支付方式,支持中文、英文、数字、符号
content string 支付信息,支持中文、英文、数字、符号

示例代码

TalkingDataSDK.onCreateCard("user01", "card", "6201234567891011");

通用-收藏(仅AdTracking)

接口说明

在用户进行收藏行为并完成收藏事件时调用 TalkingDataSDKonFavorite 接口。

接口定义

TalkingDataSDK.onFavorite(category, content);

参数说明

参数 类型 是否必选 描述
category string 收藏类别,支持中文、英文、数字、符号
content string 收藏内容,支持中文、英文、数字、符号

示例代码

TalkingDataSDK.onFavorite("书单", "西游记");

通用-分享(仅AdTracking)

接口说明

在用户进行分享行为时调用 TalkingDataSDKonShare 接口。

接口定义

TalkingDataSDK.onShare(profileId, content);

参数说明

参数 类型 是否必选 描述
profileId string 用户账号ID,支持英文、数字、符号
content string 分享内容,支持中文、英文、数字、符号

示例代码

TalkingDataSDK.onShare("user01", "读书清单");

通用-签到打卡(仅AdTracking)

接口说明

在用户进行签到打卡行为时调用 TalkingDataSDKonPunch 接口。

接口定义

TalkingDataSDK.onPunch(profileId, punchId);

参数说明

参数 类型 是否必选 描述
profileId string 用户账号ID,支持英文、数字、符号
punchId string 签到打卡ID,支持英文、数字、符号

示例代码

TalkingDataSDK.onPunch("user01", "punch01");

通用-搜索(仅AdTracking)

接口说明

在用户进行应用内搜索行为时调用 TalkingDataSDKonSearch 接口。

接口定义

TalkingDataSDK.onSearch(search);

参数说明

参数 类型 是否必选 描述
search object 搜索事件属性

search 说明:

属性 参数类型 是否必选 描述
category string 搜索类别,支持中文、英文、数字、符号
content string 搜索内容,支持中文、英文、数字、符号
itemId string (电商类专用)商品ID,支持英文、数字、符号
itemLocationId string (电商类专用)商品位置,支持中文、英文、数字、符号
destination string (旅游类专用)目的地城市,支持中文、英文、数字、符号
origin string (旅游类专用)出发地城市,支持中文、英文、数字、符号
startDate number (旅游类专用)起始时间戳(毫秒)
endDate number (旅游类专用)截止时间戳(毫秒)

示例代码

var search = {
    category : "类型",
    content : "内容",
    itemId : "商品ID",
    itemLocationId : "location12314",
    destination : "目的地",
    origin : "出发地",
    startDate : 1565176907309,
    endDate : 1565176908309
}
TalkingDataSDK.onSearch(search);

行业专属事件

行业专属事件适用于部分行业类型的移动App,具体如下表:

事件名称 电商零售 游戏娱乐 金融借贷 旅游出行 在线教育 小说阅读 其他行业
联系(仅AdTracking)      
付费(仅AdTracking)    
退单(仅AdTracking)      
预约(仅AdTracking)          
预订(仅AdTracking)          
查看商品            
添加到购物车            
查看购物车            
下订单            
支付订单            
取消订单(仅AppAnalytics)            
授信(仅AdTracking)            
交易(仅AdTracking)            
创建角色            
通过关卡            
完成新手教程            
课程学习(仅AdTracking)            
完成课程试听(仅AdTracking)            
文章阅读(仅AdTracking)            
完成免费阅读(仅AdTracking)            
解锁成就          
浏览详情(仅AdTracking)        
完成试用体验(仅AdTracking)      

专属-联系(仅AdTracking)

接口说明

在用户联系商家或平台的时候调用 TalkingDataSDKonContact 接口。

接口定义

TalkingDataSDK.onContact(profileId, content);

参数说明

参数 类型 是否必选 描述
profileId string 用户账号ID,支持英文、数字、符号
content string 联系内容,支持中文、英文、数字、符号

示例代码

TalkingDataSDK.onContact("user01", "联系平台内容");

专属-付费(仅AdTracking)

接口说明

在用户付费成功的时候调用 TalkingDataSDKonPay 接口。

接口定义

TalkingDataSDK.onPay(profileId, orderId, amount, currencyType, paymentType, itemId, itemCount);

参数说明

参数 类型 是否必选 描述
profileId string 用户账号ID,支持英文、数字、符号
orderId string 订单ID,支持英文、数字、符号,最多64个字符
全局唯一,由开发者提供并维护(此ID很重要,如果不清楚可咨询客服),用于唯一标识一次交易,以及后期系统之间对账使用。如果多次充值成功的orderId重复,将只计算首次成功的数据,其他数据会认为重复数据丢弃
amount number 订单金额,单位为所选货币的最小单位
例如:600分或100美分,币种以currencyType为标准
currencyType string 货币类型,请使用国际标准组织ISO 4217中规范的3位字母代码标记货币类型
详见【重点问题解答-问题1】
paymentType string 支付类型,支持中文、英文、数字、符号
例如:ApplePay、支付宝、Alipay、微信等
itemId string 商品ID,支持英文、数字、符号
itemCount number 商品数量

示例代码

TalkingDataSDK.onPay("user01", "order01", 600, "CNY", "ApplePay", "item01", 1);

专属-退单(仅AdTracking)

接口说明

在用户退单的时候调用 TalkingDataSDKonChargeBack 接口。

接口定义

TalkingDataSDK.onChargeBack(profileId, orderId, reason, type;

参数说明

参数 类型 是否必选 描述
profileId string 用户账号ID,支持英文、数字、符号
orderId string 订单ID,支持英文、数字、符号
reason string 退单原因,支持中文、英文、数字、符号
type string 退单类型,支持中文、英文、数字、符号

示例代码

TalkingDataSDK.onChargeBack("user01", "order01", "7天无理由退货", "仅退款");

专属-预约(仅AdTracking)

接口说明

在用户进行预约行为时调用 TalkingDataSDKonReservation 接口。

接口定义

TalkingDataSDK.onReservation(profileId, reservationId, category, amount, term);

参数说明

参数 类型 是否必选 描述
profileId string 用户账号ID,支持英文、数字、符号
reservationId string 预约ID,支持英文、数字、符号
category string 预约类别,支持中文、英文、数字、符号
amount number 预约金额
term string 预约信息,支持中文、英文、数字、符号

示例代码

TalkingDataSDK.onReservation("user01", "td_123456", "借贷类", 12, "商品信息");

专属-预订(仅AdTracking)

接口说明

在用户进行预订行为时调用 TalkingDataSDKonBooking 接口。

接口定义

TalkingDataSDK.onBooking(profileId, bookingId, category, amount, content);

参数说明

参数 类型 是否必选 描述
profileId string 用户账号ID,支持英文、数字、符号
bookingId string 预订ID,支持英文、数字、符号
category string 预订类别,支持中文、英文、数字、符号
amount number 预订金额
content string 预订内容,支持中文、英文、数字、符号

示例代码

TalkingDataSDK.onBooking("user01", "002391", "电子", 12300, "商品信息");

专属-查看商品

接口说明

在用户浏览一个商品详情时调用 TalkingDataSDKonViewItem 接口。

接口定义

TalkingDataSDK.onViewItem(itemId, category, name, unitPrice);

参数说明

参数 类型 是否必选 描述
itemId string 商品ID,支持英文、数字、符号
category string 商品类别,支持中文、英文、数字、符号
name string 商品名称,支持中文、英文、数字、符号
unitPrice number 商品单价

示例代码

TalkingDataSDK.onViewItem("item01", "item_category", "item_name", 1200);

专属-添加到购物车

接口说明

在用户添加一个商品到购物车时调用 TalkingDataSDKonAddItemToShoppingCart 接口。

接口定义

TalkingDataSDK.onAddItemToShoppingCart(itemId, category, name, unitPrice, amount);

参数说明

参数 类型 是否必选 描述
itemId string 商品ID,支持英文、数字、符号
category string 商品类别,支持中文、英文、数字、符号
name string 商品名称,支持中文、英文、数字、符号
unitPrice number 商品单价
amount number 商品数量

示例代码

TalkingDataSDK.onAddItemToShoppingCart("item01", "item_category", "item_name", 1200, 111);

专属-查看购物车

接口说明

在用户浏览购物车内所有商品时调用 TalkingDataSDKonViewShoppingCart 接口。

接口定义

TalkingDataSDK.onViewShoppingCart(shoppingCart);

参数说明

参数 类型 是否必选 描述
shoppingCart object 购物车详情,详见创建购物车

shoppingCart 说明:

属性 类型 是否必选 描述
items array 物品详情列表,可包含多个物品详情

item 说明:

属性 类型 是否必选 描述
itemId string 商品ID,支持英文、数字、符号
category string 商品类别,支持中文、英文、数字、符号
name string 商品名称,支持中文、英文、数字、符号
unitPrice number 商品单价
amount number 商品数量

示例代码

var shoppingCart = {
    items : [
        {
            itemId : "item01",
            category : "item_category",
            name : "item_name",
            unitPrice : 1200,
            amount : 111
        }
    ]
}
TalkingDataSDK.onViewShoppingCart(shoppingCart);

专属-下订单

接口说明

在用户下订单时调用 TalkingDataSDKonPlaceOrder 接口。

接口定义

TalkingDataSDK.onPlaceOrder(order, profileId);

参数说明

参数 类型 是否必选 描述
order object 订单详情,详见创建订单
profileId string 用户账号ID,支持英文、数字、符号

order 说明:

属性 类型 是否必选 描述
orderId string 订单ID,支持英文、数字、符号,最多64个字符
全局唯一,由开发者提供并维护(此ID很重要,如果不清楚可咨询客服),用于唯一标识一次交易,以及后期系统之间对账使用。如果多次充值成功的orderId重复,将只计算首次成功的数据,其他数据会认为重复数据丢弃
total number 订单金额,单位为所选货币的最小单位
例如:600分或100美分,币种以currencyType为标准
currencyType string 货币类型,请使用国际标准组织ISO 4217中规范的3位字母代码标记货币类型
详见【重点问题解答-问题1】
items array (仅AdTracking)商品详情列表,可包含多个商品详情

item 说明:

属性 类型 是否必选 描述
itemId string 商品ID,支持英文、数字、符号
category string 商品类别,支持中文、英文、数字、符号
name string 商品名称,支持中文、英文、数字、符号
unitPrice number 商品单价
amount number 商品数量

示例代码

var order = {
    orderId : "orderId01",
    total : 3222,
    currencyType : "CNY",
    items : [
        {
            itemId : "item01",
            category : "item_category",
            name : "item_name",
            unitPrice : 3222,
            amount : 111
        }
    ]
}
TalkingDataSDK.onPlaceOrder(order, "user01");

专属-支付订单

接口说明

在用户付费成功的时候调用 TalkingDataSDKonOrderPaySucc 接口。

接口定义

TalkingDataSDK.onOrderPaySucc(order, paymentType, profileId);

参数说明

参数 类型 是否必选 描述
order object 订单详情,详见创建订单
paymentType string 支付类型,支持中文、英文、数字、符号
例如:ApplePay、支付宝、Alipay、微信等
profileId string 用户账号ID,支持英文、数字、符号

order 说明:

详见“专属-下订单”的“order 说明”

示例代码

var order = {
    orderId : "orderId01",
    total : 3222,
    currencyType : "CNY",
    items : [
        {
            itemId : "item01",
            category : "item_category",
            name : "item_name",
            unitPrice : 3222,
            amount : 111
        }
    ]
}
TalkingDataSDK.onOrderPaySucc(order, "ApplePay", "user01");

专属-取消订单(仅AppAnalytics)

接口说明

在用户取消订单的时候调用 TalkingDataSDKonCancelOrder 接口。

接口定义

TalkingDataSDK.onCancelOrder(order);

参数说明

参数 类型 是否必选 描述
order object 订单详情,详见创建订单

order 说明:

详见“专属-下订单”的“创建订单”

示例代码

var order = {
    orderId : "orderId01",
    total : 3222,
    currencyType : "CNY"
}
TalkingDataSDK.onCancelOrder(order);

专属-授信(仅AdTracking)

接口说明

在用户完成授信的时候调用 TalkingDataSDKonCredit 接口。

接口定义

TalkingDataSDK.onCredit(profileId, amount, content);

参数说明

参数 类型 是否必选 描述
profileId string 用户账号ID,支持英文、数字、符号
amount number 授信额度
content string 授信信息,支持中文、英文、数字、符号

示例代码

TalkingDataSDK.onCredit("user01", 123456, "授信详情为……");

专属-交易(仅AdTracking)

接口说明

在用户进行交易时调用 TalkingDataSDKonTransaction 接口。

接口定义

TalkingDataSDK.onTransaction(profileId, transaction);

参数说明

参数 类型 是否必选 描述
profileId string 用户账号ID,支持英文、数字、符号
transaction object 交易事件属性

transaction 说明:

属性 参数类型 是否必选 描述
transactionId string 交易ID,支持英文、数字、符号
category string 交易类别,支持中文、英文、数字、符号
amount number 交易金额,单位为所选货币的最小单位
例如:600分或100美分,币种以currencyType为标准
personA string 交易甲方,支持中文、英文、数字、符号
personB string 交易乙方,支持中文、英文、数字、符号
startDate number 交易起始时间戳(毫秒)
endDate number 交易截止时间戳(毫秒)
currencyType string 货币类型,请使用国际标准组织ISO 4217中规范的3位字母代码标记货币类型
详见【重点问题解答-问题1】
content string 交易信息,支持中文、英文、数字、符号

示例代码

var transaction = {
    transactionId : "td_123456",
    category : "定期",
    amount : 3222,
    personA : "张三",
    personB : "金融平台",
    startDate : 1565176907309,
    endDate : 1565176908309,
    currencyType : "CNY",
    content : "交易详情为……"
}
TalkingDataSDK.onTransaction("user01", transaction);

专属-创建角色

接口说明

在用户创建角色的时候调用 TalkingDataSDKonCreateRole 接口。

接口定义

TalkingDataSDK.onCreateRole(name);

参数说明

参数 类型 是否必选 描述
name string 角色名称,支持中文、英文、数字、符号

示例代码

TalkingDataSDK.onCreateRole("role01");

专属-通过关卡

接口说明

在用户通过设定的关卡的时候调用 TalkingDataSDKonLevelPass 接口。

接口定义

TalkingDataSDK.onLevelPass(profileId, levelId);

参数说明

参数 类型 是否必选 描述
profileId string 用户账号ID,支持英文、数字、符号
levelId string 关卡ID,支持英文、数字、符号

示例代码

TalkingDataSDK.onLevelPass("user01", "td_123456");

专属-完成新手教程

接口说明

在用户完成了新手教程的时候调用 TalkingDataSDKonGuideFinished 接口。

接口定义

TalkingDataSDK.onGuideFinished(profileId, content);

参数说明

参数 类型 是否必选 描述
profileId string 用户账号ID,支持英文、数字、符号
content string 教程信息,支持中文、英文、数字、符号

示例代码

TalkingDataSDK.onGuideFinished("user01", "新手教程顺利通过");

专属-课程学习(仅AdTracking)

接口说明

在用户进行课程学习的时候调用 TalkingDataSDKonLearn 接口。

接口定义

TalkingDataSDK.onLearn(profileId, course, begin, duration);

参数说明

参数 类型 是否必选 描述
profileId string 用户账号ID,支持英文、数字、符号
course string 课程信息,支持中文、英文、数字、符号
begin number 开始学习时间戳(毫秒)
duration number 学习时长(秒)

示例代码

TalkingDataSDK.onLearn("user01", "成人教育第一节", 1501234567890, 20);

专属-完成课程试听(仅AdTracking)

接口说明

在用户完成课程试听的时候调用 TalkingDataSDKonPreviewFinished 接口。

接口定义

TalkingDataSDK.onPreviewFinished(profileId, content);

参数说明

参数 类型 是否必选 描述
profileId string 用户账号ID,支持英文、数字、符号
content string 试听信息,支持中文、英文、数字、符号

示例代码

TalkingDataSDK.onPreviewFinished("user01", "基础课程试听结束");

专属-文章阅读(仅AdTracking)

接口说明

在用户进行文章阅读的时候调用 TalkingDataSDKonRead 接口。

接口定义

TalkingDataSDK.onRead(profileId, book, begin, duration);

参数说明

参数 类型 是否必选 描述
profileId string 用户账号ID,支持英文、数字、符号
book string 文章信息,支持中文、英文、数字、符号
begin number 开始阅读时间戳(毫秒)
duration number 阅读时长(秒)

示例代码

TalkingDataSDK.onRead("user01", "西游记第一章", 1501234567890, 20);

专属-完成免费阅读(仅AdTracking)

接口说明

在用户完成免费阅读的时候调用 TalkingDataSDKonFreeFinished 接口。

接口定义

TalkingDataSDK.onFreeFinished(profileId, content);

参数说明

参数 类型 是否必选 描述
profileId string 用户账号ID,支持英文、数字、符号
content string 阅读信息,支持中文、英文、数字、符号

示例代码

TalkingDataSDK.onFreeFinished("user01", "免费章节阅读结束");

专属-解锁成就

接口说明

在用户解锁成就的时候调用 TalkingDataSDKonAchievementUnlock 接口。

接口定义

TalkingDataSDK.onAchievementUnlock(profileId, achievementId);

参数说明

参数 类型 是否必选 描述
profileId string 用户账号ID,支持英文、数字、符号
achievementId string 成就ID,支持英文、数字、符号

示例代码

TalkingDataSDK.onAchievementUnlock("user01", "td_123456");

专属-浏览详情(仅AdTracking)

接口说明

在用户进行浏览详情的时候调用 TalkingDataSDKonBrowse 接口。

接口定义

TalkingDataSDK.onBrowse(profileId, content, begin, duration);

参数说明

参数 类型 是否必选 描述
profileId string 用户账号ID,支持英文、数字、符号
content string 详情信息,支持中文、英文、数字、符号
begin number 开始浏览时间戳(毫秒)
duration number 浏览时长(秒)

示例代码

TalkingDataSDK.onBrowse("user01", "详情页page1", 1501234567890, 20;

专属-完成试用体验(仅AdTracking)

接口说明

在用户完成了试用体验的时候调用 TalkingDataSDKonTrialFinished 接口。

接口定义

TalkingDataSDK.onTrialFinished(profileId, content);

参数说明

参数 类型 是否必选 描述
profileId string 用户账号ID,支持英文、数字、符号
content string 体验信息,支持中文、英文、数字、符号

示例代码

TalkingDataSDK.onTrialFinished("user01", "试用体验结束");

高级-自定义事件

用途和用法

自定义事件用于追踪任何需要了解的用户行为,如:用户点击某功能按钮、填写某个输入框、触发了某个广告等。

自定义事件名称(EventID)

在 TalkingData 分析平台,无需提前在报表中定义自定义事件名称,调用追踪代码时直接写入事件ID即可。报表中事件管理页面支持对EventID重命名。

自定义事件数量限制

  ○ 系统最多支持计算1000个代码事件,默认识别前100个代码事件。超过这个限制后,新追踪到的代码事件均记录在“待处理事件“中,需要手动打开计算开关,系统才会开始计算。
  ○ “待处理事件”位置:“应用管理”->“事件管理” ->“待处理事件”。保留在“待处理事件”中的数据不参与计算。目前最多能支持同时记录9000个待处理事件。但是某些开发者在自定义事件名称中引入变量,而且变量取值非常离散时可能导致自定义事件的总量超过这个限制,系统将无法记录更多事件名称,导致无法找到这些事件并打开计算开关。
  ○ 对于不需要继续统计或待处理事件中不需要开始计算的代码事件,请及时处理。如果只是暂停计算,可以使用 【暂停计算】功能,如果不在需要可以使用【废弃】功能,暂停计算和废弃功能均支持重新恢复,但是废弃中的事件数据(含历史数据)不能被恢复。

自定义事件参数及其数量限制

事件参数可用于为事件添加详尽的描述信息,如描述行为发生时场景、状态或事件触发条件等。

支持设置参数,但并非必须调用。

每个事件下最多自动识别50个参数key(Android v2.2.15及以下、iOS v2.2.27及以下版本仅同时支持10对参数)。如果同一代码事件因不同版本等原因上传了不同key,报表最多可以显示100个key。每个key最多支持1000个以内的不同value。超过1000个value,将不在做计次运算,如果需要获取value明细值,可以前往日志导出获取。

自定义事件介绍

自定义事件是通过在代码中对每个需要追踪的自定义事件调用接口,传入相应参数从而实现对自定义事件追踪的方式。

接口说明

追踪用户基本行为时,调用 TalkingDataSDKonEvent 接口。

接口定义

TalkingDataSDK.onEvent(eventId, eventValue, parameters);

参数说明

参数 类型 是否必选 描述
eventId string 自定义事件名称
最多包含64个字符,支持中文、英文、数字、下划线,但不能包含空格、特殊字符或其他的转义字符
eventValue number 自定义事件数值
parameters object 自定义事件的参数及参数取值
其中的key为字符串(string),value仅支持字符串(string)和数字(number)类型,其他类型则会被作为异常丢弃。
报表中将给出事件发生时每种value出现的频次。
在value取值较离散情况下(如示例中收集的促销价格信息),不要直接填充具体数值,而应划分区间后传入(如9.9元,可定义5~10元的价格区间,传入5~10元),否则value不同取值很可能超过平台最大数目限制,离散数据也对分析人员阅览数据造成影响

示例代码

示例1:
追踪某电商应用中首页的5个不同推广位置的点击次数,并收集宣传品的品类、促销价格等信息。因为是5个近似场景,添加了事件参数,而且对参数取值做了分组处理(如9.9元,可定义5~10元的价格区间,传入5~10元),避免取值太离散而影响分析甚至超过分析平台所支持的数量限制。调用如下:

var eventData1 = {};
eventData1["商品类别"] = "服装";
eventData1["price"] = "5~10";
TalkingDataSDK.onEvent("首页推荐位点击", 0.0, eventData1);

var eventData2 = {};
eventData2["商品类别"] = "家电";
eventData2["price"] = "500~1000";
TalkingDataSDK.onEvent("首页推荐位点击", 0.0, eventData2);

示例2:
在一款休闲游戏中记录玩家在各关卡中的失败数据,并收集玩家具体信息。调用如下:

var eventData = {};
eventData["等级"] = "20-30"; //级别区间
eventData["关卡名"] = "沼泽地阿卡村"; //关卡名称
eventData["失败原因"] = "主动退出"; //失败原因
eventData["coin"] = "10000~12000"; //携带金币数量
TalkingDataSDK.onEvent("战斗失败", 0.0, eventData);

示例3:
在某商品列表下记录多条信息并记录相应的价格。调用如下:

var eventData = {};
eventData["商品类型"] = "休闲食品";
TalkingDataSDK.onEvent("查看商品", 5.21, eventData];

兼容AdTracking自定义事件(仅AdTracking)

原AdTracking预留了10个自定义事件,onCustEvent1onCustEvent2、……、onCustEvent10 接口。

需通过当前自定义事件接口eventId参数传入 _cust1_cust2、……、_cust10 值实现兼容。

示例:

TalkingDataSDK.onEvent("_cust1", 0.0, null);
TalkingDataSDK.onEvent("_cust2", 0.0, null);
TalkingDataSDK.onEvent("_cust3", 0.0, null);
TalkingDataSDK.onEvent("_cust4", 0.0, null);
TalkingDataSDK.onEvent("_cust5", 0.0, null);
TalkingDataSDK.onEvent("_cust6", 0.0, null);
TalkingDataSDK.onEvent("_cust7", 0.0, null);
TalkingDataSDK.onEvent("_cust8", 0.0, null);
TalkingDataSDK.onEvent("_cust9", 0.0, null);
TalkingDataSDK.onEvent("_cust10", 0.0, null);

全局参数(仅AppAnalytics)

接口说明

如果所有事件都需要传输相同的参数,可以设置全局的 key-value,这些 key-value 会自动添加到所有自定义事件中。

注意事项:如果 onEvent 接口传入的 key-value 的 key 和全局 key-value 的 key 冲突,以 onEvent 接口传入的为准。

接口定义

如果要设置全局 key-value 时,调用 TalkingDataSDKsetGlobalKV 方法。

TalkingDataSDK.setGlobalKV(key, value);

如果要移除全局 key-value 时,调用 TalkingDataSDKremoveGlobalKV 方法。

TalkingDataSDK.removeGlobalKV(key);

参数说明

参数 类型 是否必选 描述
key string 全局参数的key
value object 全局参数的value,仅支持字符串(string)和数字(number)类型

示例代码

// 设置全局 key-value
TalkingDataSDK.setGlobalKV("name", "nike");
TalkingDataSDK.setGlobalKV("level", 12);
// 移除全局 key-value
TalkingDataSDK.removeGlobalKV("name");
TalkingDataSDK.removeGlobalKV("level");

集成检查列表

 ● 确保正确调用了初始化(init)方法,并填入了正确的App ID。
 ● 测试渠道包数据,确保Channel ID添加正确,并确认该设备没有被计入其他的渠道中。
 ● 应用安装于设备后需要打开应用才可记录数据,测试过程确保您的设备网络连接正常。
 ● 通过检查logcat或console里输出的日志信息可帮助判定问题。
 ● TalkingData SDK会在初始化时会输出类似下边的日志,其中会显示SDK检测到的App ID和Channel ID。

Android

07-03 16:09:11.732 17106 17355 I TDLog   : TalkingData SDK init...
07-03 16:09:11.732 17106 17355 I TDLog   : SDK_VERSION is: Android+TD+V5.0.0 gp Type:Native
07-03 16:09:11.732 17106 17355 I TDLog   : App ID is: 5CC519B5E89140058CD49244DFA95178
07-03 16:09:11.732 17106 17355 I TDLog   : App Channel is: GooglePlay
07-03 16:09:11.732 17106 17355 I TDLog   : SDK_OVC is: TDOVC+02f8c47c76990b100d7d365a654ea35d+SaaS

iOS

2021-09-11 08:46:24.276076 demo[1421:388033] TalkingData: SDK Version:5.0.0, MD5:TDOVC+bd963ef6c24fc64d76515680d4183eeb+SaaS
2021-09-11 08:46:24.276227 demo[1421:388033] TalkingData: init:320AE34C28B64CC4B7E53E7A171DCF1C channelId:AppStore custom:

 ● 当SDK成功向服务器传输数据时,会有类似下边的日志输出。

Android

07-03 16:09:11.820 17106 17358 I TDLog   : New data found, Submitting...
07-03 16:09:11.967 17106 17358 I TDLog   : Data submitted successfully!

iOS

2021-09-11 08:46:24.619865 demo[1421:388065] TalkingData: SDK Start sending data.
2021-09-11 08:46:24.706523 demo[1421:388065] TalkingData: SDK Send data success!

重点问题解答

1.支持哪些货币类型?

币种 currencyType
人民币 CNY
港元 HKD
台币 TWD
美元 USD
欧元 EUR
英镑 GBP
日元 JPY

2.集成SDK的应用,运行时会有TalkingData相关的日志,如何关闭?

解答:这些日志是用于帮助应用开发者检查是否正确集成了TalkingData SDK。
如果应用开发者希望关掉这些日志,可以调用 setVerboseLogDisable 接口。
示例:TalkingDataSDK.setVerboseLogDisable()

3.参数支持传入哪些符号?

支持的符号有 ()()#&@-_.
为避免数据统计有误,请勿传入不支持的符号字符。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

READ_PHONE_STATE、ACCESS_WIFI_STATE、ACCESS_COARSE_LOCATION、ACCESS_FINE_LOCATION、WRITE_EXTERNAL_STORAGE、READ_EXTERNAL_STORAGE

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件本身没有采集,使用的是 TD SDK 的采集服务,SDK 服务内所需采集服务请查看官方文档 : https://www.talkingdata.com/terms.jsp?languagetype=zh_cn https://www.talkingdata.com/security.jsp?languagetype=zh_cn 数据发送地址:https://tdsdk.cpatrk.net

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT License

Copyright (c) 2022 TalkingData

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问