Macros 如何创建一个Google标记管理器规则,该规则基于没有ID的DOM元素的存在而触发?

Macros 如何创建一个Google标记管理器规则,该规则基于没有ID的DOM元素的存在而触发?,macros,google-tag-manager,Macros,Google Tag Manager,我在一个客户的电子商务网站上工作,当有人成功注册该网站时,一条成功消息()显示在无序列表元素()中 我想创建一个Google Tag Manager规则,当这个成功消息加载到页面上时触发,但不知道如何触发,如果你能抽出一分钟的时间,我希望你能提供帮助 基于我的准备(主要是Simo Ahava-),我尝试创建一个DOM元素宏,其中ElementID为“success msg”,然后使用它创建以下规则: {{url}} - ends with - /artistsignup/index/index

我在一个客户的电子商务网站上工作,当有人成功注册该网站时,一条成功消息()显示在无序列表元素()中

我想创建一个Google Tag Manager规则,当这个成功消息加载到页面上时触发,但不知道如何触发,如果你能抽出一分钟的时间,我希望你能提供帮助

基于我的准备(主要是Simo Ahava-),我尝试创建一个DOM元素宏,其中ElementID为“success msg”,然后使用它创建以下规则:

{{url}} - ends with - /artistsignup/index/index
{{success message}} - greater than - 0
{{event}}} - equals - gtm.load
{{event}} - equals - signUpSuccess
然而,这似乎不起作用

如果您有任何建议,我们将不胜感激,非常感谢

<div class="col-main">
<ul class="messages">
<li class="success-msg">
<ul>
<li>
<span>Thank you for signing up.</span>
</li>
</ul>

    • 谢谢你报名。

Alex

我必须为我的客户做很多这方面的工作,以下几点似乎对我有用注意:此解决方案使用jQuery。

其思想是,您希望运行一个脚本来检查成功消息是否可见,当它可见时,将数据层事件推送到GTM(Google Tag Manager)

第一步,在GTM控制台中创建一个自定义HTML标记,当成功消息变为可见时触发dataLayer事件:

<script type="text/javascript">
(function(){
    try{
        // Set a variable to the setInterval method so it can be cleared.
        var checkSuccess = setInterval(function(){
            // Check if the success message exists.
            if($('span:contains(Thank you for signing up)').length !== 0){
                // Check if the success message is visible.
                if($('span:contains(Thank you for signing up)').is(':visible')){
                    // Push the success event to the GTM's dataLayer.
                    dataLayer.push({'event' : 'signUpSuccess'});  
                    // Terminate the interval upon success.
                    clearInterval(checkSuccess);
                }
            }
        },500);
    }catch(e){
      // Uncomment to view errors.
      // console.log('GTM Error: ' + e);
    }
})();
</script>
最后,您希望在成功消息出现时触发的任何跟踪标记应具有以下规则:

{{url}} - ends with - /artistsignup/index/index
{{success message}} - greater than - 0
{{event}}} - equals - gtm.load
{{event}} - equals - signUpSuccess
最后要注意的是,如果不能使用jQuery进行此操作,那么只需将jQuery选择器替换为纯JavaScript选择器即可


谢谢

您是否尝试使用注册成功页面将事件推送到数据层?然后,您可以设置一个规则来触发该事件。{{success message}}宏返回什么?看起来它应该返回一个整数。谢谢!非常感谢你的帮助。作为jQuery的新手,我不知道如何解决以下javascript编译器错误——“第12行的错误,字符6:解析错误。”}“应为。”(这与第“}catch(e){”行有关)。再次感谢您的建议!嗯,这很奇怪。当我在测试GTM contianer中尝试它时,我没有遇到javascript编译器错误。您能提供您创建的标记的精确副本吗?在我的示例中,第12行被注释为“//终止间隔…”