如何通过Google Tag Manager将购买者邮箱传入数据层并正确取值?
解决GTM获取购买者邮箱的配置方法
首先明确:data-gtm-form-interact-id是GTM自动给表单添加的标识,不是数据层变量的路径前缀,你不用在变量里加这个。下面是具体的配置步骤:
第一步:确认邮箱值的存在位置
打开浏览器开发者工具(按F12),切换到「Console」标签,输入dataLayer回车,查看数据层里的条目:
- 如果是表单提交触发的事件,找到
gtm.formSubmit相关的对象,看里面的formElement或fields字段里有没有邮箱值; - 如果网站已经把邮箱推送到数据层(比如
dataLayer.push({emailAddress: 'xxx@xxx.com'})),直接找对应的变量名。
第二步:GTM变量配置方案
根据不同情况选对应的方法:
方案1:数据层直接存在邮箱变量
如果数据层里有现成的emailAddress变量(值就是邮箱字符串),直接新建数据层变量:
- 在GTM后台进入「变量」→「用户定义变量」→「新建」;
- 选择「数据层变量」类型;
- 「数据层变量名称」填
emailAddress即可(不用加.value,除非这个变量本身是带value属性的对象)。
方案2:从表单字段提取邮箱(适合无法改代码的情况)
如果邮箱是在表单输入框里,用以下两种方法:
方法A:用表单变量
- 新建用户定义变量,选择「表单变量」类型;
- 「组件类型」选「字段名」,输入邮箱字段的
name属性值(比如你的表单里邮箱字段的name是emailAddress,就填这个); - 保存后就能直接拿到输入框里的邮箱值。
方法B:自定义JS变量
- 新建用户定义变量,选择「自定义JavaScript」类型;
- 输入以下代码(根据你的表单字段调整选择器):
function() { // 这里可以用字段的type、name或id来定位,比如name="email"就改成'input[name="email"]' var emailInput = document.querySelector('input[type="email"]'); return emailInput ? emailInput.value : undefined; }
第三步:验证配置
开启GTM的「预览」模式,在网站上触发对应的动作(比如提交表单),查看「变量」面板里的自定义变量,确认是否成功获取到邮箱值。
内容的提问来源于stack exchange,提问作者Joey Jones
相关产品推荐
相关产品推荐

