Уровень данных диспетчера тегов Google не отправляет данные

Я инициализирую диспетчер тегов Google и gtag следующим образом:

@yield('styles')

@if(config('app.google_analytics_key'))
    <script async src="https://www.googletagmanager.com/gtag/js?id={{ config('app.google_analytics_key') }}"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());

      gtag('config', '{{ config('app.google_analytics_key') }}');
    </script>
@endif

<script>
    window['GoogleAnalyticsObject'] = 'ga';
    window['ga'] = window['ga'] || function() {
        (window['ga'].q = window['ga'].q || []).push(arguments)
    };
</script>

@yield('before_google_tag')

@if(config('app.google_tag_manager_key'))
    <!-- 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'?'&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','{{ config('app.google_tag_manager_key') }}');</script>
    <!-- End Google Tag Manager -->
@endif

@yield('after_google_tag')

У меня есть несколько страниц, на которых я отправляю данные в dataLayer сразу после кода менеджера тегов. Некоторым примером является моя страница с описанием продукта:

@section('after_google_tag')
<script>
    ga('require', 'ecommerce');
</script>

<script>
window.dataLayer = window.dataLayer || []
// Measures product impressions and also tracks a standard
// pageview for the tag configuration.
// Product impressions are sent by pushing an impressions object
// containing one or more impressionFieldObjects.
window.dataLayer.push({
  'ecommerce': {
    'detail': {
        'products': [{
            'name': '{{ $product->name }}',         // Name or ID is required.
            'price': '{{ $product->finalPrice }}'
        }]
    }
  }
});
</script>
@endsection

Все работает нормально, но когда я позже пытаюсь нажать на уровень данных при определенном событии (в моем случае добавление продукта в корзину), помощник по тегам Google не обнаруживает его, также я не вижу https://www.google-analytics.com/r/collect?v= на вкладке «Сеть», Я вижу их только для подробностей о продукте.

Вот код, который нажимает на добавление в корзину:

window.dataLayer = window.dataLayer || [];  
// Measure the removal of a product from a shopping cart.
window.dataLayer.push({
  'event': 'addToCart',
  'ecommerce': {
    'currencyCode': 'BGN',
    'add': {                                // 'add' actionFieldObject measures.
      'products': [
        {
           'name': product.name,
           'price': product.finalPrice
        }
      ]
    }
  }
});

Я делаю это внутри компонента Vue. Когда я консоль регистрирую dataLayer после этого события, я вижу, что он изменен с правильными значениями, но я не знаю, почему он не отправляет запрос или почему помощник тегов Google не обнаруживает эти изменения.


person Angel Miladinov    schedule 17.12.2019    source источник


Ответы (1)


Вам не нужно инициализировать GA с помощью кода, вы должны делать это в графическом интерфейсе GTM.

Я ожидаю, что push-уведомления о продукте связаны с просмотром страницы, который GA отслеживает по умолчанию при загрузке DOM.

После настройки GA с помощью GTM вам необходимо передать событие в GA по триггеру, который является именем события dataLayer.push. Для этого создайте настраиваемый триггер события в GTM, а затем отправьте данные в полезной нагрузке в GA.

Вам также необходимо настроить отслеживание GA в GTM, чтобы использовать dataLayer для данных электронной торговли.

Предварительный просмотр GTM покажет вам, что передается, а что не передается в dataLayer, вам нужно создать триггеры, которые запускаются из событий dataLayer.

person ASomN    schedule 30.12.2019