电商无Data Layer场景下GTM转化价值追踪 修复Purchase Price返回undefined问题
问题根因
- 原代码未声明
str变量,直接调用str.split()会触发引用错误,是返回undefined的核心原因 - JavaScript的
split方法入参规则为(分隔符, 可选的返回数组最大长度),原代码参数顺序、参数类型均不符合语法要求 - 未添加异常兜底逻辑,当点击文本不包含目标前缀时会出现异常返回
修正后代码
function() { // 获取GTM内置点击文本变量值,兜底为空字符串避免报错 const clickText = {{Click Text}} || ''; // 按目标前缀拆分字符串 const priceSegment = clickText.split("Adicionar R$ "); // 匹配成功返回价格内容并去除前后空格,匹配失败返回空值 return priceSegment.length > 1 ? priceSegment[1].trim() : ''; }
后续验证建议
- 配置完成后进入GTM预览模式,触发加购按钮点击后检查该变量返回值是否与按钮显示价格一致
- 若需要数值类型的价格用于转化金额统计,可适配巴西本地小数分隔符规则调整返回逻辑:
function() { const clickText = {{Click Text}} || ''; const priceSegment = clickText.split("Adicionar R$ "); if (priceSegment.length < 1) return 0; // 将葡萄牙语常用的逗号小数分隔符替换为点,再转为浮点数 return parseFloat(priceSegment[1].trim().replace(',', '.')) || 0; }
内容的提问来源于stack exchange,提问作者Thiago Dam
相关产品推荐
相关产品推荐

