神策 JavaScript SDK 使用说明

2020-12-26  本文已影响0人  李大嘴JimmyLee

1. 获取和集成 JavaScript SDK

需要引入2套SDK包
1、埋点管理系统
server_url:https://xxx/track
2、神策自带后台管理系统
server_url: https://xxx/sa?project=production

1.1 获取 JS SDK

获取 JS SDK的方法有三种

我们这里推荐第三种 通过 npm 安装的方式 使用ES6导入的方式引用

1.2 集成 JavaScript SDK

注意:之前提过目前公司需要引入2个SDK的配置因为有2个不同接收地址 所以这里提供2个

import sensors from 'sa-sdk-javascript'
sensors.init({ // 神策系统配置
    server_url: 'https://xxx/sa?project=production', // 数据接收地址
    is_track_single_page: true, // 单页应用页面浏览事件采集(url改变就触发)
    show_log: false, // 控制台显示数据开关
    heatmap: { // 热图设置 default开启 not_collect关闭(详细配置解释看官方文档)
        clickmap: 'default', // 点击热图,收集点击事件
        scroll_notice_map: 'default' // 视区热图,收集页面区域停留时间
    }
})
sensors.quick('autoTrack') 
export default sensors
import sa from 'sa-sdk-javascript'
sa.init({ // 埋点系统配置
    server_url: 'https://xxx/track', // 数据接收地址
    is_track_single_page: true, // 单页应用页面浏览事件采集(url改变就触发)
    show_log: false, // 控制台显示数据开关
    heatmap: { // 热图设置 default开启 not_collect关闭(详细配置解释看官方文档)
        clickmap: 'default', // 点击热图,收集点击事件
        scroll_notice_map: 'default' // 视区热图,收集页面区域停留时间
    }
})
sa.quick('autoTrack') // 首次触发页面加载事件 $pageview
export default sa

这里推荐使用 ES6模块化引用

1.2.1 SDK配置文件引入指南

创建文件



main.js中添加

import Vue from "vue";
import sensors from './sensors' //神策官方埋点配置
import sa from './sa' //埋点管理后台配置
Vue.prototype.$sensors = sensors //神策官方埋点
Vue.prototype.$sa = sa //埋点

1.2.2 如何埋点

1.自动采集事件埋点

主要用于主动触发页面浏览事件,一般只在页面配置后调用一次即可。

sensors.quick('autoTrack')
  1. 事件埋点
    事件名+传递参数(必须是对象)+回调函数
this.$sensors.track('ViewSupplyChainDetails'[, param][,callback])

如下在方法中使用自定义埋点

    //刷新
    async refreshResourcesLists() {
      this.$sensors.track('ViewProduct', {
        productId: '123456',
        productCatalog: "Laptop Computer",
        productName: "MacBook Pro",
        productPrice: 123.45
      });
      this.$sa.track('ViewProduct', {
        productId: '123456',
        productCatalog: "Laptop Computer",
        productName: "MacBook Pro",
        productPrice: 123.45
      });
    }

3.公共属性埋点

const param = {
  platform_type: 'WEB', // 平台类型:App,H5,Web
  app_name: '沐甜商城网站', // 应用名称
  product_line: '白糖',
}
sensors.registerPage(param) // 设置公共属性

1.3 配置 JavaScript SDK参数

如果使用自动代码生成,一般情况下无需手工修改参数 自动生成方式请看最后

下面是必填参数:

如果有需要,也可以修改可选参数:

说明: server_url 的获取,建议使用神策分析后台的「数据接入」功能复制获取。

1.4 如何确认数据发送成功

第一种:神策 JS SDK 默认会在浏览器开发者工具的控制台打印出发送的数据。 第二种:神策分析后台,提供埋点管理的功能,可以在埋点管理里面查看这个事件是否发送成功,并校验此事件的相关属性是否报错。

详细操作

2. 如何标识用户

在进行任何埋点之前,都应当先确定如何标识用户。distinct_id 是用来标识用户的,是一段唯一的字符串,默认情况下 JavaScript SDK 会自动生成一个 distinct_id 并永久保存在浏览器中的 Cookie 中(我们暂时称这个为 cookie_id),如果你已知了真实的用户 id ,你可以通过 sa.login(user_id) 来修改当前的 distinct_id。

获取 Cookie 中的 distinct_id :

前端方式:

可以通过 sa.store.getDistinctId() 方法获取到 distinct_id 。

后端方式:

可以在 Cookie 里面找到 key 为 sensorsdata2015jssdkcross 的 value 值然后进行 decodeURIComponent 解码,最后通过 JSON.parse 方法得到一个对象,对象里面的 distinct_id 即为用户所需要的。

2.1 在登录和注册成功后,调用sa.login(user_number) 来标识真实用户

参考产品提供的埋点事件设计文档

注意:用户唯一标识,登录前记录cookieId,登录后记录用户编号

通过 sa.login(user_number) 来把 SDK 自动生成的 cookie_id 关联成现在传入的 user_number。且以后会一直使用这个 user_number。

sa.login('123132');

问题1,这行代码放在哪里?

建议放在所有事件前面。也就是在 sdk 载入代码后面,先使用 sa.login (如果此时有这个 user_id 的话),然后再用 sa.quick('autoTrack') 等,这样后续的事件才会使用这个更改后的 userid。

问题2,在什么时候调用?

页面登录的时候,只要获取到用户是登录状态,就需要调用。或者 注册流程成功的时候。

问题3,sa.login 和 sa.identify 有什么区别?

login 用来关联数据库的 id,identify 用来改变匿名 id,可以认为匿名 id 是跟浏览器绑定的。

2.2 使用 sa.identify 来修改匿名 id

默认情况下,是把 cookie_id 作为 distinct_id 的。如果你能取到其他匿名 id(比如设备 id,或者你们自己生成的 cookieid),可以用 sa.identify(id) 来改变当前的distinct_id。

这个方法有三种使用方式:

2.3 使用 sa.logout 切换到之前的匿名 id

通过 sa.logout() 来永久改变当前的 distinct_id 为 cookie_id 。

sa.logout(); // 取消当前 login 的 id,改成最初自动生成的 cookie_id

sa.logout(true); // 取消当前 login 的 id,重新生成一个新的 cookie_id

问题1,这个在什么时候使用?

在你用过 sa.login 后,在一个浏览器有多个用户登录的时候,你想在用户退出后改变当前的 distinct_id。

3. 自定义事件追踪

第一次接入神策分析时,建议先追踪 3~5 个关键的事件,只需要几行代码,便能体验神策分析的分析功能。例如:

神策分析 SDK 初始化成功后,即可以通过 sa.track(event_name[, properties][, callback]) 记录事件:

// 追踪浏览商品事件。
sa.track('ViewProduct', {
   productId: '123456',
   productCatalog: "Laptop Computer",
   productName: "MacBook Pro",
   productPrice: 123.45
});

另外,神策分析 SDK 也支持自动进行一些事件的追踪,具体请参考:默认事件追踪

3.1 SDK 默认属性

对于任何事件,神策分析 SDK 都会自动收集浏览器、操作系统、地域等一系列系统信息作为事件属性。完整的默认属性列表请参考:数据格式

3.1.1 获取前端 JS SDK 采集的预置属性

此方法可获取,页面地址,页面标题,前向地址,SDK 类型及版本,屏幕宽高,最近一次的相关属性,不包括需要后端解析的 ip 及 UA 等属性,且这些属性与服务端的传输需要客户自己来做。

sa.getPresetProperties();

3.2 事件公共属性

3.2.1 sa.registerPage(object)

如果某个事件的属性,在所有事件中都会出现,可以通过 registerPage 方法将该属性设置为事件公共属性。例如电商产品中的用户等级,常作为事件的公共属性。sa.registerPage({gender:"male"}) 。这样的话,下次你在使用 sa.track("index_visit") 时等同于 sa.track("index_visit", {gender:"male"})。

再比如想在当前页面的后续事件中都注入当前页面地址及前向地址属性,只针对当前页面有效的方法如下:

sa.registerPage({
    current_url: location.href,
    referrer: document.referrer
});

sa.track('button_A_click'); // 这时候,这个 button_A_click 事件,就会带有current_url和referrer这些属性。且仅对当前页面有效。

4. 设置用户属性

为了更准确地提供针对人群的分析服务,可以使用神策分析 SDK 的 profileSet() 等方法设置用户属性,如年龄、性别等。用户可以在留存分析、分布分析等功能中,使用用户属性作为过滤条件,精确分析特定人群的指标。

你可以首先使用上面的 identify(userid) 来标识用户,然后可以对这个特定的用户设置一些属性。如果你不用这两个方法去标识用户,就会以 Cookie 中的匿名 distinct_id 来标识用户。

4.1 sa.setProfile(properties[, callback])

直接设置用户的属性,如果存在则覆盖。

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

4.2 sa.setOnceProfile(properties[, callback])

如果不存在则设置,存在就不设置。

sa.setOnceProfile({email:'xxx@xx'});

4.3 sa.appendProfile(properties[, callback])

给数组属性添加值。通过setProfile只能改变属性的值。如果这个属性是数组类型的,你不想完全改变这个值,只想做添加操作可以使用此方法。

//给 category 增加两个值

sa.appendProfile({catrgory: ['玉米','白菜']});

//给 category 增加一个值

sa.appendProfile({catrgory: '玉米'});

4.4 sa.incrementProfile(properties[, callback])

对当前用户的属性做递增或者递减。

// 表示 navClick 递减

sa.incrementProfile({'navClick': -1});

// 表示 navClick 递增2

sa.incrementProfile({'navClick': 2});

// 直接传入一个属性名,表示递增1

sa.incrementProfile('navClick');

4.5 sa.deleteProfile([callback])

删除当前用户及他的所有属性。

//删除当前这个用户及他的所有属性

sa.deleteProfile();

4.6 sa.unsetProfile(property[, callback])

删除当前用户的一些属性

//删除 email 和 location 属性

sa.unsetProfile(['email','location']);

//删除 email 属性

sa.unsetProfile('email');

5 数据类型说明

6 其他

1 如果你想使用代码生成工具生成集成代码

首先从神策分析的主页中,进入数据导入向导页面:

然后在右上角点击 数据接入 显示如下界面,然后点击 生成导入代码,进入代码生成页面,按需选择合适的选项,然后点击生成代码,如下图:



最后将代码放入网页中的合适位置即可。

上一篇下一篇

猜你喜欢

热点阅读