微信小程序SDK接入指南

前置条件

配置request合法域名:进入微信小程序后台→设置→开发者设置,添加request 合法域名:https://app.linkflowtech.com。

小程序基础库支持:版本不低于2.4。

绑定开放平台:小程序与其他公众号、小程序绑定到同一开放平台(非必须,如无法绑定开放平台,需要重新设计identify逻辑)。

配置环境

引入SDK

点击下载最新小程序SDK ,将解压得到的文件 linkflow-wechatapp.min.js 和 linkflow-conf.js 拷贝到小程序项目的utils文件夹中。

配置linkflow-conf.js

 exports.token  =  'MTE4LWMzZWU2YzI3LTBlNzMtNDJiOS1iThiMzM0NzIxNDU3YQ==';  //小程序绑定到linkflow之后,页面获取的token

   exports.appId  =  'wxfd45483b0c0609';  // 小程序的 appid

   exports.defaultPath  =  'pages/index/index';  // 小程序的默认首页, 用于分享时path为空时

   exports.apihost  =  'https://app.linkflowtech.com';      

   exports.USE_CUSTOM_ANONYMOUS_ID  =  true  ;  

   exports.enablePagestayDuration = 1; // 是否记录页面停留时长,1 是,0 否,默认关闭

   exports.maxPagestayDuration = 1800; // 设置页面停留时长最大默认值:1800秒

引入js

在app.js文件顶部(其他代码之前)添加如下代码:

var linkflow = require("./utils/linkflow-wechatapp.min.js");

开始开发(埋点)

识别联系人(identify)

作用

实名联系人,标识该用户是谁,带有何种标识、特征等,例如:姓名、性别等。

更新用户属性。

与同一开放平台下其他公众号或者小程序打通:同一开放平台下,小程序用户进入之后,会根据identify中传的weChatInfo查找其他该平台下同一unionId的用户,查到则发生合并。

调用时机

【进入小程序】:用户进入小程序,判断localStorage是否存有用户信息;

——如果有,调用identify;

——如果没有,获取用户信息,再调用identify,并且用户信息存入localStorage。

【更新用户信息】:包括但不限于用户授权、完善用户信息等所有可能获取到用户信息的时候,例如:用户授权手机号、在用户信息页完善个人信息时。

示例代码

var userInfo = {
 
    externalId:'unionId', //必传。用户唯一标志。默认情况下用户unionId作为此字段的值。
 
    nickName:'NICKNAME',
 
    mobilePhone:'mobilePhone',
 
    avatarUrl:'AVATARURL',
 
    gender:1   //  1:男  2:女
 
    props:{      // 用户自定义属性
 
   attr1:  'Kk',    //attr1自定义字段属性ID
 
   attr2:  '2021-11-01 08:00:12'          //attr2自定义字段属性ID,日期类型格式:"yyyy-MM-dd hh:mm:ss"
 
    },
 
    weChatInfo: {
 
            unionId: 'unionId',//必传。 小程序用户unionId。
 
    }
 
}
 
getApp().linkflow.useCustomIdAsAnonymousId(openId) // 必传,小程序用户openId
 
// 在 `app.js` 中
 
this.linkflow.identify(userInfo, function() {
 
    // success
 
}, function(){
 
    // fail
 
})
 
 
// 在页面文件 `page.js` 中
 
var app = getApp()
 
app.linkflow.useCustomIdAsAnonymousId(openId) // 必传,小程序用户openId
 
app.linkflow.identify(userInfo, function() {
 
    // success
 
 }, function(){
 
    // fail
 
 })

发送事件(sendEvent)

前置条件

在linkflow平台,配置事件元数据,此步骤可由甲方管理员或者拥有配置权限角色来配置。

方法调用

发送事件的方法调用有两种方式:事件编码和事件ID。

示例代码

方式一(事件编码):

var app = getApp();
app.linkflow.sendEvent(
  {
    "event": 'UDE_10DGHSGAG2',
    "attr1": '重油污清洁剂',
    "attr2": 'ID3976687974636',
    "attr3": true,
    "attr4": 18,
    "attr5": '2000-01-11 12:11:18',
   "attr6": 35.28
  })

方式二(事件ID)

var app = getApp();

app.linkflow.sendEvent(

{

"alias": 'mini_GMgame_Start_test',//事件ID

"props": {

"start_test": "test0427" //属性ID

}

})

参数说明

字段名

属性名称

数据类型

是否必传

备注说明

externalId

外部系统唯一id

字符串

小程序unionId用户

nickName

昵称

字符串



mobilePhone

手机号

字符串



avatarUrl

头像

字符串



gender

性别

整数


1 男 ; 2 女

birthday

出生年月

日期


如:1990-11-01

name

姓名

字符串



country

国家

字符串



province

字符串



city

字符串



street

街道

字符串



props

自定义属性

对象


自定义属性

weChatInfo

微信信息

对象

对象中只传unionId,如无法获取unionId,可不传

验证

SDK配置验证

小程序SDK正常初始化之后,用户打开小程序之后,SDK会自动追踪如下事件:

  • 启动小程序——首次打开小程序,或者关闭后打开小程序。(关闭小程序的情形包括:小程序崩溃,关闭微信进程)。
  • 展示小程序——解除锁屏或重新打开微信,将之前隐藏的小程序重新展示(非页面展示)。
  • 隐藏小程序——手机锁屏、小程序页面最小化时、最小化微信、离开小程序页面(看不到小程序了)。
  • 打开小程序页面——进入小程序页面。
  • 分享小程序页面——通过微信转发或其他形式将小程序页面分享。

可登录linkflow连接云,在主页右侧时间轴查看是否收到这些事件。如正常收到,则SDK配置无问题;否则,可查看

识别联系人

查找到该联系人:通过联系人页面搜索姓名、昵称或者手机号,也可通过搜索微信ID来查找到该用户。

查看用户画像:仔细核对页面左侧用户信息,确认是否与小程序端上传的数据一致。

发送事件

查找到该联系人:通过联系人页面搜索姓名、昵称或者手机号,也可通过搜索微信ID来查找到该用户。

查看时间轴:进入人物画像,点击时间轴,在时间轴中找到该事件,并仔细核对事件属性,确保事件属性与小程序端发送的事件一致。

wepy、Taro框架

如果您的小程序使用了 wepy或是Taro框架,打开小程序页面分享小程序页面这两个事件Linkflow无法自动获取,小程序开发人员需要手动添加代码,实现这两个事件的追踪。

wepy 框架

wepy 框架触发打开小程序页面(onPageShow) 以及分享小程序页面(onPageShare)示例如下:

let app = getApp();

wepy.page({

    //打开小程序页面

    onShow(options){

        app.linkflow.onPageShow(getCurrentPages());

    },

    

    //分享小程序页面

    onShareAppMessage(options){

        app.linkflow.onPageShare('pages/index');

    }

})

Taro 框架

Taro 框架触发打开小程序页面(onPageShow) 以及分享小程序页面(onPageShare)示例如下:

//打开小程序页面

Taro.useDidShow(

app.linkflow.onPageShow(getCurrentPages())

)

//分享小程序页面

Taro.useShareAppMessage(

app.linkflow.onPageShare("/pages/index")

)