关于浙政钉、专有钉钉的数据埋点小心得总结(稳定性监控、流量分析)

  • Post author:
  • Post category:其他




关于浙政钉、专有钉钉的数据埋点小心得总结(稳定性监控、流量分析)

先说一下关于专有钉钉得开放文档

专有钉钉门户

这上面会有一些入门介绍,以及api文档,可以方便开发者迅速上手。本文得重点是说明如何进行数据埋点。因为这个数据埋点是官方要求的,所以就对应有官方提供的一套规则和代码。

<!DOCTYPE html>
<meta charset="UTF-8">
<html>
<head>
    <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1"/>
    <title>应用监控</title>
    <script src="https://cdn.staticfile.org/jquery/3.4.1/jquery.min.js"></script>
    <script src="https://g.alicdn.com/gdt/jsapi/1.8.2/index.js"></script>
    <script src='https://wpk-gate.zjzwfw.gov.cn/static/wpk-jssdk.1.0.2/wpkReporter.js' crossorigin='true'></script>
    <script>
	  //稳定性监控
	  try {
		const config = {
		  bid: '用自己应用的参数',
		  signkey: '1234567890abcdef',
		  gateway: 'https://wpk-gate.zjzwfw.gov.cn'
		};
		const wpk = new wpkReporter(config);
		wpk.installAll();
		window._wpk = wpk;
	  } catch (err) {
		console.error('WpkReporter init fail', err);
	  }

      //通用采集 SDK
      (function(w, d, s, q, i) {
        w[q] = w[q] || [];
        var f = d.getElementsByTagName(s)[0],j = d.createElement(s);
        j.async = true;
        j.id = 'beacon-aplus';
        j.src = 'https://alidt.alicdn.com/alilog/mlog/aplus_cloud.js';
        f.parentNode.insertBefore(j, f);
      })(window, document, 'script', 'aplus_queue');

      aplus_queue.push({
        action: 'aplus.setMetaInfo',
        arguments: ['aplus-rhost-v', 'alog.zjzwfw.gov.cn']
      });
      aplus_queue.push({
        action: 'aplus.setMetaInfo',
        arguments: ['aplus-rhost-g', 'alog.zjzwfw.gov.cn']
      });

      var u = navigator.userAgent
      var isAndroid = u.indexOf('Android') > -1
      var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)

      aplus_queue.push({
        action: 'aplus.setMetaInfo',
        arguments: ['appId', isAndroid ? '28302650' : isIOS ? '28328447' : '47130293']
      });

        //用户信息埋点
        // 如采集用户信息是异步行为需要先执行这个BLOCK埋点
        aplus_queue.push({
          action: 'aplus.setMetaInfo',
          arguments: ['_hold', 'BLOCK']
        });

        //基础埋点
        // 单页应用 或 “单个页面”需异步补充PV日志参数还需进行如下埋点:
        aplus_queue.push({
          action: 'aplus.setMetaInfo',
          arguments: ['aplus-waiting', 'MAN']
        });
        // 单页应用路由切换后 或 在异步获取到pv日志所需的参数后再执行sendPV:
        aplus_queue.push({
          'action':'aplus.sendPV',
          'arguments':[{
            is_auto: false
          }, {
            // 当前你的应用信息,此两行请勿修改
            sapp_id: '用自己应用的参数',
            sapp_name: '用自己应用的参数',
            // 自定义PV参数key-value键值对(只能是这种平铺的json,不能做多层嵌套),如:
			page_id: '页面ID,与page 参数配合使用,保证唯一性',
			page_name: '页面中文名称',
			page_url: '页面URL'
          }]
        })

        // 设置会员ID
        aplus_queue.push({
          action: "aplus.setMetaInfo",
          arguments: ["_user_id", "当前会员ID"]
        });
        aplus_queue.push({
          action: "aplus.setMetaInfo",
          arguments: ["_dev_id", "设备ID是业务定义的,用于定义唯一的设备标识。这个目前没有要求,可不设置。"]
        });

        // 如采集用户信息是异步行为,需要先设置完用户信息后再执行这个START埋点
        // 此时被block住的日志会携带上用户信息逐条发出
        aplus_queue.push({
          action: 'aplus.setMetaInfo',
          arguments: ['_hold', 'START']
        });
    </script>
</head>
<body>
<p>应用监控</p>
</body>
</html>

上面就是埋点所需要的全部代码(只针对H5端),拿到所有的代码还不够,还要知道代码的放置位置。其中埋点代码分为:稳定性监控代码(Emas)和流量分析代码(A+)。稳定性监控代码(Emas)只需要在首页加入。流量分析代码(A+)每个页面都需要加入,但是可以写通用js,在其他页面引入。

目前web(H5)应用需要进行稳定性监控代码(Emas)和流量分析代码(A+)这两块内容;小程序的稳定性监控代码(Emas)不需要开发商进行埋点,只需要进行流量分析代码(A+)这一块的埋点操作。

//稳定性监控
	  try {
		const config = {
		  bid: '用自己应用的参数',
		  signkey: '1234567890abcdef',
		  gateway: 'https://wpk-gate.zjzwfw.gov.cn'
		};
		const wpk = new wpkReporter(config);
		wpk.installAll();
		window._wpk = wpk;
	  } catch (err) {
		console.error('WpkReporter init fail', err);
	  }

这一块代码就是稳定性监控的代码,项目中只需引入一次即可,所以就vue项目而言,一般就写在index.html这个文件里就可以了,这块通常是没有问题的。然后就是流量分析的代码了,他有一个通用采集SDK,这玩意其实是死的,也只需要引入一次就可以了,一般就放在稳定性代码的下面就可以了,当然不放心的也可以放到流量分析的代码中去。接下来正式说流量分析,他跟稳定性监控不同的是,他需要在每个页面调用,所以可以写一个通用的js,然后再页面引入,传入所需要的参数(page_id、page_name、page_url)&用户信息(用户id),下面是我写的通用js,仅供参考:

function pointSDK(page_id,page_name,page_url,_user_nick,_user_id){
    

    // 3,用户信息埋点

    // 如采集用户信息是异步行为需要先执行这个BLOCK埋点
    aplus_queue.push({
        action: 'aplus.setMetaInfo',
        arguments: ['_hold', 'BLOCK']
    });


    // 2,基础埋点
    // 单页应用 或 “单个页面”需异步补充PV日志参数还需进行如下埋点:
    aplus_queue.push({
        action: 'aplus.setMetaInfo',
        arguments: ['aplus-waiting', 'MAN']
    });//
    // 单页应用路由切换后 或 在异步获取到pv日志所需的参数后再执行sendPV:
    aplus_queue.push({
        'action':'aplus.sendPV',
        'arguments':[{
            is_auto: false
            }, {
            // 当前你的应用信息,此两行请勿修改
            sapp_id: 'xxx',
            sapp_name: 'xxx',
            // 自定义PV参数key-value键值对(只能是这种平铺的json,不能做多层嵌套),如:
            page_id: page_id,
            page_name: page_name,
            page_url: page_url
        }]
    })

    
    // 设置会员昵称
    aplus_queue.push({
        action: "aplus.setMetaInfo",
        arguments: ["_user_nick", _user_nick||'刘倩倩']
    });
    // 设置会员ID
    aplus_queue.push({
        action: "aplus.setMetaInfo",
        arguments: ["_user_id", _user_id||'101']
    });
    
    
    
    // 如采集用户信息是异步行为,需要先设置完用户信息后再执行这个START埋点
    // 此时被block住的日志会携带上用户信息逐条发出
    aplus_queue.push({
        action: 'aplus.setMetaInfo',
        arguments: ['_hold', 'START']
    });
    
}
export default pointSDK

然后在main.js中引入——import pointSDK from “./utils/buryingPoint.js”;Vue.prototype.



p

o

i

n

t

S

D

K

=

p

o

i

n

t

S

D

K

t

h

i

s

.

pointSDK = pointSDK,就可以在需要的页面调用了this.






p


o


i


n


t


S


D


K




=








p


o


i


n


t


S


D


K









































t


h


i


s


.





pointSDK(37,“留言板”,“/feedBack”,this.userInfo.name,this.userInfo.account_id),其中37为页面id(每个页面唯一,不可重复),留言板为页面的中文名字,“/feedBack”为页面url地址,其余为用户名字和id(浙政钉用户真实信息)。

至此,埋点基本就完事了,剩下的就是细心和检查了。然后再总结说说注意事项吧!!!

埋点注意事项及FAQ:

1.埋点参数value值必须是字符串类型,编码使用utf-8;

2.基础埋点(sendPV调用)数据需要置于需要置于 _hold:BLOCK 和 _hold:START配置之间。

3.H5埋点代码若通过js引用需要置于script标签中;

4.H5若通过js统一引用的话,A+埋点本身也引用了js,需要参考通过js再引用js的写法。可以参考:https://www.cnblogs.com/cxx8181602/p/9340678.html

5.页面名称务必不要使用用户姓名及手机号等个人敏感信息;

6.页面名称只能包含中英文下划线且不以下划线开头。

1)为什么说应用流量分析监控(A+埋点代码)上报成功但是信息不完整

怎样保证应用流量分析信息完整:

1.流量分析代码(A+)每个页面都需要加入,请检查页面都有加流量分析埋点(可以写通用js,在其他页面引入。

2.检查用户页面信息(page_id、page_name、page_url)&用户信息(用户id)是否有上报。

1)需要补充page_url、page_id、page_name参数,埋上应用内对应的页面名称,其中page_id保持应用内唯一,page_url为页面url地址即可,paga_name为页面中文名称,

例如:

page_url = ‘页面url’

page_id = ‘页面ID,与page 参数配合使用,保证应用内唯一性’

page_name = ’页面中文名称‘

2)用户id需要埋政钉用户真实信息,用户id可埋获取用户详情接口的accountId 。

3)应用接入监控每个页面是否都需要加埋点代码?

埋点代码分为:稳定性监控代码(Emas)和流量分析代码(A+);

其中流量分析代码(A+)包含通用采集SDK、基础埋点、用户信息埋点;

稳定性监控代码(Emas)只需要在首页加入(小程序不需要埋稳定性监控代码,这边会统一处理)。

流量分析代码(A+)每个页面都需要加入,也可以写通用js,在其他页面引入。



版权声明:本文为cd13849109771原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。