关于“网页埋点”的简单介绍与实现

2023-10-27

网页埋点的简单实现

本文抛开数据增长方法和埋点技术原理的大道理,通过一个简单的埋点小实例帮助大家更好的了解埋点


一、什么是数据埋点:

  • 埋点是网站和APP等产品进行日常改进及数据分析的数据采集基础,根据采集得到的用户行为数据(例如:页面访问路径,点击了哪一个按钮)进行数据分析,从而更加合理的推送跟优化,增强用户体验。现在市面上有很多第三方埋点服务商,百度统计、友盟、growingIO 等。

常见的埋点方法包括:

  1. 手动埋点:根据业务需求在需要采集数据的地方进行埋点,是比较常见的埋点手段。
  2. 可视化埋点:一些事件带有元素唯一标识。通过在后台进行埋点配置,将元素与要采集信息关联起来,然后自动生成埋点代码嵌入到页面中,目前发展比较火的埋点方式,但是技术上的实现跟推广比较困难
  3. 无埋点:简单来说就是没有埋点,前端会采集用户所有的行为跟信息,然后后台再对这些信息进行筛选,由于数据量巨大,对服务器的性能要求很高。

二、网页埋点小案例

案例分析: 页面中包含6张不同的图片。通过用户的浏览记录用户的相关信息

1.页面准备

<body>
    <img src="imgae/1.jpg" id="img1"/>
    <img src="imgae/2.jpg" id="img2"/>
    <img src="imgae/3.jpg" id="img3"/>
    <img src="imgae/4.jpg" id="img4"/>
    <img src="imgae/5.jpg" id="img5"/>
    <img src="imgae/6.jpg" id="img6"/>
</body>

2.给图片设置唯一标识(可以是自定义)

<body>
    <img src="imgae/1.jpg" id="img1" sid="图片1"/>
    <img src="imgae/2.jpg" id="img2" sid="图片2"/>
    <img src="imgae/3.jpg" id="img3" sid="图片3"/>
    <img src="imgae/4.jpg" id="img4" sid="图片4"/>
    <img src="imgae/5.jpg" id="img5" sid="图片5"/>
    <img src="imgae/6.jpg" id="img6" sid="图片6"/>
</body>

小结: 定义sid属性标记每一张图片

3. 设置事件

 <script>
        $(function(){
            $("img").click(function(){
            	//用户点击图片就会修改图片样式
                $(this).css("width","300px");
                $(this).css("height","300px");
                var sid = $(this).attr("sid");
                //埋点,将用户的点击信息发送到服务器
                $.get("/TestDemo/ajaxServlet","sid="+sid);
            })
        });
    </script>

小结:触发事件定义为点击事件,用户点击图片就会触发并进行相关信息的收集

4.服务器收集相关信息

//配置信息
@WebServlet("/ajaxServlet")
public class ajaxServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    	//收集用户点击的图片信息
        String sid = request.getParameter("sid");
        //收集用户的浏览器型号
        String requestHeader = request.getHeader("User-Agent");
        //收集用户的访问路径
        String requestURI = request.getRequestURI();
        Date date = new Date();
        //记录用户的点击事件
        SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");
        String date1 = format.format(date);
        //记录用户主机相关信息
        String remoteHost = request.getRemoteHost();
        System.out.println(remoteHost+"\t"+date1+"\t"+requestURI+"\t"+requestHeader+"\t"+sid);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request,response);
    }
}

小结:案例中是将得到的信息打印出来,也可以根据需要将信息记录在相应的文件中保存

5.打印相关信息

0:0:0:0:0:0:0:1	2019090521:01:03	/TestDemo/ajaxServlet	Mozilla/5.0 (Windows NT 10.0; WOW64) 
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36	图片3
0:0:0:0:0:0:0:1	2019090521:01:04	/TestDemo/ajaxServlet	Mozilla/5.0 (Windows NT 10.0; WOW64) 
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36	图片4
0:0:0:0:0:0:0:1	2019090521:01:05	/TestDemo/ajaxServlet	Mozilla/5.0 (Windows NT 10.0; WOW64) 
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36	图片2
0:0:0:0:0:0:0:1	2019090521:01:05	/TestDemo/ajaxServlet	Mozilla/5.0 (Windows NT 10.0; WOW64) 
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36	图片4
0:0:0:0:0:0:0:1	2019090521:01:06	/TestDemo/ajaxServlet	Mozilla/5.0 (Windows NT 10.0; WOW64) 
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36	图片1
0:0:0:0:0:0:0:1	2019090521:01:07	/TestDemo/ajaxServlet	Mozilla/5.0 (Windows NT 10.0; WOW64) 
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36	图片4
0:0:0:0:0:0:0:1	2019090521:01:07	/TestDemo/ajaxServlet	Mozilla/5.0 (Windows NT 10.0; WOW64) 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于“网页埋点”的简单介绍与实现 的相关文章

  • Jquery查找值为X的表格单元格

    我正在尝试寻找一个 td 其中值为 5 它是一个日历 因此只有一个 5 值 您可以使用filter https api jquery com filter method td filter function return this text
  • 禁用输入中的空格,并允许后退箭头?

    我试图禁用用户名文本字段中的空格 但是我的代码也禁用后退箭头 有什么办法也允许后退箭头吗 function var txt input UserName var func function txt val txt val replace s
  • jQuery .append 不起作用

    我想在我的表单中插入一些东西 这些东西被硬编码到插件中 我不想弄乱插件文件 所以我发现 append 我写过类似的东西 据我所知它应该有效 Chrome 中的控制台没有显示任何错误 这是有什么问题吗 由于 wordpress 安全模式 我正
  • 如何在phonegap应用程序中使用存储在localStorage中的json feed?

    这就是我正在做的 向我的网络服务器发出请求 响应采用 json 格式 使用 jquery 模板在我的应用程序中呈现回调数据 非常简单 就像魅力一样 问题是 我想在本地存储一些数据 这样我的应用程序就不必每次都从服务器获取它 3g 很慢 每笔
  • 防止jsTree节点选择

    我正在使用 jsTree 插件列出文件系统中的文件夹 我需要防止用户在满足特定条件之前更改到另一个节点 下面的代码不会停止传播 我看到了一些使用其他插件的解决方案 但这是一个简单的任务 没有其他插件它一定是可能的 jstree on sel
  • jQuery id 选择器在有 .在 ID 中[重复]

    这个问题在这里已经有答案了 我的html代码如下 div class chatbox html markup which is validated div 在上面的代码中dipesh parmardiv 动态添加 我正在使用以下代码访问它
  • javascript中输入类型时间的值

    我有这个html
  • 如何在每个组件完成加载后在 Angular 2 中运行 jquery 函数

    我已经尝试了所有生命周期挂钩 但无法实现所需的结果 我需要的结果是触发一个函数 该函数在加载每个元素 组件 后初始化用于单个页面上不同元素的许多 jquery 插件 假设你有这个结构 主页 滑块 小部件 产品旋转器 ETC 这些元素中的每一
  • 水平平滑滚动 100px

    Heyjo problem 一周以来我一直在寻找 javascript 或 jQuery 代码 以便在我的网站上实现滚动按钮 我失败的那一刻是按钮应该多次工作的时候 他的任务不是滚动到专用元素 而是应该向左滚动 例如 100px 此外 滚动
  • 如何设置在浏览器的新选项卡(_blank)中打开的pdf文件的标题

    这是我的尝试 是否在新选项卡上打开 但它总是显示test pdf如题 function titlepath path name alert path alert name document title name window open pa
  • jqGrid刷新本地数据(JSON对象)

    我正在尝试将 jqGrid 与本地数据一起使用 但发现了几个问题 我正在初始化这样的事情 function refreshGrid grid results grid jqGrid data results datatype local c
  • 检测 WebGL 支持的正确方法?

    我正在尝试跨多个浏览器检测 WebGL 支持 并且遇到了以下情况 当前版本的 Firefox 似乎使用以下检查来报告积极支持 即使访问者的视频卡被列入黑名单和 或 WebGL 被禁用 if window WebGLRenderingCont
  • 禁用 Bootstrap 中的选项卡

    我正在尝试禁用引导程序中的选项卡 我一直在研究 但尚未找到解决方案 我已经尝试过这个 可以禁用 Bootstrap 中的选项卡吗 https stackoverflow com questions 9237314 can you disab
  • 如何删除除任何特定 id 之外的元素

    假设有一个父 id 其中包含许多元素 我想删除除一个元素之外的所有元素 ex parent id children not id n remove
  • Instagram 粉丝计数 - 使用 jQuery / json 和 PHP

    经过几个小时的工作和一些帮助萨希尔 米塔尔我们已经成功使用 jQuery json 和 PHP 检索 Instagram 关注者计数 这是我们设法整理的内容 希望对其他想要获取 Instagram 信息的人有所帮助 我们的 jQuery I
  • 防止垃圾邮件按钮呼叫功能

    如何防止调用函数时出现垃圾邮件按钮 就像用户只能在按钮上每 1 秒调用一次该函数 有办法做到吗 因为我尝试了 setTimeout 但没有成功 它仍然在发送垃圾邮件 顺便说一句 我使用 Jquery 这是我的代码
  • 自动建议 php 的 ajax

    我有一个 html 表单 php 脚本和 jquery 我需要一个 ajax 代码来从我的 php 脚本中进行自动建议 以下是代码 表单 html
  • 从 HTTP 登录到 HTTPS

    我的网站默认使用 HTTP 我确实有一个启用 HTTPS 的证书 但只有其上的某些区域强制建立安全连接 登录是通过 Ajax 处理的 我想开始使用 SSL 即使请求来自 HTTP 我尝试强制请求的地址具有 HTTPS 并且它完美地回复 然而
  • 使用单击事件调用“trigger”方法时的复选框值

    如何在点击事件中获取正确的当前值以通过触发器调用 Html
  • 没有输入的 jQuery 日期选择器

    我有一个相当复杂的网络应用程序 我想向其中添加一些日期选择 UI 我遇到的问题是我无法从文档中弄清楚如何真正控制日期选择器的出现方式和时间 不涉及任何表单元素 不 我不会添加秘密表单字段 因此简单的开箱即用方法根本行不通 我希望有人可以提供

随机推荐

  • Yii Framework 开发教程(46) Zii组件-Sortable示例

    CJuiSortable显示一个列表 列表中的列表项可以通过拖放重新调整顺序 它封装了 JUI Sortable插件 其基本用法如下 php view plain copy print
  • ViewPager + TabLayout + Fragment 切换崩溃

    使用ViewPager TabLayout Fragment三件套来进行界面切换 刚开始只有两个fragment需要切换 一切正常 然后增加了一个fragment 切换前两个就正常 切换第三个然后想切换回第一个就崩溃了 原因是ViewPag
  • textarea随输入文本增加,其高度自动加大

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 首先给出答案
  • GPU硬件结构和编程模型(源于nvidia的CUDA文档)

    GPU的硬件结构 GPU通过一个可扩展的多线程流式多处理器 SMs 构建 一个multiprocessor可以在同一时间处理上百个线程 为了管理这些线程 使用一个特殊的结构SIMT 利用单线程中指令级的并行 以及同步硬件多线程实现的广泛线程
  • 解决“volar.inlayHints.eventArgumentInInlineHandlers“: false` to hide Event Argument in Inline Handl

    今天遇到了一个很奇怪的问题 解决办法 在vscode中点击设置 在搜索框中输入eventArgumentInInlineHandlers 关闭红色框中的对号即可
  • 避免同一文件多次被include

    转载 url http c chinaitlab com cc basic 200805 748036 html url 为了避免同一个文件被include多次 C C 中有两种方式 一种是 ifndef方式 一种是 pragma once
  • rsync报错

    1 skipping non regular file 原因 源文件中存在软链接 解决办法 使用 a选项 2 skipping directory 原因 源文件中存在目录 默认rsync只同步文件 解决办法 使用 r选项
  • Win7和Win10 关闭驱动程序强制签名的方法

    随着windows的更新 微软对驱动签名的邀请越来越严格 Windows 10 1607以后的内核驱动没有微软签名都不能正常运行 建议大家将自己开发的驱动进行微软徽标认证 WHQL认证 以获取微软驱动签名 下面为大家介绍windows 7和
  • 拳王虚拟项目公社:淘宝虚拟货源怎么找?在哪里找虚拟资源,虚拟产品如何找到?

    淘宝的虚拟货源从哪来 卖家要知道虚拟产品有什么技巧 很多小伙伴开店开站卖的是虚拟产品 为什么新手更愿意选择虚拟产品开店呢 因为 虚拟店铺的成本非常低 利润却很高 相对于非虚拟的店铺 虚拟店铺是非常具有优势的 不过 在货源选择方面 大家同样要
  • 服务器被攻击怎么选择更好的方式去防御,IDC说的集防和单机防御都是什么意思

    只要是互联网覆盖到的地方 或多或少都会存在有网络攻击的情况 一但面对网络攻击 很有可能会出现服务器瘫痪业务无法正常进展的情况 那边怎么才能消除网络攻击的影响呢 那就是考虑接入使用高防服务器来抵挡网络攻击 高防服务器之所以称之为高防 是因为服
  • MyBatis动态SQL,foreach下批量插入

    MyBatis批量插入 mapper接口 mapping映射 测试 jdbc properties mapper接口 int forEachInsert Param list List
  • STATA基础笔记

    1 generate 可简化为 g ge gen help 简 h 2 变量也可简化 比如country 就用c 表示 前提是其他变量开头不带c 3 变量可以使用通配符 c 代表所有以c为首字母的变量 4 do文件 用来记录命令 log文件
  • 撸狗初体验

    直接上视频听我 BB https www bilibili com video av75675708 下面开始编故事 某个周末 走在去加班的路上 脚底突然被某个东西咯噔一下 抬脚一看 竟然是 捡起来一看 哈士奇 哈士奇 哈士奇 竟然是 DF
  • 编程中,有哪些好的习惯一开始就值得坚持?

    嗨 小伙伴们大家好 我是沉默王二 就是那个吹自己既有颜值又有才华的家伙 今天这个话题我觉得还是值得和大家探讨的 因为好的编程习惯对程序员的职业生涯真的非常重要 记得我在学驾照的时候 遇到一哥们 之前开过车 属于无证驾驶的那种 但是 这哥们科
  • 一键部署WeBase-FISCO-BCOS联盟链管理平台

    文章目录 一键部署 前置条件 实际使用环境 一 环境安装 ubuntu18 04 1 Java安装及环境变量配置 2 Mysql的安装及配置 3 python配置 PyMySQL部署 Python3 4 二 拉取webase部署脚本 修改w
  • PageHelper 分页查询「实现篇」

    两种情况 分两种情况 查出来为 PageQueryRespDTO 查出来直接是 Model 查出来为 PageQueryRespDTO public PageInfo
  • WS-Discovery(网络服务动态发现)协议再解读

    WS Discovery 网络服务动态发现 协议再解读 文章目录 WS Discovery 网络服务动态发现 协议再解读 1 概述 2 协议资料 3 协议介绍 1 适用范围 2 不适用 4 协议示例及wireshark抓包分析 1 客户端探
  • html想相关概念

    HTML Hypertext Markup Language 是一种用于创建网页的标记语言 它为开发者提供了一种结构化的方式来描述网页的内容和外观 本文将介绍HTML的基础知识和关键点 让读者了解如何使用HTML来构建现代网页 HTML的基
  • 将日志打印的SQL组装为可执行SQL_sublime版

    java项目日志打印的sql和条件参数是分离的 使用起来很不方便 之前为了解决这种问题 使用notepad 录制宏解决了这个问题 但是后期不方便维护 遂转用sublime 这个跟notepad 比起来有些东西不是很习惯 但是好处是插件可以自
  • 关于“网页埋点”的简单介绍与实现

    网页埋点的简单实现 本文抛开数据增长方法和埋点技术原理的大道理 通过一个简单的埋点小实例帮助大家更好的了解埋点 一 什么是数据埋点 埋点是网站和APP等产品进行日常改进及数据分析的数据采集基础 根据采集得到的用户行为数据 例如 页面访问路径