Как добавить менеджер тегов Google в скрипт

#javascript #vue.js #google-tag-manager #nuxtjs

Вопрос:

Я использую nuxtjs.

это мой скрипт менеджера тегов Google:

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

    <!-- Google Tag Manager (noscript) -->
    <noscript>
      <iframe src="https://www.googletagmanager.com/ns.html?id=G***" height="0" width="0"
            style="display:none;visibility:hidden"></iframe>
    </noscript>
    <!-- End Google Tag Manager (noscript) -->
 

но я получил это сообщение об ошибке (тег не должен быть включен в div):

введите описание изображения здесь

моя структура:

 <div class="wrapper">
    <Heder />
    <main>
        <Nuxt/>
    </main>
   <Footer>


//my google tag manager script

</div>
 

Комментарии:

1. Почему бы не использовать @nuxtjs/gtm ?

2. я не знаком с nuxt, но нет ли index.html его в качестве файла ввода в вашем приложении? почему бы не устроиться там?

Ответ №1:

Вы должны разместить фрагмент кода диспетчера тегов Google на каждой странице, на которую вы хотите добавить GTM, внутри самого первого <head> тега, а не самого <body> тега. И <noscript> код должен быть помещен сразу после <body> тега, как указано здесь

 <html>
<head>

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

    //rest of the head
</head>

<body>
    <!-- Google Tag Manager (noscript) -->
    <noscript>
      <iframe src="https://www.googletagmanager.com/ns.html?id=G***" height="0" width="0"
            style="display:none;visibility:hidden"></iframe>
    </noscript>
    <!-- End Google Tag Manager (noscript) -->

    // rest of the body
</body>

</html>
 

Комментарии:

1. @S. M_Emamian это решение вашей проблемы?