Javascript 谷歌标签管理器点击事件未向家长弹出
我正在一个客户的网站上设置谷歌标签管理器,但我在启动点击事件标签时遇到了麻烦 我已将触发器设置为在按钮的CSS选择器上触发 按钮本身有一些子元素,包括svg图标。单击svg时,单击会在数据层中注册,但不会触发标记。标记仅在我选择按钮本身时激发 我还尝试在我自己的脚本中删除附加到这些按钮的事件侦听器,以防Javascript 谷歌标签管理器点击事件未向家长弹出,javascript,google-analytics,google-tag-manager,Javascript,Google Analytics,Google Tag Manager,我正在一个客户的网站上设置谷歌标签管理器,但我在启动点击事件标签时遇到了麻烦 我已将触发器设置为在按钮的CSS选择器上触发 按钮本身有一些子元素,包括svg图标。单击svg时,单击会在数据层中注册,但不会触发标记。标记仅在我选择按钮本身时激发 我还尝试在我自己的脚本中删除附加到这些按钮的事件侦听器,以防返回false或e.stopPropagation()阻止了它,但这并没有改变任何事情 我的理解是,GTM侦听文档中出现的点击事件。如果是这种情况,我的标签应该在点击孩子时触发,对吗?还是我误解了
返回false
或e.stopPropagation()
阻止了它,但这并没有改变任何事情
我的理解是,GTM侦听文档中出现的点击事件。如果是这种情况,我的标签应该在点击孩子时触发,对吗?还是我误解了什么
或者,我是否应该在脚本中将事件推送到数据层,而不是使用单击触发器
10 gtm。单击
正确触发标记
9 gtm.click
是没有
最后一个屏幕截图是我的触发器的触发规则。我经常遇到这种类型的问题。这种情况也发生在glyph图标之类的
标记上。只需添加CSS指针事件:无代码>到该SVG(除非您要求该SVG是可单击的,而不仅仅是父元素)。SVG上的指针事件:none
意味着当单击它时,单击事件会在父元素上注册
最好的方法是让客户端开发人员添加JS。更黑客的方法是通过GTM在自定义HTML标记中运行类似的东西
jQuery('a.link-youre-tracking svg').css('pointer-events','none)
使用的解决方案/想法:
pointer-events:none
但是当你有一个复杂的div(里面有20个类和15个元素)并且你用一个链接
如前所述,“Just Links”触发器将冒泡到父级以获取更多信息。您的目标标记类型是什么?它是一个锚,还是一个div或按钮或其他东西?您是如何配置单击触发器的?它是在所有点击时触发还是仅仅在链接时触发?目标元素是一个div。点击触发器是为所有点击设置的,带有一个“click element”过滤器以匹配CSS选择器。好的,我想我在他们的列表中找到了答案。我需要将目标更改为锚点,然后将触发器更改为“仅链接”。“所有元素”将冒泡出子信息,而“仅链接”将提供父锚点信息。是的,这是正确的,如果您对非锚点元素使用“所有链接”启用码,您还可以使用自定义JS变量执行其他操作。非常好。这就是GTM成为GTM的原因。单击我的
场景的直接父级
,这类似于包装svg
等。我有内容。Chrome认为我点击了
,但FF认为我点击了
<代码>指针事件:无代码>点击
tad解决这个问题,所有浏览器现在都认为我点击了
我相信如果GTM设置为跟踪该触发器的“仅链接”,它将冒泡到
@slothluvchunk不幸的是,它没有。我刚刚尝试过,链接点击没有被触发:-有趣-我在大量触发器上使用此解决方案,关闭指针事件允许我跟踪触发所基于的
,而不是实际点击的元素。你的触发器是通过CSS选择器过滤的吗?这方面的一个例子是音频播放器,其中我跟踪单击以播放/暂停图标,但希望根据实际的
的CSS选择器触发,而不是实际被单击的svg
,它的单击区域非常小/不一致。
<a class="track-this-click-by-gtm" href="url">
<div style="pointer-events:none">
extra unwanted div
<i></i>
<p>hello</p>
<ul><li>hello2</li></ul>
<date>2019</date>
lorem
</div>
</a>