【埋点】对接神策系统

657 阅读2分钟

埋点

埋点是数据收集领域的一个专业术语,指的是在应用的特定功能或用户行为上预设的数据收集点。这些点能够捕获并记录用户在使用应用时的各种行为数据,如点击、浏览、购买等。通过埋点收集的数据,企业可以对用户行为进行深入分析,从而优化产品功能、提升用户体验,并做出更精准的决策。

埋点主要分为以下几类:

  1. 页面埋点:主要记录用户在页面上的行为,如页面浏览、停留时间等。这种埋点有助于企业了解用户对于页面内容的兴趣和偏好。
  2. 点击埋点:记录用户点击某个按钮或链接的行为。这种埋点可以帮助企业分析用户的点击习惯,进而优化按钮或链接的布局和设计。
  3. 曝光埋点:当某个元素(如图片、广告等)在用户的屏幕上展示时,会触发曝光埋点。这种埋点可以衡量元素的展示效果,评估其对于用户的吸引力。
  4. 自定义事件埋点:根据企业的特定需求,自定义收集用户行为数据的点。这种埋点灵活性高,可以满足企业对于特殊数据的收集需求。

1. 集成神策分析 SDK

登录神策系统,点击【数据中心】→【数据接入】,选择【数据接入引导】→【客户换端埋点】(如果你是前端开发),点击生成导入片段,进入到以下界面:

微信图片_3.png 确认配置后,点击生成按钮,生成配置代码:

<script charset='UTF-8' src="在 github 下载新版本的 /dist/web/sensorsdata.min.js "></script>
<script>
	var sensors = window['sensorsDataAnalytic201505'];c
	sensors.init({
          server_url: 'http://test-syg.datasink.sensorsdata.cn/sa?project=xxxxxx',//埋点数据接收地址
	        is_track_single_page:true, // 单页面配置,默认开启,若页面中有锚点设计,需要将该配置删除,否则触发锚点会多触发 $pageview 事件
	        use_client_time:true, 
  	send_type:'beacon',
	        heatmap: {
		  //是否开启点击图,default 表示开启,自动采集 $WebClick 事件,可以设置 'not_collect' 表示关闭。
		  clickmap:'default',
		  //是否开启触达图,not_collect 表示关闭,不会自动采集 $WebStay 事件,可以设置 'default' 表示开启。
		  scroll_notice_map:'not_collect'
		}   
	});
	sensors.quick('autoTrack');
</script>

2. SDK 基本配置

2.1用户关联(简易用户关联)

在简易用户关联中,神策会通过匿名 ID 和 登录 ID 来标识访问 Web 的用户。并根据上报事件中携带的信息,将用户的匿名 ID 与 登录 ID 进行关联,从而将用户登录前后的行为数据串联起来。

使用示例

sensors.identify('id_xx1');
或者sensors.login('id_xx1');

调用时机

当用户进行登录时,您需主动调用此接口,将用户的注册信息(一般为用户在您业务系统中的唯一身份标识)传入。

用户登出

sensors.logout()

2.2设置事件公共属性

对于所有事件都需要添加的属性,可在初始化 SDK 后,调用 registerPage() 将属性注册为公共属性:

// 注册公共属性
sensors.registerPage({
	current_url: location.href,
	referrer: document.referrer
});

2.3代码埋点追踪事件

SDK 初始后,即可以通过 track() 方法追踪用户行为事件,并添加自定义属性:

sensors.track('BuyProduct', {
	ProductName: "MacBook Pro", 
	ProductPrice: 123.45, 
	IsAddedToFav: false,
});

2.4代码埋点追踪事件

  1. 测试阶段在初始化代码中添加 show_log 设置为 true,页面上有事件触发时,浏览器开发者工具会打印采集的事件信息.
  2. 事件数据发送成功时,在浏览器开发者工具的 Network 模块中,可以看到 sa.gif 的网络请求,如果状态码为 200,则代码事件数据发送成功。

2.5事件的触发日志

setProfile() 方法可以设定用户属性,同一个 key 多次设置时,value 值会进行覆盖替换.

sensors.setProfile({email:'xxx@xx'});

3. 埋点数据统计

配置完以上步骤后,假如在登录按钮上增加埋点:

3.1 查看埋点数据

sensors.track("login_on_page",{
     loginCode: 'admin',
     code: '****'
})

操作过登录步骤后,登录神策系统,点击【数据中心】→【元数据管理】→【元事件】,如果埋点事件入库成功,则会展示在元事件列表中,点击login_on_page,则可查看该埋点已采集的用户信息。

3.1 入库失败排查

代码中增加事件属性埋点,测试人员重复点击操作多次,神策系统采集次数不增加,此时,可考虑是否埋点事件入库失败,常见的入库失败原因有以下几种:

  1. 类型不符:使用了与之前不同的数据类型;
  2. 数据过长:如字符串最长 255 字节;
  3. 不可对预置属性重新赋值;$ 开头的一般是预置属性
  4. 事件中注意不能有空格。

4. 简化埋点流程,使其不“污染”业务逻辑

新建sensorsHandle.js文件,封装埋点事件

4.1 常见的就是单纯的事件埋点

//埋点模板
    sensorsTemplate(eventName, key, value) {
        sensors.track(eventName, key ? {
            [key]: value
        } : null)
    },

4.2 其他剩余的可以把数据带过来,在sensorsHandle 处理埋点数据

   invoicerequestInput(data) {
        const { customerEmail, customerPhone } = data
        sensors.track('pcmall_invoicmanage_invoicerequest_input', {
            pcmall_info_customerEmail: customerEmail,
            pcmall_info_customerPhone: customerPhone,
        })
    },