AMP 提供了可分析用户行为数据的
使用方法
集成
在 head 中引入拓展组件
页面浏览事件采集
在 body 中引入
自定义事件采集
支持在特定元素触发点击时发送自定义事件,事件 trigger 配置如下,会在通过 selector 指定的元素触发点击时分别发送 click_test1 、click_test2 事件。如果多个 trigger 通过 selector 选中了同一个元素,点击这个元素,会触发每一个监听器的动作,也就是会发送多个点击的自定义事件
需要配置的参数说明:
- requests 中的 event 字段:
- 数据接收地址,从神策分析 —— 基本设置 —— 数据接入 —— 客户端埋点复制出的 https 数据接收地址。如果您这里没有 https 的数据接收地址,请联系神策值班同学进行配置。
获取到数据接收地址后,使用格式化工具获取符合 Web JS SDK 规范的接收地址,填入 requests 中的 event
- 数据接收地址,从神策分析 —— 基本设置 —— 数据接入 —— 客户端埋点复制出的 https 数据接收地址。如果您这里没有 https 的数据接收地址,请联系神策值班同学进行配置。
- vars 中的 event String,事件名称,将作为埋点事件的 event 字段上报,建议 AMP 上报的事件统一加 amp_ 前缀进行标识
- selector String,监听点击时必须配置,为监听元素的选择器。建议在 amp_properties 中将 selector 复制上报,便于问题的定位与排查
amp_properties String ,事件携带的自定义属性集合,配置方法:
如果需要上报自定义属性,如 platform 和 color :
将自定义属性写入一个属性集合对象:
{ platform:'amp', color:'red' }
对属性集合对象进行编码,编码方式为 encodeURIComponent(JSON.stringify(prop)),上面的例子编码之后为 "%7B%22platform%22%3A%22amp%22%2C%22color%22%3A%22red%22%7D"。您也可以使用自动编码工具进行编码
- 将编码之后的字符串填入 amp_properties
如果配置多个 标签,建议给予每个
预置属性
属性名 | 属性含义 |
---|---|
$screen_height | 屏幕高度 |
$screen_width | 屏幕宽度 |
$lib | sdk 版本,为 amp |
$lib_version | sdk 版本号 |
$referrer | 前向地址 |
$title | 页面标题 |
$url | 页面地址 |
amp_properties | 自定义属性集合的字符串编码 |
{
distinct_id: "amp-UYetU1tSwYaaGVsPnKEuMQ"
lib: {
$lib: "amp",
$lib_method: "code",
$lib_version: "1.0.0"
},
properties:{
$screen_height: 900,
$screen_width: 1440,
$lib: "amp",
$lib_version: "1.0.0",
$referrer: "http://localhost:8000/examples/analytics-vendors.amp.html?type=saanalytics",
$title: "AMP Analytics",
$url: "http://localhost:8000/examples/analytics-vendors.amp.html?type=saanalytics",
amp_properties:"%7B%22platform%22%3A%22amp%22%2C%22color%22%3A%22red%22%7D"
},
type: "track",
event: "$pageview",
time: "1610432623504"
}
用户标识
AMP 网页可以通过多种方式在浏览器查看,不同方式查看 AMP 网页将可能拥有不同的身份标识,网站指标会受到影响。
AMP 网页的三种访问方式:
下面是用户访问 AMP 网页的不同方式以及不同情况下客户端 id 的存储与识别:
AMP 查看器访问
AMP 网页可以通过各类平台(如 Google 搜索、Google 新闻和 Bing)访问,这类平台显示 AMP 网页在 “AMP 查看工具“ 中,通过 iframe 引入。这种情况下,用户查看的是 AMP Cache 中的网页。
由于浏览器对第三方 cookie 的限制,这种情况下用户 id 无法存储,每次访问都会标记为新用户
代理/缓存访问
用户可以通过 缓存/代理 访问 AMP 网页,这时 AMP 网页所在的域名为 cdn.ampproject.org
用户访问的 id 是存储在 cdn.ampproject.org 中
普通浏览器直接访问
用户直接访问发布商网域的 AMP 页面,如 https://manual.sensorsdata.cn/xxxx.html
会在发布商网域上使用一个名为 sensors_amp_id 的第一方 cookie 存储客户端标识,此次用户访问的 id 是存储 sensorsdata.cn 中
同域名 AMP 页面和非 AMP 页面的用户统一
用户在发布商网域访问非 AMP 页面,如 https://manual.sensorsdata.cn/xxxx.html。
会在发布商网域上使用一个名为 sensorsdata2015jssdkcross 的第一方 cookie 存储客户端标识,此次用户访问的 id 是存储 sensorsdata.cn 中。
默认情况下,sensorsdata.cn/amp.html 和 sensorsdata.cn/index.html 虽然为同域下的页面,但是由于 AMP 页面和非 AMP 页面记录用户标识的 cookie 不同,所以仍然记为两个用户
如果需要记为一个用户,则需要在非 AMP 页面同步集成 v1.16.5 版本的 JS SDK ,引入 AMP 插件,且设置 use_client_time:true 参数,JS SDK 初始化代码举例如下:
- JS SDK 初始化之后立即引入 AMP 插件
- 设置 use_client_time:true 使用客户端时间
注意事项:
- 对于新用户会识别为一个,如果是老用户,可能会识别为两个用户。可以开启多对一减少这种用户的产生
- 非 AMP 页面上报的首日首次属性是针对非 AMP 页面访问的首日/首次,不包括 AMP 页面的访问
- AMP 用户 ID 存储在根域下,因此 JS SDK cross_subdomain 属性必须使用默认的 true ,否则会有异常
- 由于 AMP 生成的 uuid 格式为 amp-xxxxxxxxx ,因此非 AMP 页面的登录 id 不要使用 amp- 开头,与 AMP 的 uuid 进行区分
检测 AMP 集成是否成功
触发一条埋点事件,查看 network 是否有 sa.gif 的请求发出:
{
distinct_id: "amp-UYetU1tSwYaaGVsPnKEuMQ"
lib: {
$lib: "amp",
$lib_method: "code",
$lib_version: "1.0.0"
},
properties:{
$screen_height: 900,
$screen_width: 1440,
$lib: "amp",
$lib_version: "1.0.0",
$referrer: "http://localhost:8000/examples/analytics-vendors.amp.html?type=saanalytics",
$title: "AMP Analytics",
$url: "http://localhost:8000/examples/analytics-vendors.amp.html?type=saanalytics",
amp_properties:"%7B%22platform%22%3A%22amp%22%2C%22color%22%3A%22red%22%7D"
},
type: "track",
event: "amp_pageview",
time: "1610432623504"
}