微信小游戏 SDK 使用指南

本指南将会为您介绍如何使用微信小游戏SDK接入您的项目,建议在接入开始前,先阅读数据规则一章,在了解TA数据规则后再进行接入。

最新版本为:1.1.1

更新时间为:2019-06-06

微信小游戏 SDK已停止后续开发,项目转移至小程序\小游戏 SDK,本文档仅供老版本的用户进行参考

1. 引入微信小游戏SDK

1.下载微信小游戏 SDK

2.解压压缩包,并把thinkingdata.js置入您的项目中

3.在程序最开始(如game.js中)引入小程序SDK

require('thinkingdata.js');

4.初始化SDK

 var appid = APPID;
 var server_url = APPURL;
 GameGlobal.tgasdk.init(appid, server_url);
  • appid是您的项目的APP_ID,在您申请项目时会给出

  • server_url为上传数据的URL

请先在微信公众平台的开发设置中,将数据传输URL加入到服务器域名的 request

如果您使用的是云服务,请输入以下URL:

https://receiver.ta.thinkingdata.cn

如果您使用的是私有化部署的版本,由于微信的服务器域名中不能出现端口号,因此需要您自行配制域名,绑定TA私有化服务器。

3. 设置用户ID

在SDK载入完成之后,SDK将会自动生成一个ID作为每个用户的默认访客ID,该ID将会作为用户在未登录状态下的身份识别,如果您希望以微信的openid作为用户标识,可使用authorizeOpenID设置。如果您的用户存在账号ID,请使用login设置用户的账号ID。

a) 传入OpenID

如果您希望以微信的openid作为用户标识,则可以使用以下方法将openid作为用户标识:

//传入值为openid
GameGlobal.tgasdk.authorizeOpenID('authorizeOpenID');

需要注意以下几点:

  1. 设置后的OpenID将会被设置为访客ID#distinct_id,如果使用login传入账号ID,则根据用户识别规则,会优先以账号ID为准
  2. 如果需要传入OpenID,请在上传数据之前调用本方法,以免出现重复计算用户的现象

b) 设置账号ID

在用户产生登录行为时,可调用login来设置用户的账号ID。TA平台优先以账号ID作为身份标识,设置后的账号ID将会被保存,多次调用login将会覆盖先前的账号ID:

//用户的登录唯一标识,此数据对应上报数据里的#account_id,此时"#account_id"的值为"ABC_123456"
GameGlobal.tgasdk.login("ABC_123456");

//再次调用login调整账号ID,此时"#account_id"的值为"XYZ_987654"
GameGlobal.tgasdk.login("XYZ_987654");

请注意,该方法不会上传用户登录的事件

c) 清除账号ID

在用户产生登出行为之后,可调用logout来清除账号ID,在下次调用login之前,将会以访客ID作为身份识别ID:

//去除上报数据里的#account_id,之后的数据将不带有"#account_id"
GameGlobal.tgasdk.logout();

请注意,该方法不会上传用户登出的事件

3. 发送事件

您可以直接调用track上传自定义事件,建议您根据先前梳理的文档来设置事件的属性以及发送信息的条件,此处以玩家购买道具作为范例:

GameGlobal.tgasdk.track(
  'ShopBuy', //追踪事件的名称
  {
    Item:'药水',
    ItemNum:1,
    MoneyType:10001,
    Cost:100
  } //需要上传的事件属性
);
  • track接口共有两个参数,第一个参数为事件的名称,第二个参数为事件的属性
  • 事件的名称是字符串,只能以字母开头,可包含数字,字母和下划线“_”,长度最大为50个字符,对字母大小写不敏感。
  • 事件的属性是对象类型,即以name : value的形式表示,每个元素代表一个属性。
  • 元素的name对应属性的名称,规定只能以字母开头,包含数字,字母和下划线“_”,长度最大为50个字符,对字母大小写不敏感。
  • 元素的value为该属性的值,支持StringNumberBooleanDate

微信小游戏SDK将会在小游戏启动时,获取场景值,如果能取到场景值,则在本次小游戏的生命周期中,所有事件都会带有#scene场景值这一属性。

4. 用户属性

a) 设置用户属性(userSet

对于一般的用户属性,您可以调用userSet来进行设置,使用该接口上传的属性将会覆盖原有的属性值,如果之前不存在该用户属性,则会新建该用户属性

//设置用户属性
GameGlobal.tgasdk.userSet({level:15});

与上传事件时的事件属性一致,此处传入的用户属性也是对象类型,name对应属性的名称,规定只能以字母开头,包含数字,字母和下划线“_”,长度最大为50个字符,对字母大小写不敏感,value为该属性的值,支持StringNumberBooleanDate

b) 初始化用户属性(userSetOnce

如果您要上传的用户属性只要设置一次,则可以调用userSetOnce来进行设置,当该属性之前已经有值的时候,将会忽略这条信息。

//以设置用户名为例,如果用户名已设置,则忽略本次设置,如果不存在,则设置为传入值
GameGlobal.tgasdk.userSetOnce({UserName:'TGA'});

与上传事件时的事件属性一致,此处传入的用户属性也是对象类型,name对应属性的名称,规定只能以字母开头,包含数字,字母和下划线“_”,长度最大为50个字符,对字母大小写不敏感,value为该属性的值,支持StringNumberBooleanDate

c) 累加用户属性(userAdd

当您要上传数值型的属性时,您可以调用userAdd来对该属性进行累加操作,如果该属性还未被设置,则会赋值0后再进行计算

//以升级为例,用户每次升级时调用此接口,则'level'字段每次会做加1的处理
GameGlobal.tgasdk.userAdd({level:1});

与上传事件时的事件属性一致,此处传入的用户属性也是对象类型,name对应属性的名称,规定只能以字母开头,包含数字,字母和下划线“_”,长度最大为50个字符,对字母大小写不敏感,value为该属性需要累加的值,只支持Number类型,传入负数相当于做减法。

d) 删除用户(userDel

如果您要删除某个用户,可以调用userDel将这名用户删除,您将无法再查询该名用户的用户属性,但该用户产生的事件仍然可以被查询到

GameGlobal.tgasdk.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等
#os_version 操作系统版本 iOS 11.2.2、Android 8.0.0等
#manufacturer 设备制造商 用户设备的制造商,如Apple,vivo等
#os 操作系统 如Android、iOS等
#network_type 网络状态 上传事件时的网络状态,如WIFI、3G、4G等
#lib SDK类型 您接入SDK的类型,如Android,iOS等
#lib_version SDK版本 您接入SDK的版本
#scene 场景值 微信小游戏启动时传入的场景值

results matching ""

    No results matching ""