如何借助GTM为gtag发送的view_item事件添加currency与value参数
如何为GA4的view_item事件补充currency和value参数
我从网站基础设施拿到的gtag代码发送view_item事件时,缺少Google建议的currency和value参数,能不能用Google Tag Manager(GTM)补上这俩参数?还有别的办法吗?
现有代码
gtag("event", "view_item", { items: { item_id: "23233", item_name: "BenQ PD2705Q 27-inch QHD,USB-C", currency: "TRY", index: 0, item_brand: "Benq", item_category: "Kurgu ve tasarım monitörü", price: 19589.3, quantity: 1 } })
期望发送至GA4的目标代码
gtag("event", "view_item", { currency: "TRY", value: 19589.3, items: { item_id: "23233", item_name: "BenQ PD2705Q 27-inch QHD,USB-C", currency: "TRY", index: 0, item_brand: "Benq", item_category: "Kurgu ve tasarım monitörü", price: 19589.3, quantity: 1 } })
解决方案
方法一:通过GTM补充参数
创建自定义JS变量
在GTM后台新建一个「自定义JavaScript」变量,用来从数据层提取现有view_item事件的参数,计算出需要的currency和value:function() { var eventEntry = {{Data Layer}}.find(entry => entry.event === 'view_item'); if (eventEntry && eventEntry.items) { const item = eventEntry.items; return { currency: item.currency, value: item.price * item.quantity }; } return {}; }新建GA4事件标签
创建GA4事件标签,事件名设为view_item,触发条件选择原view_item事件对应的触发规则(比如数据层事件为view_item)。在「事件参数」里添加两个参数:currency:引用刚才创建的自定义变量里的currency字段value:引用自定义变量里的value字段
避免重复发送
要么禁用网站源码里原来的gtag view_item事件发送逻辑,要么在GTM里设置「阻止默认事件」,防止同一个事件被发送两次。
方法二:直接修改网站源码
如果有权限修改网站基础设施的代码,直接把currency和value参数加到原gtag事件的顶层对象里,就像目标代码那样写,这是最直接高效的方式。
方法三:全局设置currency(仅补全currency)
如果全站统一使用同一种货币,可以在页面初始化时添加以下代码,后续所有GA4事件会自动带上currency参数,但value还是需要单独计算添加:
gtag('set', {'currency': 'TRY'});
内容的提问来源于stack exchange,提问作者mehmetakif
相关产品推荐
相关产品推荐

