将输入值推送到数据层GTM

时间:2017-10-24 18:19:45

标签: javascript jquery html google-tag-manager

我正在尝试将输入值从表单推送到GTM数据层。我已经阅读了一堆不同的指南,并且仍然对必要的步骤感到困惑。目前我已经设置了以下内容:

  1. 触发html标记的触发器
  2. 具有一些自定义javascript以捕获输入值的Html标记(见下文)
  3. <script>
      
        /* event listener */
        document.getElementsByName("UnitPrice")[0].addEventListener('change', doThing);
        
        /* function */
        function doThing(){
        	var donateAmount = this.value;
          
          console.log(donateAmount);
         
          window.dataLayer.push({
              'event' : 'donation',
              'donationAmount' : donateAmount
            });
        } 
    </script>

    我的问题是双重的。首先,每当在该表单项上更新输入时,我不应该看到信息被推送到数据层(使用GTM调试器)吗?其次,就数据到数据层而言,我在这里错过了一步吗?

    编辑:

    下面是输入字段的html

    <input name="UnitPrice" type="hidden" id="UnitPrice" value="" />
    

1 个答案:

答案 0 :(得分:0)

&#39;变更&#39;是一个非常棘手的事件。通常,在更改文本值并等待输入失去焦点后不会触发此事件。 https://developer.mozilla.org/en-US/docs/Web/Events/change

我认为您不需要为每次输入更改而推送,但仅限于某些&#34;提交&#34;相互作用。您可以使用用户定义的自定义Javascript类型变量将此值公开给GTM:

function () {
  return document.getElementsByName("UnitPrice")[0].value; 
}

然后通过引用变量来访问标记中的值。