2015-12-21 102 views
2

我试图捕获<select>值,将它们推送到数据层并使用Google跟踪代码管理器将其推送到Google Analytics帐户。下面是从包含动态选择的属性我想凑值码:Google跟踪代码管理器 - 捕获选择值

<select class="dropdown__select" size="1" id="dyeMethod" name="dyeMethod" onchange="javascript:UpdateSearchResults('FilterSearchForm')"> 
             <option value="ALL">ALL</option> 

     <option value="395" > 
     Piece Dyed</option>    

     <option value="402" selected="selected"> 
     Solution Dyed</option>    

     <option value="406" > 
     Solution Dyed/Yarn Dyed</option>    

          </select> 
       </div> 
      </div> 

首先,我创建了一个自定义的HTML标签抢禁止的值,并将其推到数据层(标记代码下面):

document.addEventListener('change', function(e) { 
     if (e.target.className === 'dropdown__select') { 
     var selected = e.target.options ? e.target.options[e.target.value] : undefined; 

     window.dataLayer.push({ 
      'event' : 'valueSelected', 
      'selectedValue' : selected ? (selected.value) : '' 
     }); 
     } 
    }; 

该标签在DOM Ready上触发,并且'valueSelected'被推送到数据层。然后,我创建了一个数据层变量('selectedValue'),并将其指定为GA标签上的事件标签,只有在选择了“dropdown__select”类时才会触发该标签。

标签将类别和动作一起传递,但标签显示为'(未设置)'。必须有更有效的方法来捕捉这些值并将它们传递出去!

+0

尝试在dataLayer推送之前对“selectedValue”的值进行评估。 – nyuen

+0

@nyuen我刚刚更新了上面的代码,以显示我也只想捕获动态选择的值。对于之前不使用此示例,我表示歉意,因为它会将选择菜单中的所有值而不是仅选择一个。感谢您的所有帮助! – rokenbk97

回答

1

DOM Ready和valueSelected都是事件键值,因此无法在一次触发中同时使用此规则触发自定义HTML标记。

尝试在DOM Ready和Google Analytics标记上触发事件等于valueSelected的自定义HTML标记。

相关问题