欢迎访问我的博客,有问题可以在任意文章底部留言评论

GTM进阶技巧:如何抓取并解析API返回的JSON数据

GTM教程 Haran 1年前 (2025-08-11) 3115次浏览 7个评论

更新时间:2025年8月11号

这一篇介绍用GTM获取网站API返回的JSON数据,然后将数据发送到GA4,这是一种灵活的数据采集方案。典型使用场景包括:

  • 用户登录跟踪:用户登录后,网站 API 返回登录用户信息,可将其作为登录成功事件跟踪,同时将用户属性(如用户ID、会员等级等)发送至 GA4
  • 电商产品信息采集:电商页面打开时,API 返回产品信息并渲染在页面上。通过此方法可直接从 API 响应中提取产品数据(如 SKU、价格、品类),发送至 GA4

核心价值: 跳过对页面 DOM 元素的解析依赖,直接获取前端页面所拿到的原始结构化数据,更加稳定、准确。

如何确定API返回的JSON数据结构

在浏览器开发者工具的网络里,找到API返回的请求,在Response里看到如下数据结构就是:

GTM进阶技巧:如何抓取并解析API返回的JSON数据

示例:若响应内容为可展开的结构化 JSON 对象,即说明已定位到目标 API。

 

GTM获取API返回的JSON数据

使用的代码如下,通过拦截浏览器的fetch和XMLHttpRequest请求,捕获目标API的响应数据

<script type="application/javascript">
   $.get("API返回的地址", function(response) {
             console.log("打印数据: ", response);
}, "json")
</script>

在GTM中,用自定义HTML,将上述代码配置到所有页面都触发就可以,然后预览测试,在浏览器开发者工具的控制台可以看到API 响应数据:

GTM进阶技巧:如何抓取并解析API返回的JSON数据

发送数据到GA4

<script type="application/javascript">
   $.get("API返回的地址", function(response) {
             console.log("打印数据: ", response);

    window.dataLayer.push({
        'event': "login",
        'data': response});

}, "json")
</script>



预览测试,可以在Tag Assistant里看到数据发送出去:

GTM进阶技巧:如何抓取并解析API返回的JSON数据

就可以根据这个去配置事件。

 

注意事项

  • API关键字匹配:API_PATTERN 应选择 URL 中具有唯一性的片段,避免误捕获无关请求。
  • 数据敏感性:API 返回数据可能包含用户隐私信息(PII),发送至 GA4 前需评估合规性,避免违规采集。
  • SPA页面适配:单页应用中 API 请求频繁且页面不刷新,自定义 HTML 代码需确保在应用初始化前完成注入,GTM 的 All Pages 触发时机通常可满足需求。
  • 请求拦截的局限:此方案仅能捕获前端页面发出的 API 请求,服务端之间的 API 调用无法通过此方式获取。

参考资料


有疑问可以在底部留言
喜欢 (0)
发表我的评论
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(7)个小伙伴在吐槽
  1. 多谢楼主,插页广告确实有特殊的参数,出现插页广告时,页面的url一定携带 google_vignette 参数。
    kk2025-09-05 11:01 回复 Mac OS X | Chrome 139.0.0.0
  2. 您好,我想请问一下,有什么好的方式可以捕捉到用户点击了插页广告吗?我尝试了几种方案,最终都由于:浏览器会立即跳转到广告主的网站,当前页面的JavaScript执行环境被终止,无法完成数据层推送和GTM标签触发。
    kk2025-09-04 16:48 回复 Mac OS X | Chrome 139.0.0.0
    • Haran
      iframe插入的广告?
      Haran2025-09-04 16:51 回复 Mac OS X | Chrome 139.0.0.0
      • 是的,在指用户访问网页的过程中,iframe插入的插页广告
        kk2025-09-05 09:01 回复 Mac OS X | Chrome 139.0.0.0
        • Haran
          参考用:书中用到的代码 里跟踪Adsense广告点击的代码
          Haran2025-09-05 09:31 回复 Mac OS X | Chrome 139.0.0.0
          • 多谢楼主,但是发现这段代码对于全屏插页广告(Interstitial Ads)似乎是无效的。因为插页广告本身是一个巨大的、覆盖整个视口的 iframe。所以用户关闭广告时,也会被误判。
            kk2025-09-05 09:55 Mac OS X | Chrome 139.0.0.0
          • Haran
            1、看是否有参数可以区分广告类型,在发送dataLayer.push做个判断排除 2、GA4关联Adsense,Adsense会自动跟踪点击广告的数据,关联后可以同步到GA4
            Haran2025-09-05 10:16 Mac OS X | Chrome 139.0.0.0