Настройка gtag.js для Google Ads: установка и устранение ошибок 2026

Содержание
- Что изменилось в gtag.js для Google Ads в 2026
- gtag.js против Google Tag Manager — ключевые отличия
- Установка gtag.js: пошаговая инструкция
- Consent Mode v2 — обязателен для EU/EEA
- Проверка: правильно ли срабатывает тег
- Типичные ошибки и их решения
- Настройка для SPA (React, Vue, Angular)
- Быстрый старт: чеклист
- Что читать дальше
Коротко:
gtag.js— прямая JavaScript-библиотека Google для отправки конверсионных событий без дополнительного контейнера. Работает быстрее, чем через Google Tag Manager, и остаётся полностью в коде сайта. Неверная настройка убивает данные о конверсиях и лишает Smart Bidding сигналов. Для кампаний на аккаунтах Google Ads точный gtag.js — важнейший технический шаг.
| ✅ Подходит если | ❌ Не подходит если |
|---|---|
| Есть прямой доступ к коду сайта | Ты маркетолог без технических навыков |
| Нужна минимальная задержка тегов | GTM уже развёрнут на всём сайте |
| Один домен, простая структура | Управляешь 20+ сайтами централизованно |
| Хочешь отлаживать через Tag Assistant | Нужен server-side tagging (использй sGTM) |
Важное уточнение: Этот гайд про gtag.js — глобальный тег Google, который грузится через <script> прямо в HTML. Это не Google Tag Manager (GTM) — это отдельная система контейнеров. Обе технологии используют функцию gtag() внутри, но механизм загрузки, отладка и сценарии использования у них принципиально разные.
Что изменилось в gtag.js для Google Ads в 2026
| Функция | До 2025 | 2026 |
|---|---|---|
| Загрузка тега | Только gtag.js | Объединён в Google Tag (gtag.js IS Google Tag) |
| Enhanced Conversions | Опционально | По умолчанию для новых целей конверсии |
| Tag Assistant | Расширение Chrome | Встроен в Chrome DevTools → панель Tag Assistant |
| Consent Mode v2 | Опционально | Обязателен для EU/EEA (GDPR) |
| Авто-события | Ручные | send_page_view автоматически срабатывает при SPA |
- Консолидация Google Tag: Сниппет
gtag.jsтеперь универсальный загрузчик для всех продуктов Google (Ads, Analytics, Merchant Center) — один сниппет покрывает всё - Consent Mode v2 обязателен для EU-рекламодателей — без
gtag('consent', 'default', {...})перед срабатыванием тега = нулевые данные о конверсиях от EU-пользователей - Enhanced Conversions включён по умолчанию в новых аккаунтах Google Ads с 2026 — объект
user_dataтеперь часть стандартного конверсионного события
gtag.js против Google Tag Manager — ключевые отличия
| Параметр | gtag.js | Google Tag Manager |
|---|---|---|
| Внедрение | Тег script в <head> | Контейнерный сниппет GTM |
| Кто управляет | Разработчик | Маркетолог |
| Задержка тега | ~50 мс | ~80-150 мс (загрузка контейнера) |
| Отладка | Tag Assistant + консоль | Режим предпросмотра GTM |
| Версионирование | Git (код) | GTM Workspaces |
| Server-side | Нет (нужен sGTM) | Да (через sGTM) |
| Лучше для | Прямой контроль, производительность | Много тегов, без разработчика |
Установка gtag.js: пошаговая инструкция
Шаг 1: Получи ID тега Google
В Google Ads: Инструменты → Менеджер данных → Подключённые продукты → Google Tag. ID тега начинается с AW-, затем номер аккаунта. Формат: AW-123456789.
Шаг 2: Добавь сниппет на каждую страницу
Вставь в раздел <head> каждой страницы, до всех остальных скриптов:
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=AW-XXXXXXXXX"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'AW-XXXXXXXXX');
</script> Замени AW-XXXXXXXXX на свой реальный ID. Атрибут async гарантирует что тег не блокирует рендеринг страницы — критично для Core Web Vitals.
Читайте также: Enhanced Conversions Google Ads: настройка, хеширование, польза в 2026
⚠️ Важно: Если сайт использует заголовок Content Security Policy (CSP), добавь
https://www.googletagmanager.comиhttps://www.google-analytics.comв директивыscript-srcиconnect-src. Блокировка этих доменов беззвучно ломает тег — никаких ошибок в интерфейсе, только пропавшие данные о конверсиях.
Шаг 3: Добавь событие конверсии
Для каждой цели конверсии (клик по кнопке, отправка формы, покупка) — отдельное событие. Конверсионный лейбл смотри в Цели → Конверсии → твоя цель → Настройка тега → Использовать Google Tag напрямую:
<script>
gtag('event', 'conversion', {
'send_to': 'AW-XXXXXXXXX/YYYYYYYYYYYY',
'value': 1.0,
'currency': 'RUB',
'transaction_id': ''
});
</script> Для Enhanced Conversions добавь объект user_data:
gtag('event', 'conversion', {
'send_to': 'AW-XXXXXXXXX/YYYYYYYYYYYY',
'value': 5000.00,
'currency': 'RUB',
'user_data': {
'email_address': sha256(userEmail), // хешировать
'phone_number': sha256(userPhone) // хешировать, формат E.164
}
}); Google хеширует данные автоматически если ты передаёшь их в открытом виде в объект user_data — но серверное SHA-256 хеширование предпочтительно для соблюдения GDPR.
Запускаешь кампании с оптимизацией конверсий? Убедись что трекинг настроен на аккаунтах Google Ads — новые аккаунты без истории конверсий 4-6 недель накапливают сигналы до стабилизации Smart Bidding.
Consent Mode v2 — обязателен для EU/EEA
Добавь дефолты согласия до вызова gtag('config'):
gtag('consent', 'default', {
'ad_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied',
'analytics_storage': 'denied',
'wait_for_update': 500
}); После принятия согласия пользователем через CMP обновляй:
gtag('consent', 'update', {
'ad_storage': 'granted',
'ad_user_data': 'granted',
'ad_personalization': 'granted',
'analytics_storage': 'granted'
}); ⚠️ Важно: Без Consent Mode v2 политика EU User Consent Policy Google запрещает показ персонализированной рекламы пользователям из EU. Пропуск этого шага = потеря данных о конверсиях из ваших самых ценных рынков и отсутствие сигнала для Smart Bidding.
Читайте также: Настройка отслеживания конверсий Google Ads: GTM, улучшенные конверсии и полный гайд
Проверка: правильно ли срабатывает тег
Метод 1: Tag Assistant
Открой Chrome → перейди на нужную страницу → DevTools → вкладка Tag Assistant (или зайди на tagassistant.google.com). Тег показывает:
- Зелёная галка: тег срабатывает корректно
- Жёлтое предупреждение: срабатывает, но есть проблемы в конфигурации
- Красная ошибка: тег не срабатывает или заблокирован
Метод 2: Вкладка Network
DevTools → вкладка Network → фильтр по googletagmanager.com или doubleclick.net. После конверсионного события должен появиться запрос к https://googleads.g.doubleclick.net/pagead/viewthroughconversion/ со статусом 200.
Метод 3: dataLayer в консоли
console.log(window.dataLayer); Каждый вызов gtag() пушит объект в этот массив. Проверь что твоё конверсионное событие появилось с нужными параметрами.
Читайте также: Как интегрировать трекер с Google Ads: пошаговый гайд для медиабайера
Кейс: E-commerce сайт, кампании Google Shopping + Search, $500/день бюджета. Проблема: Трекинг конверсий показывал 0 конверсий 2 недели, хотя продажи шли. Tag Assistant показывал «тег не найден». Действие: Исследование через вкладку Network —
gtag.jsбыл заблокирован Cloudflare Rocket Loader, который откладывал все скрипты. Сниппет<head>стоял после стороннего скрипта, который переопределялdataLayer. Результат: Отключили Rocket Loader для URL gtag.js, переместили сниппет в первый<script>в<head>. Конверсии начали фиксироваться через час. Smart Bidding вышел из режима «Обучение» за 12 дней при 67 атрибутированных конверсиях.
Типичные ошибки и их решения
Тег срабатывает, но конверсии показывают «Не подтверждено» Подожди 24-48 часов после первого срабатывания. Если после 48 ч статус не изменился: проверь что конверсионный лейбл в send_to точно совпадает с лейблом в Google Ads (регистр важен).
Двойной счёт конверсий (2x или 3x) Один и тот же пиксель срабатывает дважды — и при загрузке страницы, и в onClick-обработчике. Выбери один метод. Также проверь, не заходят ли пользователи на страницу спасибо повторно (кешированные редиректы могут перезапускать page-load события).
Конверсии есть в GA4, но нет в Google Ads Ты отправляешь события на G- (GA4 ID) вместо AW- (Ads ID). Это разные системы. Нужен отдельный вызов gtag('event', 'conversion', { 'send_to': 'AW-...' }).
Enhanced Conversions данные не появляются в отчётах Данные Enhanced Conversions появляются через 24-72 часа. Убедись что объект user_data заполнен — если поле email пустое (пользователь не авторизован), матчинг молча проваливается. Целевой процент заполненности email на конверсионных событиях — 60%+.
Кейс: Лидген лендинг, финансовая вертикаль, $150/день. Проблема: Тег корректно срабатывал по Tag Assistant, но Google Ads показывал на 40% меньше конверсий чем CRM. Подозрение на проблему с окном атрибуции. Действие: Включили Enhanced Conversions, передаём хешированный email из события отправки формы. Оказалось 35% лидов приходят из Safari (ITP блокирует GCLID-cookies). Enhanced Conversions поймал их через матчинг email. Результат: Атрибутированные конверсии выросли на 38%. CPL в отчётах упал с $94 до $68, совпав с данными CRM. tCPA Smart Bidding стабилизировался за 3 недели.
Настройка для SPA (React, Vue, Angular)
Для одностраничных приложений, где смена URL не вызывает полную перезагрузку страницы:
// Отключи авто page_view
gtag('config', 'AW-XXXXXXXXX', { send_page_view: false });
// Отправляй вручную при смене роута
history.pushState = (function(original) {
return function() {
original.apply(this, arguments);
gtag('event', 'page_view', {
'page_path': window.location.pathname
});
};
})(history.pushState); Это предотвращает задвоение page_view и обеспечивает корректный подсчёт конверсий.
Быстрый старт: чеклист
- [ ] Получить ID тега
AW-в Google Ads → Инструменты → Менеджер данных - [ ] Вставить сниппет gtag.js в
<head>до всех скриптов на каждой странице - [ ] Реализовать Consent Mode v2 дефолты до
gtag('config')(обязательно для EU) - [ ] Добавить конверсионное событие на страницу спасибо или в onClick-обработчик
- [ ] Передать
user_dataдля Enhanced Conversions (хешировать email + телефон) - [ ] Проверить: Tag Assistant показывает зелёный цвет на ключевых страницах
- [ ] Проверить: Network вкладка показывает запрос к doubleclick.net
- [ ] Проконтролировать: нет задвоений конверсий в отчётах через 48ч
- [ ] Для SPA: отключить авто page_view, настроить ручные события на роут-ченджах
Нужны чистые аккаунты для тестирования gtag.js настройки? Смотри аккаунты Google Ads — прогретые аккаунты позволяют пропустить очередь верификации и сразу начать накапливать данные атрибуции.































