美文网首页
Web曝光埋点实现原理

Web曝光埋点实现原理

作者: jiansheng | 来源:发表于2021-07-24 16:21 被阅读0次

主要用到的API

MutationObserver

MutationObserver 主要提供了DOM节点增减以及属性变化检测的能力。从下图可看出大部分浏览器对该API支持良好。

兼容性.png

demo源代码:https://stackblitz.com/edit/js-ew1sn1?file=index.js
demo效果:https://js-ew1sn1.stackblitz.io/

在demo中,当点击 add domremove dom 按钮时,改变了DOM的结构,当点击 change target attribute 按钮时,改变了DOM的属性值,都会触发 callbackcallback 中可以获取到 mutation 对象,比较主要的字段:

  • type:改变的类型,childList、attributes
  • addedNodes:增加的DOM
  • removedNodes:移除的DOM
  • target:DOM

IntersectionObserver

IntersectionObserver 主要用来检测被监听的目标元素可见部分与root元素的交叉状况,比如获取相交区域的比例值,后面做曝光埋点的判断需要用到。还可以获取其它信息,https://developer.mozilla.org/zh-CN/docs/Web/API/IntersectionObserverEntry

从下图可看出有些浏览器不支持该API,所以需要引入polyfill,https://github.com/w3c/IntersectionObserver/tree/main/polyfill

兼容性.png

demo源代码:https://stackblitz.com/edit/js-ozzzjw?file=index.js
demo效果:https://js-ozzzjw.stackblitz.io/

见demo源代码中的options

let options = {
  root: null,
  rootMargin: '0px',
  threshold: [0, 0.5, 1] // 当监听对象的任何阈值被越过时,都会生成一个通知(Notification)。
};

demo中的root是浏览器窗口,被监听的目标元素是横向的蓝色块和纵向的蓝色块。当被监听的目标元素可见部分与root元素交叉比例越过0 0.5 1时,会log对应的信息。

requestIdleCallback

使用 requestIdleCallback 方法,浏览器会在空闲时执行传入的函数。后面埋点我们使用这个方法,避免埋点影响主业务。

曝光埋点实现

demo源代码:https://stackblitz.com/edit/react-hfq33n?file=src%2FApp.js
demo效果:https://react-hfq33n.stackblitz.io/

说明:

  1. 当模块露出大于等于50%时,会曝光埋点,demo中用log代替
  2. 当模块到可视范围之外,在进入可视范围露出大于等于50%时,会再次曝光埋点
  3. demo中,模块蓝边表示未曝光埋点,绿边表示已曝光埋点

相关文章

  • Web曝光埋点实现原理

    主要用到的API MutationObserver[https://developer.mozilla.org/z...

  • web 埋点

    数据埋点是什么?设置数据埋点的意义?web 埋点实现原理了解一下 前端监控和前端埋点方案设计美团点评前端无痕埋点实践

  • App埋点实现原理

    现在App埋点一般采用talkingdata或者友盟,如果要我们自己实现埋点功能,该怎么做呢?个人觉得一个好的埋点...

  • 微信小程序--模块曝光埋点方法

    我们在处理模块曝光埋点时,需要根据页面滚动的位置判断模块是否可见(被曝光)。Web 上传统方法是增加页面 scro...

  • Flutter aspectd (四) 全埋点实现

    简述 aspectd的简单原理清楚了,下面尝试实现一下全埋点,参考大佬文章:Flutter之全埋点思考与实现[ht...

  • Android实战——RecyclerView条目曝光埋点

    一、概要 100行代码实现recyclerview条目曝光埋点设计 二、设计思路 条目露出来一半以上视为该条目曝光...

  • iOS 列表cell曝光埋点

    什么是曝光埋点,简单的说就是展示在屏幕上了,然后往服务端上传一个埋点。那列表cell的曝光埋点就是cell进入屏幕...

  • Android自动化埋点技术探索-1

    前言: 上一篇文章 主要介绍了埋点的基本概念以及几种埋点技术实现方式的原理和差异,本篇文章是自动化埋点技术探索的第...

  • 埋点之眼球曝光

    埋点曝光需求要求在页面在用户的视野中就发送一个曝光日志,一个页面的一个模块最多发送一次,也就是首次曝光才发送,之后...

  • iOS-曝光埋点

    背景 电商类APP列表页,用户上下滑动,列表页中的item显示在屏幕中,此时数据分析上来看,item的显示(比如滑...

网友评论

      本文标题:Web曝光埋点实现原理

      本文链接:https://www.haomeiwen.com/subject/pgxvmltx.html