UTM 营销归因
点击带 ?utm_source=… 的链接,本页重载后埋点自动捕获活动来源 / 媒介 / 名称。
你在这页的每一次点击、滚动、切换路由、设自定义维度——都会落进 demo0001 报表。你可以打开同一份报表,在里面找到自己。
点任意按钮,右侧日志会立刻显示你刚刚制造的数据点。
点击带 ?utm_source=… 的链接,本页重载后埋点自动捕获活动来源 / 媒介 / 名称。
SDK 自动识别 URL 里的 ?q=…,把搜索词作为事件上报。
故意访问不存在的路径,SDK 通过 404.php 自动上报失效链接。
试一个不存在的链接SDK 自动捕获跳出本站的外链点击,并作为事件上报。
试一个出站链接常见文件后缀(pdf/zip/docx/…)的点击会自动上报为「下载」事件。
试一个 .txt 下载cd1-3 用 tj("cd", 1, "premium") 设定后,跟随后续所有 PV/事件一起上报;适合 A/B 桶 / 用户档位切片。
只统计「可见 + 30 秒内有交互」的真实秒数;含挂机的死时间不算。
SDK 用原生 PerformanceObserver 测 LCP / INP / CLS;pagehide 时上报;报表可见 Google 阈值评级。
去报表看你的 Vitalsdemo0001 是公开演示站点,所有访客的数据汇总在一起。在地理 / 设备 / 浏览器面板你能立即找到本次会话的影响。
打开 demo0001 报表一行代码、4 种部署方式。所有方式异步、不阻塞首屏。
放进 </body> 前。最简单 / 兼容性最好。
<script async src="https://9ping.dev/hm.min.js"
data-sid="YOUR_SITE_ID"></script>
JS 应用动态加载;自带 hashchange + History API 监听,无需手埋虚拟 PV。
// React/Vue/Vite/Next SPA
(function () {
var s = document.createElement('script');
s.async = true; s.src = 'https://9ping.dev/hm.min.js';
s.dataset.sid = 'YOUR_SITE_ID';
document.head.appendChild(s);
})();
禁用 JS 的访客也能记一次 PV。与上面任一方式叠加使用。
<noscript>
<img src="https://9ping.dev/collect.php?sid=YOUR_SITE_ID&type=pv"
width="1" height="1" style="display:none" alt="">
</noscript>
加载后任意时刻调用 tj();用一份代码搞定按钮 / 表单提交 / 漏斗节点。
// 自定义事件
tj('event', 'signup', 'submit', 'pricing-page');
// 自定义维度(跟随后续 PV/事件一同上报)
tj('cd', 1, 'premium');
tj('cd', 2, 'card');
这个页面已嵌入埋点(site_id = demo0001,与后台生成的一字不差)。试试看:
点击「商品列表」标签——地址栏会出现 #/page2,标题会变,一条新的虚拟 PV 会在右侧弹出来。这就是单页应用(SPA)下的页面追踪。
小提示:多开几个隐身窗口访问,UV 与在线人数会区分不同访客。
虚拟 PV 已上报——切换 hash 路由就像在真正的 React/Vue 应用里换页。右侧可看到本次 PV。
$129
主动降噪 · 38h 续航 · 多点连接
$219
蓝宝石表镜 · 心率/血氧 · 50m 防水
$89
客制化 75% 配列 · 热插拔轴座
每个「加入购物车」点击都会以自定义事件上报(类目=电商,动作=加车,标签=商品 SKU)。
这一步演示的是「转化漏斗」常见的最后一步——表单不会真的提交,但表单获焦、点击「下单」都能埋成事件。