You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shoptet网站Purchase事件在Google Tag Assistant中触发3次的问题求助

解决Shoptet网站Purchase事件重复触发3次的问题

问题背景

基于Shoptet搭建的网站,在Google Tag Assistant中预览时,Purchase事件被重复触发3次,每次事件带有独立的gtm.uniqueEventId,最终都会同步到GA4和Google Ads。事件触发顺序为:Purchase → set(对应gtag("set", {currency: "CZK"})) → Purchase → fbloaded(对应dataLayer.push({fbpixel: "loaded", event: "fbloaded"})) → Purchase。解绑Facebook账号后fbloaded事件仍存在,解绑GA4账号则无任何追踪事件,已排查过重复标签和例外规则未发现异常,三次Purchase的DataLayer内容量依次递减。

可行解决方案

1. 通过GTM过滤重复的Purchase事件(最快捷)

利用订单ID(transaction_id)的唯一性,在GTM中设置触发条件,仅允许首次出现的同订单ID触发Purchase标签:

  • 步骤1:创建自定义JavaScript变量
    变量作用是记录已触发过的订单ID,判断当前事件是否为重复:
    function() {
      window.trackedTransactions = window.trackedTransactions || [];
      const currentTxId = {{`DLV - transaction_id`}}; // 替换为你获取transaction_id的DataLayer变量
      if (window.trackedTransactions.includes(currentTxId)) {
        return false;
      }
      window.trackedTransactions.push(currentTxId);
      return true;
    }
    
  • 步骤2:修改Purchase标签的触发条件
    在原触发条件(event equals purchase)基础上,添加「上述自定义变量 equals true」,确保仅首次有效触发的Purchase事件会触发标签。

2. 关闭Shoptet内置的自动追踪,统一用GTM管理

Shoptet后台的Analytics设置中,若同时开启了GA4、Google Ads、Facebook像素的自动追踪,可能会各自独立触发Purchase事件,叠加后导致三次触发:

  • 进入Shoptet后台的「Analytics & Tracking」页面,关闭所有平台的自动追踪选项;
  • 完全通过GTM配置GA4、Google Ads、Facebook像素的事件追踪,确保逻辑统一。

3. 排查fbloaded事件的触发源

即使解绑Facebook账号仍存在fbloaded事件,可能是Shoptet主题或第三方插件残留的代码:

  • 检查网站代码中是否有硬编码的Facebook像素加载逻辑,手动清理相关代码;
  • 在GTM中设置规则,当fbloaded事件触发时,阻止后续的Purchase事件触发(可通过自定义触发器排除,或在标签中添加触发条件排除fbloaded后的事件)。

4. 验证DataLayer推送逻辑

在GTM预览模式中查看三次Purchase事件的transaction_id:

  • 若三次事件的transaction_id相同:说明Shoptet核心代码重复推送了Purchase事件,可联系Shoptet官方支持反馈问题,同时用方案1的过滤逻辑临时解决;
  • 若transaction_id不同:需排查是否存在订单重复生成的业务逻辑问题。

内容的提问来源于stack exchange,提问作者Tushy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 03:36:04