Как установить веб-аналитику без Google Tag Manager
Прямой тег скрипта против GTM: когда менеджер тегов не нужен, как добавить аналитику одной строкой и чего вы лишитесь без GTM.
Большинство руководств предлагают устанавливать веб-аналитику через Google Tag Manager. Но GTM — загрузчик скриптов весом 35 КБ, который сам требует баннера согласия в ЕС: он подгружает сторонние скрипты, способные ставить cookie. Для аналитики без cookie менеджер тегов нужен далеко не всегда.
Что на самом деле делает GTM
Google Tag Manager — контейнер: он загружает другие скрипты по настроенным правилам. Полезен, когда у вас пять маркетинговых инструментов, A/B-тесты, чат-виджеты и уровень данных — потому что GTM позволяет управлять ими без разработчика при каждом изменении.
Но если вы устанавливаете один скрипт аналитики без cookie, GTM добавляет сложность без пользы:
- Лишняя нагрузка. Контейнер GTM — ~35 КБ. Потом он подгружает ваш скрипт. Два запроса вместо одного.
- Усложнение согласия. GTM сам классифицируется как сторонний инструмент. В ЕС даже его загрузка может требовать согласия пользователя — в зависимости от того, какие теги срабатывают до получения согласия.
- Уровни отладки. Когда что-то ломается — это ваш тег, триггер или сам GTM?
Прямая установка: один тег скрипта
Аналитика без cookie, например Gauss, устанавливается одной строкой в <head>:
<script defer src="https://cdn.gausslab.io/g.js" data-site-id="ВАШ_ID_САЙТА"></script>Вот и всё. Никакого уровня данных, настройки триггеров, аккаунта GTM. Скрипт небольшой (~4 КБ), загружается с defer, чтобы не блокировать рендеринг, и автоматически отслеживает просмотры страниц.
Когда GTM всё же нужен
GTM имеет смысл, когда:
- У вас несколько маркетинговых инструментов (Meta Pixel, Google Ads, Intercom и т. д.), которые должны срабатывать по сложным правилам.
- Маркетинговая команда обновляет теги без доступа к разработчику.
- Нужна платформа управления согласием (CMP), контролирующая, какие теги срабатывают.
Если это про вас — можно всё равно использовать Gauss внутри GTM через Custom HTML тег. Но придётся управлять логикой согласия и для самого GTM.
WordPress, Shopify, Webflow
WordPress: добавьте скрипт в header.php вашей темы или используйте плагин «Insert Headers and Footers». Избегайте специализированных аналитических плагинов — они нередко добавляют свой трекинг или лишний JavaScript.
Shopify: Online Store → Themes → Edit code → theme.liquid. Добавьте скрипт перед </head>.
Webflow: Project Settings → Custom Code → Head Code. Вставьте тег скрипта туда.
Next.js / React: используйте <Script strategy="afterInteractive"> из next/script или добавьте в корневой layout:
<Script
src="https://cdn.gausslab.io/g.js"
data-site-id="ВАШ_ID_САЙТА"
strategy="afterInteractive"
/>Одностраничные приложения
Для SPA (React, Vue, Svelte) скрипт автоматически обнаруживает клиентскую навигацию, если приложение использует History API (pushState). Большинство современных роутеров используют именно его, поэтому просмотры страниц фиксируются при смене маршрута без дополнительного кода.
Если роутер использует хеш-навигацию или нестандартно меняет history.state, отправляйте просмотры вручную:
gauss('pageview', { url: location.pathname });Что сломается при удалении GTM?
Если GTM — ваш единственный контейнер и вы заменяете его прямым скриптом аналитики, проверьте два момента.
Другие теги. Если GTM запускает Facebook Pixel, LinkedIn Insight Tag и т. д. — им нужно новое место. Перенесите их в прямые теги в
<head>или оставьте отдельный GTM для маркетинга без аналитики.События уровня данных. Если вы отправляете события в
dataLayerдля GTM, замените их на API вашего инструмента аналитики. Для Gauss:gauss('event', 'purchase', { value: 99, currency: 'EUR' }).
Разница в скорости
GTM парсит контейнер — JSON-объект со всеми тегами и триггерами — и только потом решает, что загружать. На быстром соединении это миллисекунды, на мобильном 3G — уже ощутимо.
Google PageSpeed Insights сам помечает GTM в разделе «Уменьшить влияние сторонних скриптов», когда он загружается без async.
Прямой подход: один небольшой скрипт с defer, парсится один раз, без накладных расходов на логику контейнера.
Итог
GTM не нужен для установки аналитики без cookie. Один тег <script defer> быстрее, проще и избавляет от проблем с согласием в ЕС. Оставьте GTM для управления маркетинговыми инструментами — не для аналитики, которая ставится в одну строку.