Запретить gtag / глобальному тегу сайта отслеживать начальную загрузку страницы

#google-analytics #gtag.js

#google-analytics #gtag.js

Вопрос:

У нас есть одностраничное приложение, использующее Gtag (глобальный тег сайта), и мы управляем отслеживанием страниц вручную, чтобы указать правильные названия страниц, которые мы хотим отслеживать. Поэтому мы вызываем

 gtag('config', gaPropertyId, gtagPageConfig)
  

каждый раз, когда происходит изменение маршрута.

Это означает, что мы не хотим, чтобы gtag отслеживал страницы для нас автоматически, поскольку в настоящее время мы отслеживаем все начальные страницы дважды. Первый раз, когда gtag автоматически запускает отслеживание страницы, отправляя заголовок браузера и URL-адрес, а второй раз, когда мы запускаем просмотр страницы из нашего кода, чтобы предоставить заголовок для той страницы, которую мы хотим видеть в Google Analytics.

После долгих исследований и отладки я сузил область поиска до экрана настроек, где установлен флажок «Загрузка страницы», и его нельзя отключить, смотрите Это изображение:

Невозможно предотвратить загрузку страницы

Мы загружаем наш скрипт следующим образом:

 <script async src="https://www.googletagmanager.com/gtag/js?id=UA-xxx-1"></script>
<script>
    window.dataLayer = window.dataLayer || [];
    function gtag(){dataLayer.push(arguments);}
    gtag('js', new Date());
    gtag('config', 'G-xxx', { 'send_page_view': false });
</script>
  

Когда я удаляю строку gtag('js', new Date()); , она больше не отслеживает страницу, но это, вероятно, приведет к некоторому нежелательному поведению.

Есть ли у нас способ предотвратить отслеживание начальной загрузки страницы? Я искал везде, но не могу найти решение.

Ответ №1:

Просто вам не следует включать эти поля на страницах, которые вы не хотите отправлять в Google:

 gtag('js', new Date());
gtag('config', 'G-xxx');
  

Ваш фрагмент должен выглядеть следующим образом без даты и конфигурации:

 <script async src="https://www.googletagmanager.com/gtag/js?id=G-xxx"></script>
<script>window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}
  

Отправка данных

SPA (т.е. Vue, React и т.д.)

Если вы используете SPA (т.Е. Vue, React), вы можете запустить gtag функцию после обновления маршрута:

 gtag('js', new Date());
gtag('config', 'G-xxx', { page: path: route.path, page_title: route.meta.title })
  

PHP

Вы можете отображать дату и конфигурацию условно:

 <?php if (/* suits my needs*/): ?>
  gtag('js', new Date());
  gtag('config', 'G-xxx');
<?php endif; ?>
  

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

1. Спасибо, это именно то, что мы в итоге сделали, с некоторой условной логикой, которую можно выполнить только gtag('js', new Date()); один раз

Ответ №2:

В документации говорится об измерении просмотров страниц:

Чтобы отключить просмотр страницы по умолчанию, установите параметру send_page_view значение false в gtag.js фрагмент.

 gtag('config', 'GA_MEASUREMENT_ID', {
  send_page_view: false
});
  

https://developers.google.com/analytics/devguides/collection/gtagjs/pages

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

1. Спасибо, я в курсе, у меня это тоже есть в моем коде выше, но, похоже, это не работает. Когда я удаляю gtag('js', new Date()); , это не запускает просмотр страницы, но когда я возвращаю его обратно, это происходит. Очень запутанно