【发布时间】:2015-12-21 21:58:55
【问题描述】:
我正在尝试捕获 <select> 值,将它们推送到数据层并使用 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”类时触发。
标签传递类别和动作,但标签显示为“(未设置)”。必须有更有效的方法来捕获这些值并传递它们!!
【问题讨论】:
-
尝试在dataLayer推送之前对“selectedValue”的值进行评估。
-
@nyuen 我刚刚更新了上面的代码以表明我也想只捕获动态选择的值。我很抱歉之前没有使用此示例,因为它会推送选择菜单中的所有值,而不仅仅是选定的值。感谢您迄今为止的所有帮助!
标签: javascript html google-analytics google-tag-manager