如何从body标签添加dataLayer对象和Google跟踪代码管理器容器代码段

时间:2016-12-30 07:20:12

标签: javascript jquery html google-analytics google-tag-manager

我有一些动态值,我只在body标签内。现在,当我尝试使用“script”标记使用dataLayer对象推送这些值并将其添加到head部分时,它不起作用。

这是代码 -

<script type="text/javascript">
    var head = document.getElementsByTagName('head')[0];
    var JS = document.createElement('script');

    <!-- Google Tag Manager -->
    var tagManagerSnippet = '(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({"gtm.start":\n' +
        'new Date().getTime(),event:"gtm.js"});var f=d.getElementsByTagName(s)[0],\n' +
        'j=d.createElement(s),dl=l!="dataLayer"?"&l="+l:"";j.async=false;j.src=\n' +
        '"https://www.googletagmanager.com/gtm.js?id="+i+dl;f.parentNode.insertBefore(j,f);\n' +
        '})(window,document,"script","dataLayer","GTM-XXXXXXXX");\n';
    <!-- End Google Tag Manager -->

    JS.text = tagManagerSnippet;
    head.prepend(JS);

    var code = 'dataLayer = [];\n' +
        'dataLayer.push({"eventLabel" : "Interested in Science"});\n' +
        'dataLayer.push({"eventLabel" : "Interested in IT"});\n';
    JS.text = code;
    head.prepend(JS);
</script>

我可以看到上面的代码正确执行并将JS附加到head部分。但是,标签不会触发。当我简单地将上面的代码放在头部(而不是动态)时,它会按预期运行。

0 个答案:

没有答案