字节跳动模板小程序
本文包含友盟+字节跳动模板小程序统计分析SDK的接入方法、接入验证、注意事项等内容。按以下步骤成功集成SDK后,即可查看友盟+为您字节跳动模板小程序采集的数据。
适用范围
该文档适用于友盟+字节小程序统计SDK 2.4.0及以上版本。

适用场景
统计分析由小程序模板生成的多个小程序数据(包含但不限于,基础指标、自定义事件、推广分析等)
一、字节小程序统计SDK快速集成
1. 注册友盟+账号
登录友盟+官网,按照引导注册友盟+账号
特别提醒:我们建议开发者在注册账号时使用企业邮箱,避免使用个人邮箱注册,防止由于个人离职带来的问题,建议使用的账号形式 :umeng@企业域名、apps@企业域名、dev@企业域名
2. 小程序模板接入SDK
注:目前字节跳动小程序支持发布抖音、头条、头条极速版等应用,但是审核等流程是分端进行的。故如果您开发了一个字节跳动小程序,需要上到3个应用上发布,建议您创建3个应用,例如:xx小程序-头条,xx小程序-抖音,xx小程序-头条极速;这样您可以在产品中看到总数据,也可以看到分端的数据。
2.1 下载SDK
2.2 集成
下载的文件放在字节跳动小程序项目里,比如 utils 目录下。下面会假设 SDK 文件放在 utils 目录下。
在字节跳动小程序项目根目录的启动文件 app.js 文件的顶部添加以下JS代码
var uma = require('./utils/uma.min');
App({
umengConfig:{
appKey:'YOUR_UMENG_APPKEY',//由友盟分配的APP_KEY
autoGetOpenid:true,// 是否需要通过友盟后台获取openid或匿名openid,如若需要,请到友盟后台设置appId及secret
debug:true,//是否打开调试模式
uploadUserInfo:true// 自动上传用户信息,设为false取消上传,默认为false
}
});注意:切记一定要正确设置umengConfig,不要拼写错误
2.3 使用 anonymousOpenid
请一定设置anonymousOpenid 上报,因为 umeng统计强制依赖 anonymousOpenID 做统计分析,如果不设置anonymousOpenid 上报,则数据不会发送。上报方式如下两种:
方法1:开启autoGetOpenid: true并在友盟后台设置有效appId及secret信息,否则获取不到 anonymousOpenid,用户数据不会上报。填写appkey地址:产品「设置管理-应用-基础设置」,点击「修改」,即可以填写AppSecret
方法2:
如果您不填写appsecrect通过友盟自动获取,则 必须通过手动上报的方式来上报anonymousOpenid 。**设置方式:
设置 autoGetOpenId 为 false
开发者需要额外添加代码上传anonymousOpenid
// 调用此方法上报anonymousOpenid tt.uma.setAnonymousOpenId(anonymousOpenId)
为什么要使用anonymousOpenid?因为字节系 APP 不强制登录也可以使用,且允许用户打开小程序。所以字节系 APP默认提供了anonymousOpenid 来统计设备信息。故需要设置 anonymousOpenid 来使友盟+统计用户信息,防止不会在用户没有登录时,丢掉用户数据。
上报OpenID (可选)
openid是用户登录字节系 APP,并且打开小程序进行授权后,可以获取到登录用户在小程序中的唯一识别id,即openid。可以上报openid,这样在使用分群或者数据导出功能时,就可以获取到用户在小程序中的唯一识别id,进行运营或者消息触达了。设置方式:开发者需要额外添加代码上传openid
// 调用此方法上报openid
tt.uma.setOpenid(openid)2.4 增加友盟+数据服务域名
操作步骤:登录字节开发者平台,进入小程序的 开发-> 服务器域名,把 https://umini.shujupie.com 加入 request合法域名,如图:
2.5 创建小程序并申请Appkey
服务商可通过OpenAPI接口申请Appkey(平台创建小程序成功后,服务商发起API调用申请Appkey,申请成功后,将在友盟后台自动创建对应小程序)。收到友盟+的Appkey之后,将appkey写入小程序模板SDK中appkey参数。所有新建小程序,将呈现在服务商账户下。OpenAPI详情,请见下述文档:https://developer.umeng.com/open-api/docs/com.umeng.umini/umeng.umini.createMiniApp/1
UmengUminiCreateMiniAppParam param =newUmengUminiCreateMiniAppParam();
param.setName("应用名称");
param.setType("mini");
param.setPlatform("平台");
param.setLanguage("CN");
param.setFirstLevel("一级分类");
param.setSecondLevel("二级分类");
param.setDescription("描述……");
param.setMiniAppId("");
param.setMiniAppSecret("");
param.setMiniPublicKey("");
param.setMiniPrivateKey("");
try{
UmengUminiCreateMiniAppResult result = apiExecutor.execute(param);
System.out.println("1、"+JSONObject.toJSONString(result));
}catch(OceanException e){
System.out.println("1、errorCode="+ e.getErrorCode()+", errorMessage="+ e.getErrorMessage());
}特别说明:
行业分类请参考:https://developer.umeng.com/docs/147615/detail/169442
如果您集成中遇到问题,或创建应用数超过300,欢迎钉钉扫描下方二维码或搜索:31891587,加入VIP服务群,将有工作人员为您服务
2.6 demo
具体集成方式可参考demo:https://github.com/umeng/mp-demos
二、高级功能
1. 自定义事件
上报代码
trackEvent(eventId,params)
参数:
id(string): 事件ID需在官网申请,长度在128个字符内
params(object|string):
返回值: * 无
trackEvent('事件ID');
trackEvent('事件ID',{'属性1':'属性值1','属性2':'属性值2'});
// 字符型属性值
trackEvent('ViewProductDetails',{'Category':'家电','ItemName':'西门子冰箱'});
// 数值型属性值
trackEvent('Pay',{'PayAmount':6999});注意(重要):
params为object类型时,属性值仅支持字符串和数值两种类型;
请在App.onLaunch之后调用事件。
参数eventId和事件标签都不能为null,也不能为空字符串"", 参数eventId长度不能超过128个字符,参数label长度不能超过256个字符。
以下保留字段,不能作为event id 及key的名称:id、ts、du、token、device_name、device_model 、device_brand、country、city、channel、province、appkey、app_version、access、launch、pre_app_version、terminate、no_first_pay、is_newpayer、first_pay_at、first_pay_level、first_pay_source、first_pay_user_level、first_pay_version、page、path、openid、unionid、scene
2. 设置应用用户ID
当用户在您的小程序上注册以后,您的应用服务端会在用户数据库里添加一条记录并且分配一个用户ID,可以通过 setUserid 接口设置该用户ID,以便后续做数据打通或基于应用用户ID做计算时使用。
setUserid(userId, provider)参数:
userId(string): 您的应用为用户生成的唯一ID
provider(string): ID提供方,兼容老接口使用,无特殊需要应忽略该参数
返回值:无示例:
setUserid(userId, provider)3. 上传用户信息
开发者可通过在配置中添加 uploadUserInfo: true 选项来使友盟自动上报用户信息。将 uploadUserInfo 设置为 false 则取消上报用户信息。上传的用户信息为小程序平台公开可获取的用户基础信息,例如昵称、头像、性别、地区、语言等,这些信息将用于U-MiniProgram产品中与用户相关的功能统计中 (注:iOS 字节跳动小程序会在触发onhide时上报,但是Android版需要切换到多任务触发onhide时才上报)。示例:
var uma =require('./utils/uma.min');
App({
umengConfig:{
appKey:'YOUR_UMENG_APPKEY',//由友盟分配的APP_KEY
// 授权友盟+通过后台自动获取openid或匿名openid,可防止数据统计过程中因未采集到openid或匿名 openid 而造成
// 数据丢失的情况。开启后请到友盟+小程序应用设置中添加appId及secret信息
autoGetOpenid:true,
debug:true,//是否打开调试模式
uploadUserInfo:true// 自动上传用户信息,设为false取消上传,默认为false
}
});三、SDK成功接入验证方法
该方案仅提供验证是否集成成功的方法,由于在开发环境下可能会存在数据不完整的情况,请您正式发布小程序后在验证数据正确性。
按照上述描述方法引入SDK;
进入IDE打开调试工具中的console选项,若看到有 “[umeng] — 集成SDK成功”提示 即表示SDK集成成功。
四、说明事项
慎重调用tt.clearStorage()以及tt.clearStorageSync()接口!SDK会将用户相关操作数据缓存在客户端数据存储模块,在特定时间启动发送策略。若调用该接口可导致数据统计不准确的问题;
若用户在使用小程序过程强制关闭字节跳动产品有可能会造成统计数据丢失的情况。