Уровень данных до или после удаленного сценария: разница между Google Analytics и TagManager - PullRequest
0 голосов
/ 11 июля 2019

В документации Google Analytics предлагается, чтобы window.dataLayer заполнялось после / ниже тега сценария удаленного кода.

<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=GA_MEASUREMENT_ID"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'GA_MEASUREMENT_ID');
</script>

Однако в документации Google Tag Manager предлагается другой способ, где window.dataLayer заполняется до / над тегом сценария удаленного кода

.
<script>
  dataLayer = [{
    'pageCategory': 'signup',
    'visitorType': 'high-value'
  }];
</script>
<!-- Google Tag Manager -->
...
<!-- End Google Tag Manager -->

Почему разница?

Код Google Analytics кажется особенно странным, поскольку кажется, что логика связана с атрибутом async в удаленном скрипте, что означает, что он может выполняться до или после заполнения dataLayer. Почему бы просто не заполнить dataLayer так же, как для диспетчера тегов?

1 Ответ

2 голосов
/ 11 июля 2019

Во втором примере показано, как заполнить dataLayer перед загрузкой GTM.

В первом примере предполагается, что вы начнете с пустого массива dataLayer.Эта строка window.dataLayer = window.dataLayer || []; проверяет, заполнили ли вы уже dataLayer и использует ли она в этом случае.

После загрузки GTM вы можете добавить больше событий с помощью dataLayer.push({...})

...