项目添加埋点

1、稳定性埋点 index.html中添加埋点代码

<script src='https://wpkgate-emas.ding.zj.gov.cn/static/wpk-jssdk.1.0.2/wpkReporter.js' crossorigin='true'></script>

<script>
  // 稳定性
  try {
    const config = {
      bid: 'xxxxxxx',  //bid在上架申请通过后官方人员会发
      signkey: 'xxxxxxx',   //signkey在上架申请通过后官方人员会发
      gateway: 'https://wpkgate-emas.ding.zj.gov.cn'
    };
    const wpk = new wpkReporter(config);
    wpk.installAll();
    window._wpk = wpk;
  } catch (err) {
    console.error('WpkReporterinitfail', err);
  }
</script>

2、流量分析埋点

封装zzd.js,全局挂载或每个页面引入,因为在每个页面中都要调用

import dd from 'gdt-jsapi';
import { getUserlnfo } from './api.js'

let accountId = ''
let accessToken = ''
//接收3个参数:page_id,page_name,page_url
export function queue(metaId, metaName,metaPath) {
    (function(w, d, s, q, i) {
        if(!accountId){
          // 获取免登码
          dd.getAuthCode({corpId:''}).then(res =>{
            console.log('code-res-auth_code',res.auth_code)
            if (res) {
                let params = {
                  accessToken: accessToken,
                  authCode: res.auth_code,
                }
                getUserlnfo(params).then(response => {
                  let {data} = response.data.content
                  accountId = data.accountId
                  accessToken = data.accessToken
                  localStorage.setItem('accountId',accountId)
                })
                .catch(error => {
                  console.error("There was an error!", error);
                });
            }
          })
          .catch(err =>{
            console.log('err-res', err)
          })
        }

        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-api.ding.zj.gov.cn']
      });
      aplus_queue.push({
        action: 'aplus.setMetaInfo',
        arguments: ['aplus-rhost-g', 'alog-api.ding.zj.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']
      });


    //单页应用或“单个页面”需异步补充PV日志参数还需进行如下埋点:
    console.log('执行埋点')  
    //基础埋点      
    aplus_queue.push({
        action: 'aplus.setMetaInfo',
        arguments: ['aplus-waiting', 'MAN']
        });//
        // 单页应用路由切换后 或 在异步获取到pv日志所需的参数后再执行sendPV:
        aplus_queue.push({
        'action':'aplus.sendPV',
        'arguments':[{
            is_auto: false
            }, {
                //当前你的应用信息,此两行按应用实际参数修改,不可自定义。
                sapp_id: 'xxxxxx',  //sapp_id上架申请通过后官方人员会发
                sapp_name: 'xxxxxxx',  //sapp name上架申请通过后官方人员会发
                // 自定义PV参数key-value键值对(只能是这种平铺的json,不能做多层嵌套),如:
                page_id: metaId,//'页面ID,与page 参数配合使用,保证唯一性,自定义',
                page_name: metaName,//'页面中文名称,自定义'
                page_url: metaPath
            }]
        })
        // 用户信息埋点
        //如采集用户信息是异步行为需要先执行这个BLOCK埋点
        aplus_queue.push({
            action: 'aplus.setMetaInfo',
            arguments: ['_hold', 'BLOCK']
        });
        // 设置用户ID,用户设备ID可不做上报,若上报可使用开放平台JSAPI获取UUID
        //用户id需要埋政钉用户真实信息,用户ID必须用accountId,可通过开放平台“获取用户详情”接口获取。
        aplus_queue.push({
          action: "aplus.setMetaInfo",
          arguments: ["_user_id", accountId]
        });
        // 如采集用户信息是异步行为,需要先设置完用户信息后再执行这个START埋点
        // 此时被block住的日志会携带上用户信息逐条发出
        aplus_queue.push({
            action: 'aplus.setMetaInfo',
            arguments: ['_hold', 'START']
        });
        //埋点end
};

调用记录页面访问

this.queue('index_1','首页','/index')

 

posted @ 2024-11-01 10:40  番茄西红柿u  阅读(2)  评论(0编辑  收藏  举报