vue前端埋点 - 神策埋点

埋点安装

标题也有说,我们用的是 神策埋点平台 提供的JS SDK

pnpm install sa-sdk-javascript

参数配置

一般情况我们都在项目外层 utils文件中创建一个 sensor.js 文件,创建一个埋点实例:

import sensors from 'sa-sdk-javascript' 
// 一些动态的参数需要我们和服务端商议自行填写 
sensors.init({ 
    name: 'sensors', server_url: '', // 服务端接受数据地址 
    show_log: false, // 不输出log到控制台 
cross_subdomain: false, // 不在根域下设置cookie 
is_track_single_page: true, // 表示是否开启单页面自动采集 $pageview 功能,SDK 会在 url 改变之后自动采集web页面浏览事件 $pageview。 
heatmap: { 
// 是否开启点击图,default 表示开启,自动采集 $WebClick 事件,可以设置 'not_collect' 表示关闭。 
clickmap: 'not_collect', 
// 是否开启触达注意力图,not_collect 表示关闭,不会自动采集 $WebStay 事件,可以设置 'default' 表示开启。 
scroll_notice_map: 'not_collect' 
} 
}) 
sensors.registerPage({ current_url: location.href, referrer: document.referrer }) sensors.quick('autoTrack') window.sensors = sensors export default sensors

添加对应文件 可根据项目需求 自定义指令(directive)

自行封装sendSensors.js:

import { APP_ENV } from '@/config'
import moment from 'moment' 
import { userInfoStore } from '@pinia'; 
/** 
 * 神策数据埋点 主站神策数据初始化后挂载到window对象 
 * @param {*} eventName 自定义事件名称
 *  @param {*} data 数据
 *  @param {*} callback
 * @param {*} alwaysCallback 
 */ 
export default function sensorsTrack ( eventName, data = {}, callback = () => {}, alwaysCallback = true ) { 
    try { 
        const prefix = APP_ENV === 'production' ? '' : APP_ENV + '_' 
        if (!eventName) { 
            callback() 
            return 
        } 
        const userStore = userInfoStore() 
        let commonPonintsParams = {} 
        if (userStore) { 
            const { id, name, school_id, school_name } = userStore 
            // 通用参数 为了保证获取参数的时机不过于提前,公共参数不提取到函数外
            commonPonintsParams = { }
        } 
        const paramTemp = Object.assign({}, commonPonintsParams, data) 
        if (window.sensors) { 
            eventName = prefix + eventName 
            window.sensors.track(eventName, paramTemp, () => { 
                callback() 
            }) 
        } else if (alwaysCallback) { 
            callback() 
        } 
    } catch (e) { 
        console.log(e) 
        callback() 
    } 
}

当然别忘了 全局 挂载 在项目入口 main.js 挂载

//main.js

import App from './App.vue';

import '@/utils/sensors';

import pinia from './pinia';

import router from '@/router';

// 创建vue实例 const app = createApp(App);

app.use(pinia);

app.use(router);

app.mount('#app');


在组件内使用:

// 引入 import sensorsTrack from '@/utils/sendSensors.js'

// 需要上报的事件 || 函数内添加 sensorsTrack('事件名', 上报参数, callback()) || sensorsTrack('事件名', 上报参数)
  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
很抱歉,根据您提供的引用内容,我无法直接回答您的问题。但是,我可以为您提供有关Angular项目点的一些信息。 分析是一种数据分析工具,可以帮助您跟踪和分析用户在应用程序中的行为。在Angular项目中,您可以使用分析来实现点,以便收集和分析用户的行为数据。 以下是一些实现Angular项目点的步骤: 1.安装分析SDK 您可以使用npm包管理器安装分析SDK。在终端中运行以下命令: ```shell npm install sa-sdk-javascript --save ``` 2.在Angular项目中引入SDK 在您的Angular项目中,您需要在index.html文件中引入分析SDK。您可以将以下代码添加到index.html文件的<head>标签中: ```html <script src="//static.sensorsdata.cn/sdk/1.15.16/sensorsdata.min.js"></script> ``` 3.初始化分析SDK 在您的Angular项目中,您需要初始化分析SDK。您可以在app.component.ts文件中添加以下代码: ```typescript import { Component } from '@angular/core'; import { Router, NavigationEnd } from '@angular/router'; declare var sensors: any; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { constructor(private router: Router) { this.router.events.subscribe(event => { if (event instanceof NavigationEnd) { sensors.track('PageView', { $url: event.urlAfterRedirects }); } }); sensors.init({ server_url: 'https://<your_server_url>.sensorsdata.cn/sa?project=<your_project>&token=<your_token>', heatmap: { clickmap: true, scroll_notice_map: true } }); } } ``` 在上面的代码中,您需要将<your_server_url>、<your_project>和<your_token>替换为您的分析服务器URL、项目名称和访问令牌。 4.实现点 在您的Angular项目中,您可以使用sensors.track()方法来实现点。例如,您可以在用户单击按钮时跟踪事件: ```typescript import { Component } from '@angular/core'; declare var sensors: any; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { onClick() { sensors.track('ButtonClicked', { button_name: 'my_button' }); } } ``` 在上面的代码中,当用户单击名为“my_button”的按钮时,将跟踪名为“ButtonClicked”的事件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旭日东升、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值