支付宝小程序 SDK 使用指南
本指南将会为您介绍如何使用 支付宝小程序 SDK 接入您的项目,建议在接入开始前,先阅读数据规则一章,在了解TA数据规则后再进行接入。
最新版本为:1.0.0
更新时间为:2019-02-26
支付宝小程序 SDK已停止后续开发,项目转移至小程序\小游戏 SDK,本文档仅供老版本的用户进行参考
1. 引入支付宝小程序SDK
1.下载支付宝小程序 SDK
2.解压压缩包,并把thinkingdata.js
与thinkingdata_conf.js
置入您的项目中,本文档以置入utils
文件夹为例
3.配置thinkingdata_conf.js
里的参数:
var conf ={
appid: 'APPID',
server_url: 'SERVER_URL'
};
appid
是您的项目的APP_ID,需要进行配置,在您申请项目时会给出,请在此处填入server_url
为数据传输URL,需要进行配置
如果您使用的是云服务,请输入以下URL:
https://receiver.ta.thinkingdata.cn
如果您使用的是私有化服务,需要注意的是支付宝小程序SDK强制使用https协议,因此需要您自行配制https证书,绑定TA私有化服务器。2.载入支付宝小程序SDK
在app.js
中引入小程序SDK,本文档以SDK置入utils
文件夹为例
import thinkingSDK from './util/thinkingdata.js';
App({
onLaunch(options) {
//在 App onLaunch 中添加以下代码
this.thinkingSDK = thinkingSDK;
}
})
在其他页面中可使用getApp()
方法取得小程序实例,即可调用SDK的各方法
var app = getApp();
app.thinkingSDK.login("thinkingdata");
3. 设置用户ID
在SDK载入完成之后,SDK将会自动生成一个ID作为每个用户的默认访客ID,该ID将会作为用户在未登录状态下的身份识别,如果您希望以openid作为用户标识,可使用authorizeOpenID
设置。如果您的用户存在账号ID,请使用login
设置用户的账号ID。
a) 以OpenID作为访客ID
如果您希望以openid作为用户标识,则可以使用以下方法将openid作为用户标识:
//传入值为openid
app.thinkingSDK.authorizeOpenID("openid");
需要注意以下几点:
- 设置后的OpenID将会被设置为访客ID
#distinct_id
,如果使用login
传入账号ID,则根据用户识别规则,会优先以账号ID为准 - 如果需要传入OpenID,请在上传数据之前调用本方法,以免出现重复计算用户的现象
b) 设置账号ID
在用户产生登录行为时,可调用login
来设置用户的账号ID。TA平台优先以账号ID作为身份标识,设置后的账号ID将会被保存,多次调用login
将会覆盖先前的账号ID:
//用户的登录唯一标识,此数据对应上报数据里的#account_id,此时"#account_id"的值为"login123"
app.thinkingSDK.login("login123");
//再次调用login调整账号ID,此时"#account_id"的值为"loginabc"
app.thinkingSDK.login("loginabc");
请注意,该方法不会上传用户登录的事件
c) 清除账号ID
在用户产生登出行为之后,可调用logout
来清除账号ID,在下次调用login
之前,将会以访客ID作为身份识别ID:
//去除上报数据里的#account_id,之后的数据将不带有"#account_id"
app.thinkingSDK.logout();
请注意,该方法不会上传用户登出的事件
3. 发送事件
您可以直接调用track
上传自定义事件,建议您根据先前梳理的文档来设置事件的属性以及发送信息的条件,此处以购买商品为范例:
app.thinkingSDK.track(
'Purchase', //追踪事件的名称
{
"Goods_id":"ID_123",
"Goods_price":25
} //需要上传的事件属性
);
track
接口共有两个参数,第一个参数为事件的名称,第二个参数为事件的属性- 事件的名称是字符串,只能以字母开头,可包含数字,字母和下划线“_”,长度最大为50个字符,对字母大小写不敏感。
- 事件的属性是JSON对象,其中每个元素代表一个属性。
- 元素的key对应属性的名称,规定只能以字母开头,包含数字,字母和下划线“_”,长度最大为50个字符,对字母大小写不敏感。
- 元素的value为该属性的值,支持
String
、Number
、Boolean
和Date
。
4. 用户属性
a) 设置用户属性(userSet
)
对于一般的用户属性,您可以调用userSet
来进行设置,使用该接口上传的属性将会覆盖原有的属性值,如果之前不存在该用户属性,则会新建该用户属性
//设置用户属性
app.thinkingSDK.userSet({"user_name":"userName"});
与上传事件时的事件属性一致,此处传入的用户属性也是JSON对象,key对应属性的名称,规定只能以字母开头,包含数字,字母和下划线“_”,长度最大为50个字符,对字母大小写不敏感,value为该属性的值,支持String
、Number
、Boolean
和Date
。
b) 初始化用户属性(userSetOnce
)
如果您要上传的用户属性只要设置一次,则可以调用userSetOnce
来进行设置,当该属性之前已经有值的时候,将会忽略这条信息。
//以设置用户名为例,如果用户名已设置,则忽略本次设置,如果不存在,则设置为传入值
app.thinkingSDK.userSetOnce({ "user_name":"userNameABC" });
与上传事件时的事件属性一致,此处传入的用户属性也是JSON对象,key对应属性的名称,规定只能以字母开头,包含数字,字母和下划线“_”,长度最大为50个字符,对字母大小写不敏感,value为该属性的值,支持String
、Number
、Boolean
和Date
。
c) 累加用户属性(userAdd
)
当您要上传数值型的属性时,您可以调用userAdd
来对该属性进行累加操作,如果该属性还未被设置,则会赋值0后再进行计算
//以付费为例,用户每次付费时调用此接口,则累计付费金额'total_revenue'字段每次会做加累加操作
app.thinkingSDK.userAdd({"total_revenue":50});
与上传事件时的事件属性一致,此处传入的用户属性也是JSON对象,key对应属性的名称,规定只能以字母开头,包含数字,字母和下划线“_”,长度最大为50个字符,对字母大小写不敏感,value为该属性需要累加的值,只支持Number
类型,传入负数相当于做减法。
d) 删除用户(userDel
)
如果您要删除某个用户,可以调用userDel
将这名用户删除,您将无法再查询该名用户的用户属性,但该用户产生的事件仍然可以被查询到
app.thinkingSDK.userDel();
5. 相关预置属性
5.1 所有事件带有的预置属性
以下预置属性,是支付宝小程序 SDK中所有事件(包括自动采集事件)都会带有的预置属性
属性名 | 中文名 | 说明 |
---|---|---|
#ip | IP地址 | 用户的IP地址,TA将以此获取用户的地理位置信息 |
#country | 国家 | 用户所在国家,根据IP地址生成 |
#country_code | 国家代码 | 用户所在国家的国家代码(ISO 3166-1 alpha-2,即两位大写英文字母),根据IP地址生成 |
#province | 省份 | 用户所在省份,根据IP地址生成 |
#city | 城市 | 用户所在城市,根据IP地址生成 |
#device_model | 设备型号 | 用户设备的型号,如iPhone 8等 |
#screen_height | 屏幕高度 | 用户设备的屏幕高度,如1920等 |
#screen_width | 屏幕宽度 | 用户设备的屏幕高度,如1080等 |
#manufacturer | 设备制造商 | 用户设备的制造商,如Apple,vivo等 |
#os_version | 操作系统版本 | iOS 11.2.2、Android 8.0.0等 |
#os | 操作系统 | 如Android、iOS等 |
#network_type | 网络状态 | 上传事件时的网络状态,如WIFI、3G、4G等 |
#lib | SDK类型 | 您接入SDK的类型,如Android,iOS等 |
#lib_version | SDK版本 | 您接入SDK的版本 |
#scene | 场景值 | 微信小程序启动时传入的场景值 |