【发布时间】:2014-07-24 18:38:12
【问题描述】:
要求:捕获导航菜单点击
当前设置:
标签 1:全局点击监听器,所有页面都有一个触发规则,即
{{url}} matches RegEX .*
标记 2:菜单点击跟踪 - 自定义 HTML 标记类型,所有页面和 HTML 都有一个触发规则:
<script type="text/javascript">
$('#top_nav_menu a').click(function(){
var target = event.target;
var parentElem = $(target).parent();
var targetHref = $(target).attr("href");
var targetClass= $(parentElem).attr("class");
dataLayer.push({
'event': 'navigation',
'eventAction': targetClass,
'eventLabel': targetHref
});
});
</script>
标签 3:事件 - 菜单点击 - Universal Analytics 代码类型,带有触发规则:
{{event}} equals navigation
跟踪类型:事件
Category: {{event}}
Action: {{event action}}
Label: {{event label}}
宏:
- 事件操作 - 数据层变量宏类型
数据层变量名称:eventAction
- 事件标签 - 数据层变量宏类型
数据层变量名称:eventLabel
发生了什么:目前全局点击监听器和菜单点击跟踪正确触发,但事件 - 菜单点击失败。我假设它是因为没有正确定位 DOM 元素。 DOM 结构是这样的:
<nav id="top_nav_menu">
<ul class="no-list">
<li id="about" class="about"><a href="link-value">about</a></li>
<li id="services" class="services"><a href="link-value">services</a></li>
<li id="work" class="work"><a href="link-value">work</a></li>
<li id="contact" class="contact"><a href="link-value">contact</a></li>
</ul>
</nav>
我无法更改 HTML 或添加类,我如何确保触发 Event - Menu Click 标记并推送正确的 dataLayer 值。
任何帮助将不胜感激。提前致谢。
【问题讨论】:
-
您不需要将“event”作为参数传递给您的点击处理程序以访问 event.target(肯定看起来像在api.jquery.com/event.target 的文档中)?
标签: javascript jquery google-tag-manager universal-analytics