帮助中心 > 技术文档 > 客户端SDK > 小程序 SDK > 微信小程序 SDK >SDK配置

微信小程序SDK接入流程主要分为两个步骤(两个文档)

1、SDK配置:将对应的SDK集成到您的产品项目中,然后进行初始化代码处理;
2、SDK接入:将需要埋点的数据,按照SDK包装不同的方法进行数据上送,其中功能主要包含两大类:全埋点(自动采集数据上送)、自定义埋点(手动设置业务数据上送)。


1. 集成SDK

下载请前往 【Web SDK资源下载

说明:请根据自身开发框架,选择正确的初始化流程.

原生
uni-app编译为小程序
Taro
mpvue
WePY

注:引入路径根据自身情况修改。

1.1 原生小程序

app.js

var hn = require('./hinaData.cjs.js');

// 配置初始化参数
hn.setPara({
    name: 'hn',
    // 配置采集上报地址URL(在线申请),注意:从海纳嗨数平台上获取对应项目的数据上报地址;
    serverUrl: '数据接收地址',
    // 全埋点控制开关
    autoTrack:{
        appLaunch: true,         // 默认为 true,false 则关闭 H_MPLaunch 事件采集
        appShow: true,           // 默认为 true,false 则关闭 H_MPShow 事件采集
        appHide: true,           // 默认为 true,false 则关闭 H_MPHide 事件采集
        pageShow: true,         // 默认为 true,false 则关闭 H_MPViewScreen 事件采集
        pageShare: true,         // 默认为 true,false 则关闭 H_MPShare 事件采集
        mpClick: false,         // 默认为 false,true 则开启 H_MPClick 事件采集
        mpFavorite: true,       // 默认为 true,false 则关闭 H_MPAddFavorites 事件采集
        pageLeave: false         // 默认为 false, true 则开启 H_MPPageLeave事件采集
    },
    // 自定义渠道追踪参数,如 sourceChannel: ["custom_param"]
    sourceChannel: [],
    // 是否允许控制台打印查看埋点数据(建议开启查看)
    showLog: true,
    // 是否允许修改 onShareAppMessage 里 return 的 path,用来增加(登录 ID,分享层级,当前的 path),在 app onShow 中自动获取这些参数来查看具体分享来源、层级等
    allowAmendSharePath: true
});

// 初始化 SDK
if(不使用 openid 作为匿名 ID){
    hn.init();
}
// 如果需要使用 openid 作为匿名 ID,请单独获取 openid 之后调用 hn.setOpenid() 方法
wx.request({
    url: '后端获取 OpenID 的请求',
    success: function(res){
        if(res.OpenID){
          hn.identify(res.OpenID,true);
        }
    },
    complete: function(){
        // 如果获取 openid 失败,SDK 会以 UUID 作为匿名 ID 发数据
        hn.init();
    }
});

App({
    onLaunch : function( options ){},
    onShow : function( options ){},
    onHide : function(){}
});

1.2 uni-app

main.js

import Vue from 'vue';
import hn from './hinaData.esm.js'

// 配置初始化参数
hn.setPara({
    name: 'hn',
    // 配置采集上报地址URL(在线申请),注意:从海纳嗨数平台上获取对应项目的数据上报地址;
    serverUrl: '数据接收地址',
    // 全埋点控制开关
    autoTrack:{
        appLaunch: true,     // 默认为 true,false 则关闭 H_MPLaunch 事件采集
        appShow: true,       // 默认为 true,false 则关闭 H_MPShow 事件采集
        appHide: true,       // 默认为 true,false 则关闭 H_MPHide 事件采集
        pageShow: true,      // 默认为 true,false 则关闭 H_MPViewScreen 事件采集
        pageShare: true,     // 默认为 true,false 则关闭 H_MPShare 事件采集
        mpClick: false,      // 默认为 false,true 则开启 H_MPClick 事件采集
        mpFavorite: true,    // 默认为 true,false 则关闭 H_MPAddFavorites 事件采集
        pageLeave: false     // 默认为 false, true 则开启 H_MPPageLeave事件采集
    },
    // 自定义渠道追踪参数,如 sourceChannel: ["custom_param"]
    sourceChannel: [],
    // 是否允许控制台打印查看埋点数据(建议开启查看)
    showLog: true,
    // 是否允许修改 onShareAppMessage 里 return 的 path,用来增加(登录 ID,分享层级,当前的 path),在 app onShow 中自动获取这些参数来查看具体分享来源、层级等
    allowAmendShare:ath: true
});

// 初始化 SDK
if(不使用 openid 作为匿名 ID){
    hn.init();
}

// 如果需要使用 openid 作为匿名 ID,请单独获取 openid 之后调用 hn.setOpenid() 方法
wx.request({
    url: '后端获取 OpenID 的请求',
    success: function(res){
        if(res.OpenID){
          hn.identify(res.OpenID,true);
        }
    },
    complete: function(){
        // 如果获取 openid 失败,SDK 会以 UUID 作为匿名 ID 发数据
        hn.init();
    }
});

import App from './App';
Vue.config.productionTip = false;

App.mpType = 'app';

const app = new Vue({
    ...App
});
app.$mount();

1.3 Taro

app.jsx

import Taro, { Component } from '@tarojs/taro'
import Index from './pages/index'
import hn from './hinaData.esm.js'

// 配置初始化参数
hn.setPara({
    name: 'hn',
    // 配置采集上报地址URL(在线申请),注意:从海纳嗨数平台上获取对应项目的数据上报地址;
    serverUrl: '数据接收地址',
    // 全埋点控制开关


    autoTrack:{
        appLaunch: true,     // 默认为 true,false 则关闭 H_MPLaunch 事件采集
        appShow: true,       // 默认为 true,false 则关闭 H_MPShow 事件采集
        appHide: true,       // 默认为 true,false 则关闭 H_MPHide 事件采集
        pageShow: true,      // 默认为 true,false 则关闭 H_MPViewScreen 事件采集
        pageShare: true,     // 默认为 true,false 则关闭 H_MPShare 事件采集
        mpClick: false,      // 默认为 false,true 则开启 H_MPClick 事件采集
        mpFavorite: true,    // 默认为 true,false 则关闭 H_MPAddFavorites 事件采集
        pageLeave: false     // 默认为 false, true 则开启 H_MPPageLeave事件采集
    },
    // 自定义渠道追踪参数,如 sourceChannel: ["custom_param"]
    sourceChannel: [],
    // 是否允许控制台打印查看埋点数据(建议开启查看)
    showLog: true,
    // 是否允许修改 onShareAppMessage 里 return 的 path,用来增加(登录 ID,分享层级,当前的 path),在 app onShow 中自动获取这些参数来查看具体分享来源、层级等
    allowAmendSharePath: true
});

// 初始化 SDK
if(不使用 openid 作为匿名 ID){
    hn.init();
}

// 如果需要使用 openid 作为匿名 ID,请单独获取 openid 之后调用 hn.setOpenid() 方法
wx.request({
    url: '后端获取 OpenID 的请求',
    success: function(res){
        if(res.OpenID){ 
          hn.identify(res.OpenID,true);         
        }
    },
    complete: function(){
        // 如果获取 openid 失败,SDK 会以 UUID 作为匿名 ID 发数据
        hn.init();
    }
});

class App extends Component {
    config = {
        pages: [
            'pages/index/index'
        ],
        window: {
            backgroundTextStyle: 'light',
            navigationBarBackgroundColor: '#fff',
            navigationBarTitleText: 'WeChat',
            navigationBarTextStyle: 'black'
        }
    }
    constructor(){
        super();
    }
}

1.4 mpvue

main.js

import hn from './hinaData.esm.js'
import Vue from 'vue';
import App from './App';

// 配置初始化参数
hn.setPara({
    name: 'hn',
    // 配置采集上报地址URL(在线申请),注意:从海纳嗨数平台上获取对应项目的数据上报地址;
    serverUrl: '数据接收地址',
    // 全埋点控制开关
    autoTrack:{
        appLaunch: true,     // 默认为 true,false 则关闭 H_MPLaunch 事件采集
        appShow: true,       // 默认为 true,false 则关闭 H_MPShow 事件采集
        appHide: true,       // 默认为 true,false 则关闭 H_MPHide 事件采集
        pageShow: true,      // 默认为 true,false 则关闭 H_MPViewScreen 事件采集
        pageShare: true,     // 默认为 true,false 则关闭 H_MPShare 事件采集
        mpClick: false,      // 默认为 false,true 则开启 H_MPClick 事件采集
        mpFavorite: true,    // 默认为 true,false 则关闭 H_MPAddFavorites 事件采集
        pageLeave: false     // 默认为 false, true 则开启 H_MPPageLeave事件采集
    },
    // 自定义渠道追踪参数,如 sourceChannel: ["custom_param"]
    sourceChannel: [],
    // 是否允许控制台打印查看埋点数据(建议开启查看)
    showLog: true,
    // 是否允许修改 onShareAppMessage 里 return 的 path,用来增加(登录 ID,分享层级,当前的 path),在 app onShow 中自动获取这些参数来查看具体分享来源、层级等
    allowAmendSharePath: true
});

// 初始化 SDK
if(不使用 openid 作为匿名 ID){
    hn.init();
}

// 如果需要使用 openid 作为匿名 ID,请单独获取 openid 之后调用 hn.setOpenid() 方法
wx.request({
    url: '后端获取 OpenID 的请求',
    success: function(res){
        if(res.OpenID){             
          hn.identify(res.OpenID,true);
        }
    },
    complete: function(){
        // 如果获取 openid 失败,SDK 会以 UUID 作为匿名 ID 发数据
        hn.init();
    }
});

Vue.config.productionTip = false;

App.mpType = 'app';

const app = new Vue(App);
app.$mount();

1.5 WePY

app.wpy

import hn from './hinaData.esm.js'
import wepy from 'wepy';

// 配置初始化参数
hn.setPara({
    name: 'hn',
    // 配置采集上报地址URL(在线申请),注意:从海纳嗨数平台上获取对应项目的数据上报地址;
    serverUrl: '数据接收地址',
    // 全埋点控制开关
    autoTrack:{
        appLaunch: true,   // 默认为 true,false 则关闭 H_MPLaunch 事件采集
        appShow: true,     // 默认为 true,false 则关闭 H_MPShow 事件采集
        appHide: true,     // 默认为 true,false 则关闭 H_MPHide 事件采集
        pageShow: true,    // 默认为 true,false 则关闭 H_MPViewScreen 事件采集
        pageShare: true,   // 默认为 true,false 则关闭 H_MPShare 事件采集
        mpClick: false,    // 默认为 false,true 则开启 H_MPClick 事件采集
        mpFavorite: true,  // 默认为 true,false 则关闭 H_MPAddFavorites 事件采集
        pageLeave: false   // 默认为 false, true 则开启 H_MPPageLeave事件采集
    },
    // 自定义渠道追踪参数,如 sourceChannel: ["custom_param"]
    sourceChannel: [],
    // 是否允许控制台打印查看埋点数据(建议开启查看)
    showLog: true,
    // 是否允许修改 onShareAppMessage 里 return 的 path,用来增加(登录 ID,分享层级,当前的 path),在 app onShow 中自动获取这些参数来查看具体分享来源、层级等
    allowAmendSharePath: true
});

// 初始化 SDK
if(不使用 openid 作为匿名 ID){
    hn.init();
}

// 如果需要使用 openid 作为匿名 ID,请单独获取 openid 之后调用 hn.setOpenid() 方法
wx.request({
    url: '后端获取 OpenID 的请求',
    success: function(res){
        if(res.OpenID){
          hn.identify(res.OpenID,true);
        }
    },
    complete: function(){
        // 如果获取 openid 失败,SDK 会以 UUID 作为匿名 ID 发数据
        hn.init();
    }
});  

export default class extends wepy.app {
    onLaunch(option) {}
}

2. SDK 初始化参数说明

参数 类型 默认值 含义 备注
name String hn SDK 使用的一个默认的全局变量,会注册在 App 全局函数内,在 Page 中可以通过 app[name].track 来使用
serverUrl String 数据接收地址 注意:从海纳嗨数平台上获取对应项目的数据上报地址;
autoTrack Object 是否开启自动采集 六个属性参数( appLaunch、 appShow、 appHide、 pageShow、 pageShare、mpClick、pageLeave),其中 mpClick、 pageLeave 默认是 false,其他是 true。即默认采集五个事件 H_MPLaunch、H_MPShow、H_MPHide、H_MPViewScreen、H_MPShare
showLog Boolean true 是否打印 log 设置 true 后会在模拟器控制台打 log,会显示发送的数据,设置 false 表示不显示。
sendTimeout Number 1000 请求发送超时时间(如果一个请求发送后,超过规定时间没响应,则继续发送下一条数据) 单位为毫秒;
useClientTime Boolean false 是否使用客户端时间 因为客户端系统时间的不准确,会导致发生这个事件的时间有误,所以这里默认为 false ,表示不使用客户端时间,使用服务端时间,如果设置为 true 表示使用客户端系统时间。
batchSend Boolean true 小程序中是否使用批量发送数据功能
datasendTimeout Number 3000 请求发送取消时间 单位为毫秒,请求发送后,在规定时间内未返回结果,则取消请求;
sourceChannel Array 需要解析的渠道参数 默认情况下,只会解析参数 utm_source、 utm_content、 utm_campaign、 utm_medium、 utm_term 设置到预置事件中,可以通过配置该参数来解析其他自定义参数,例如[‘channel_code’],channelcode 属性会作为预置事件的预置属性,latestchannel_code 会作为所有事件的公共属性上报;
isPersistentSave Object 是否需要将最近一次渠道信息保存到 wxStorage 中
presetProperties Object 配置采集指定预置属性
autotrackExcludePage Object 配置指定页面不采集 H_MPViewScreen 页面浏览事件
framework Object 如果使用 Taro 框架开发小程序,元素点击事件会触发多次,配置 Taro 参数之后可以只采集一次 一个属性参数(taro);可配置为 framework: {taro: Taro}。
presetEvents Object 预置事件的自定义控制 两个属性参数(moments_page, collect_element;moments_page 支持控制是否开启朋友圈单页面数据采集,默认 false, 配置 true 单页面可以发送数据;collect_element 用户点击元素时会触发这个函数,并返回点击事件信息,用来判断是否要采集当前这个元素,返回真表示采集,返回假表示不采集;

注意
1、“数据接收地址”获取方式,请参考【采集上报地址获取】,注意:从海纳嗨数平台上获取对应项目的数据上报地址;
2、更多初始化配置,请参考【SDK接入

作者:张永健  创建时间:2024-03-06 17:51
最后编辑:王建华  更新时间:2024-09-05 21:06