Google Tag Manager: керування тегами без правок коду
Налаштування Google Tag Manager — це коректний сніпет у шаблоні, перенесення лічильників із коду сайту в контейнер і рівень даних, з якого теги беруть суму замовлення, а не текст кнопки. Впровадити диспетчер тегів на сайт варто заради одного: наступну подію маркетолог додає без релізу, а помилкову публікацію відкочує за секунди. Починаємо з опису того, що вже на сторінках: у 33 виміряних нами сайтах ідентифікатор контейнера читається на 13, шість не мають жодного лічильника, а в одному контейнер не вантажиться через рядок у власному сніпеті.
сніпет, перенесення лічильників, рівень даних, чистка мертвих тегів
після безкоштовного аудиту
Вартість
30
Гарантія
днів після підписання акта
сніпет, перенесення лічильників, рівень даних, чистка мертвих тегів
Що робимо
3–12
Строк
робочих днів; чистий проєкт ближче до нижньої межі
безкоштовно, 2–3 робочих дні, документ лишається у вас
Перевірка контейнера
ідентифікатор читається на 13 із 33 сайтів, вимір 31.07.2026
Контейнери у нашій вибірці
мертвий лічильник поруч із живим: дані наче є, але рахують не те
Найдорожча помилка
дистанційно, робоча область, публікація версіями з описом змін
Формат
Як проходить робота
Прозорі етапи з погодженням на кожному кроці
Загальний строк:3–12 днів
1
Опис поточного стану
1–2 робочих дні
Дивимось, що віддає HTML, які лічильники стоять у коді сайту, що лежить у контейнері й хто має права. На виході документ: потрібне, сумнівне, мертве.
2
План вимірювання
1 робочий день
Перелік подій, які для вас є грошима, з параметрами до кожної. Спершу домовляємось, що вважати заявкою, потім робимо тег. У зворотному порядку виходить лічильник, який рахує не те.
3
Рівень даних на боці сайту
0–4 робочих дні
Пишемо технічне завдання розробнику: що і в якому форматі сайт кладе в структуру на кожній події. Етап випадає, якщо рівень даних уже є, і розтягується, якщо чекаут нестандартний.
4
Збірка в робочій області
1–3 робочих дні
Теги, тригери, змінні, назви за єдиною схемою. Перенос лічильників із коду сайту робимо парою: спершу тег у контейнері, потім видалення з шаблону — інакше день-два все рахується двічі.
5
Перевірка й публікація
1 робочий день
Режим попереднього перегляду по кожній події, налагодження в GA4, перевірка порядку завантаження з банером згоди. Публікуємо версією з описом змін, щоб було куди відкотитись.
6
Звірка через місяць
кілька годин через 3–4 тижні
Порівнюємо кількість замовлень у звіті з обліковою системою й пояснюємо розбіжність: блокувальники, відмова від згоди, повернення. Без цього кроку «усе працює» означає лише «нічого не падає з помилкою».
Технології та інтеграції
На чому будуємо і з чим це з’єднується
Стек
Google Tag Manager — теги живуть окремо від релізів. Межа: він доставляє скрипти, а не збирає дані сам.
Рівень даних — джерело значень для тегів. Межа: наповнює його сайт, тобто без розробника не обійтись.
Тригери й змінні — умови спрацювання. Межа: тригер за класом кнопки живе до першого редизайну.
Режим попереднього перегляду — перевірка до публікації. Межа: показує спрацювання, а не правильність цифри.
Версії контейнера — відкат за секунди. Межа: відкат не повертає дані за час помилки.
GA4 — приймач подій за замовчуванням. Межа: показує тенденцію, звіряти з касою доводиться руками.
Meta Pixel — те саме для реклами в соцмережах. Межа: частину подій ріжуть блокувальники.
Серверний контейнер — окрема інфраструктура. Межа: потрібен не всім, і ми скажемо, коли він зайвий.
Інтеграції
GA4
Google Ads
Meta Pixel
колтрекінг
чат-віджети
банер згоди
Що входить
Повний перелік робіт і того, що ви отримуєте на виході
Сніпет у розмітці всіх типів сторінок — головна, категорія, картка, чекаут, подяка: контейнер вантажиться скрізь, а не там, де його колись поставили.
Лічильники з коду сайту переїжджають у контейнер — далі їх можна вимикати й міняти без правки шаблонів.
Рівень даних для подій, які не можна ловити за версткою: сума, валюта, ідентифікатор товару приходять із бекенда.
Теги, тригери й змінні під ваші події — покупка, заявка, дзвінок, крок чекауту, запит ціни.
Мертві теги систем, якими не користуються, вимикаються з фіксацією: що саме вимкнули, коли й на чию вимогу.
Єдина схема назв: із назви видно систему, тип події й сторінку, тому наступна людина не боїться нічого чіпати.
Права доступу переглянуто: публікувати може названий перелік людей, решта працює в робочій області.
Публікація версіями з описом змін — повернення до попереднього стану займає секунди.
Перевірка режимом попереднього перегляду й у налагодженні GA4 до публікації, а не після скарг на цифри.
Документ на дві сторінки: що є в контейнері, навіщо кожен тег і кого питати, якщо щось зламалось.
Гарантія 30 календарних днів на виконані роботи.
Коли ця послуга не підходить
Що не входить у роботу — щоб не було сюрпризів на здачі
Серверна логіка сайту, з якої береться рівень даних, — окремий кошторис і окремі люди
Ведення рекламних кампаній
Юридична частина згоди на збір даних: текст політики й формулювання банера — зона вашого юриста
Оптимізація швидкості сайту загалом — суміжна послуга
Підтримка чужих скриптів, походження яких ніхто не може пояснити
Кому підходить
Ситуації, у яких ця послуга дає результат
Ситуація 1 з 5
Кожна нова подія впирається в чергу розробника
Маркетолог просить відстежити натискання на «Замовити дзвінок», задача лягає в спринт, реліз через два тижні. За цей час кампанію вже запустили й вимкнули. Контейнер прибирає з ланцюжка викладку коду: подія збирається, перевіряється в режимі попереднього перегляду й публікується того ж дня.
Розберемо вашу ситуацію на безкоштовному аудиті
Ситуація 2 з 5
Контейнер дістався у спадок, і що в ньому — невідомо
Два підрядники, три роки, теги без назв і люди з правами публікації, які давно пішли. Розбір починаємо з опису: що є, що спрацьовує, що не спрацювало жодного разу. У виміряній нами клініці справа виявилась гіршою за безлад — сніпет самоблокувався, контейнер не вантажився.
Ситуація 3 з 5
Реклама витрачає бюджет, а конверсії йдуть приблизно
Без коректних подій рекламній системі нема на чому вчитись: вона оптимізує на те, що ви передали, а передали ви кліки по кнопці. Чесна межа: лічильник сам нічого не покращує, він лише дає можливість побачити. Читати дані й ухвалювати рішення доведеться людям, а GA4 показує тенденцію, а не касу.
Ситуація 4 з 5
Магазину потрібна електронна торгівля з реальними цифрами
Ідентифікатор товару, ціна, кількість, крок чекауту мають приходити з бекенда, а не збиратись із тексту сторінки. В оптовому магазині будматеріалів рівень даних зроблено настільки коректно, що каталог ми порахували ззовні по ньому: 3 145 ідентифікаторів.
Ситуація 5 з 5
Сайт послуг чи клініка: конверсія — дзвінок і форма
Тут подій мало, зате кожна коштує дорого. Тег, прив'язаний до класу кнопки, переживе рівно один редизайн, і мовчки. Плюс режим згоди: якщо банер стоїть, частина відвідувачів у статистику не потрапляє за визначенням, і цю різницю треба розуміти заздалегідь.
Контейнер проти тегів, вшитих прямо в код сайту
Чим цей варіант відрізняється від «Теги в коді сайту»
Теги в коді сайтуНаш підхід
Додати нову подіюзадача розробнику, реліз, викладка: ваш темп задає чужий календарправка в контейнері й публікація версії — та сама година
Відкотити помилкугарячий фікс або відкат релізу цілкомпопередня версія повертається за секунди
Хто може мінятитой, у кого є доступ до репозиторіюмаркетолог у робочій області; публікує названий перелік людей
Ризик зламати сайтнижчий, бо зміна проходить рев'ю, але й повільнішийвищий: довільний скрипт тегом виконується на всіх сторінках — тому робоча область і розділені права
Що видно через рікрядки в шаблоні, які ніхто не наважується прибратиперелік тегів із назвами й історією публікацій
Вплив на швидкістькожен скрипт доводиться шукати по файлах темивидно, скільки скриптів вантажиться, і є де вимкнути
Безкоштовна перевірка контейнера й тегів на сайті
Диспетчер тегів або спрощує життя, або перетворюється на звалище скриптів, які ніхто не наважується вимкнути. Перевірка показує, у якому ви стані й що можна прибрати без ризику.
Що міряємо
Чи вантажиться контейнер узагаліНа одному з виміряних нами сайтів інлайновий сніпет самоблокувався: змінна GTM_ID мала значення G-XCE3BLJBSP, а умова виходу перевіряла рівність цьому ж значенню, тому return спрацьовував завжди. Плюс у полі стояв ідентифікатор GA4 замість ідентифікатора контейнера.
Скільки тегів у контейнері й скільки з них живіУспадковані контейнери зазвичай містять теги систем, якими давно не користуються. Кожен із них — це затримка завантаження.
Чи є рівень данихБез нього теги чіпляються за класи й тексти кнопок, і будь-який редизайн ламає вимірювання мовчки.
Дублювання й мертві лічильникиКласика — один лічильник стоїть і в коді сайту, і в контейнері. Друга класика — Universal Analytics, вимкнений 1 липня 2023 року, який досі висить у розмітці й створює враження, що аналітика працює.
Вплив на швидкістьДивимось, скільки сторонніх скриптів завантажується через контейнер і як це відображається на часі до інтерактивності.
Хто має доступУ контейнерах, які вели кілька підрядників, часто лишаються активні права людей, які давно не працюють над проєктом.
Що ви отримуєте на руки
Перелік тегів із поділом на потрібні, сумнівні й ті, які можна вимкнути.
Опис поточного способу відстеження подій і його вразливих місць.
Оцінку впливу контейнера на швидкість сторінки.
Розмову на 30 хвилин по документу.
Строк: 2–3 робочих дні
Чому це безкоштовно
Бо перевірка контейнера — це кілька годин роботи, а результат часто рятує від дублювання даних, яке місяцями псує всі звіти.
Що далі
Даємо кошторис на впорядкування контейнера, впровадження рівня даних і перенесення тегів із коду сайту.
Форма коротка: контакт і адреса сайту
Не знайшли свій випадок?
Опишіть, як це влаштовано у вас, — відповімо, чи підходить «Google Tag Manager» і що це означає у вашій ситуації. Без брифу й без дзвінка: одне питання, одна відповідь.
Працюємо офіційно
Договір, акт і рахунок — на кожен проєкт, а не тільки на великий. Без документів у вас немає ні прав на роботу, ні підстави провести витрати.
Договір, акт і гарантія 30 днів
На кожен проєкт письмовий договір: обсяг, строки, сума, порядок приймання. Після здачі — акт і рахунок, а далі 30 календарних днів гарантії: помилки з нашої вини усуваємо безоплатно. Усне з дзвінка дублюємо письмово того ж дня — домовленість, якої немає в тексті, не рахується.
ФОП і безготівковий розрахунок
Виконавець — зареєстрований ФОП. Оплата на рахунок із закривними документами, які бухгалтерія проведе як витрати. Курс для гривневої оплати фіксується договором, а не з’ясовується постфактум.
Права й доступи — ваші
Код, дизайн і матеріали переходять до вас після повної оплати. Домен, хостинг, репозиторій, аналітику й рекламні кабінети оформлюємо на вас — щоб сайт не залежав від підрядника. NDA підписуємо на запит, після завершення свої доступи видаляємо самі.
Портал клієнта замість переписки
На час роботи ви отримуєте доступ до порталу: договори, рахунки, акти й стан проєкту в одному місці. Документи формуються з даних угоди, тому реквізити й суми в них не розходяться, а про оплати й дедлайни нагадує система, а не пам’ять менеджера.
Замовники з Європи
Серед робіт — проєкти для Норвегії, Болгарії та Іспанії: болгарський магазин трьома мовами з кур’єрською доставкою, іспанський з оплатою карткою й переказом, норвезький сайт клініки. Це видно в портфоліо, а не тільки в описі.
Цифри, які можна перевірити
Кожен кейс у портфоліо — з посиланням на живий сайт і технічним виміром: швидкість відповіді, вага сторінки, обсяг каталогу, знайдені дефекти. Ці цифри можна зняти самому й звірити з нашими.
Спершу аудит, потім сума
Прайсу на сайті немає навмисно: обсяг тієї самої роботи у двох клієнтів відрізняється в рази, і цифра «від» нічого не пояснює. Спершу безкоштовний розбір — рахуємо ваші сторінки, дублі й швидкість, — потім називаємо суму й строк і фіксуємо їх у договорі.
Кажемо «ні», коли не впевнені
Якщо задача не наша, строк нереальний або послуга вам просто не потрібна — скажемо це першим листом, а не після передоплати. Гарантій позицій у пошуку не даємо: їх не дає ніхто, а обіцянка без механізму — це продаж, а не робота.
NDA підписуємо на запит. Після завершення співпраці наші доступи до ваших сервісів видаляємо самі й повідомляємо про це.
Що впливає на вартість
Чому дві однакові на вигляд задачі рахуються по-різному — і що саме ми міряємо на аудиті
Стан контейнера на стартіПорожній контейнер на чистому сайті — це збірка з нуля за зрозумілим планом. Успадкований контейнер із десятками тегів без назв спершу треба описати, і саме опис займає більшу частину часу, а не налаштування.
Чи існує рівень данихЯкщо сайт уже кладе дані про товар і замовлення у структуру, теги збираються швидко. Якщо ні, з'являється робота на боці сайту, а це чужі руки, чужий спринт і залежність від того, як швидко відповідає ваш розробник.
Скільки систем лишається на сторінкахКожна система — це свій формат подій і своя перевірка. Дві-три закриваються за день. Набір із рекламних кабінетів, колтрекінгу, чату й банера згоди перевіряється по черзі, бо вони конфліктують саме на порядку завантаження.
Платформа й шаблонКоробкові магазини на OpenCart чи WooCommerce мають готові місця для сніпета. Односторінковий застосунок, де переходи не перезавантажують документ, вимагає окремої логіки перегляду сторінки.
Режим згоди й обмеження зборуБанер згоди міняє те, коли й що взагалі можна відправляти. У виміряній клініці режим згоди стояв коректно, з default denied, і частина даних не збиралась за задумом, а не через помилку.
Звірка з обліковою системоюНайдовший, але найкорисніший пункт: тег може спрацьовувати ідеально й рахувати не те. Звірка потребує людини з вашого боку й місяця даних — тому вона стоїть окремим етапом, а не всередині налаштування.
Кейси
Задачі та результат у цифрах — усі показники зняті нашим виміром
приватна клініка пластичної хірургії та естетичної медицини — наш зовнішній технічний вимір
Задача
Зрозуміти, чому в аналітиці порожньо, хоча на сайті стоїть і контейнер, і режим згоди.
Рішення
Розбір інлайнового сніпета рядок за рядком і звірка ідентифікаторів із тим, що вони насправді означають.
Результат
Контейнер не вантажився взагалі. У сніпеті змінна GTM_ID мала значення G-XCE3BLJBSP, а умова виходу перевіряла рівність GTM_ID цьому ж значенню — return спрацьовував на кожному завантаженні. Другий шар: G-… це ідентифікатор GA4, а не контейнера. Поруч коректно стояв Consent Mode v2 із default denied: вимірювання мертве через один рядок. Вимір 31.07.2026.
B2B-каталог запчастин для промислових швейних машин — наш зовнішній технічний вимір
Задача
Перевірити, чи працює вимірювання там, де замовлення йде через форму запиту наявності.
Рішення
Перевірка розмітки на всі відомі лічильники й звірка з тим, які системи ще живі.
Результат
Контейнер GTM-K2MV6P2 на місці, але поруч у розмітці досі виконується gtag('config','UA-133384797-1') — Universal Analytics, вимкнена Google 1 липня 2023 року. Властивості GA4 немає жодної. Три роки сайт має вигляд сайту з аналітикою й не збирає нічого: 1 848 карток товару і 138 категорій без єдиної цифри по трафіку. Вимір 31.07.2026.
бренд натуральних спецій із власним інтернет-магазином — наш зовнішній технічний вимір
Задача
Порахувати, скільки систем вимірювання працює одночасно і що з них потрібне.
Рішення
Розбір усіх лічильників у розмітці зі звіркою, які з них ще підтримуються.
Результат
Три системи разом: живий GA4 G-0NCJXVMDZ0, мертва Universal Analytics UA-35435275-2 і Yandex.Metrika 72635620 — останнє для українського сайту в 2026 році вже не питання зайвого скрипта. Контейнер GTM-N8SVJ42 при цьому був: прибрати зайве можна було без правки коду. Вимір 31.07.2026.
оптовий магазин будівельних матеріалів, B2B — наш зовнішній технічний вимір
Задача
Оцінити, наскільки глибоко налаштоване вимірювання на оптовому каталозі.
Рішення
Розбір контейнера й подій, які сайт кладе в рівень даних, плюс підрахунок каталогу штатним пошуком.
Результат
GTM-KLKK299, GA4 G-DR6CCN9R5B і ремаркетинг Google Ads AW-10933820071 з подією view_item_list та параметром google_business_vertical=retail. Рівень даних працює настільки коректно, що каталог ми порахували з нього: 3 145 унікальних ідентифікаторів товарів, без доступу до адмінки. Вимір 31.07.2026.
Що потрібно від вас
Без цього не почнемо — краще підготувати заздалегідь
1Доступ до шаблонів сайту або людину, яка може поставити сніпет у розмітку всіх типів сторінок.
2Права публікації в наявному контейнері. «Перегляд» не підходить: працювати буде нічим.
3Перелік систем, які лишаються, і тих, від яких ви відмовились — без нього ми не вимикаємо нічого.
4Контакт розробника, якщо рівень даних доведеться робити на боці сайту.
5Перелік подій, які для вас є грошима: покупка, заявка, дзвінок, запит ціни.
6Людину з вашого боку, яка через місяць звірить цифри звіту з обліковою системою.
Якщо чогось із цього немає — скажіть, підкажемо, як зібрати або зробимо самі окремою задачею.
Часті питання
Те, що питають найчастіше — з конкретними відповідями
навіщо диспетчер тегів, якщо код можна вставити прямо в сайт?
Щоб міняти вимірювання без релізу. Кожна нова подія в прямому коді — це задача розробнику, узгодження й викладка; у контейнері це двадцять хвилин і публікація версії, яку можна відкотити. Виняток чесно назвемо самі: якщо на сайті дві події, які не змінюються роками, прямий код теж робочий варіант, і городити контейнер заради нього ми не будемо.
у нас контейнер від попереднього підрядника і ніхто не знає, що там. Розбирати чи робити новий?
Здебільшого розбирати. Новий контейнер означає новий сніпет на всіх сторінках і ризик втратити те, що працювало непомітно. Ми починаємо з опису наявного, вимикаємо очевидно мертве, решту переносимо на нормальні назви й тригери. Наша рекомендація з практики: тег, у якому сумніваєтесь, не видаляйте — поставте паузу на два тижні. Видалення не лишає сліду, а пауза показує, хто прийде скаржитись, і дає повернути все одним кліком.
що таке рівень даних і чому без нього ламається вимірювання?
Це структура, куди сайт сам кладе інформацію про подію: ідентифікатор товару, суму, категорію, крок чекауту. Без неї теги ловлять кліки за класами й текстами кнопок, і при першому редизайні все зупиняється мовчки, без жодної помилки в консолі. Наскільки коректний рівень даних видно ззовні: в оптовому магазині будматеріалів ми порахували каталог у 3 145 позицій прямо з переданих даних переглядів списку, не заходячи в адмінку.
контейнер уповільнює сайт?
Сам по собі майже ні, а от те, що в нього накладено, — цілком. Успадковані контейнери роками носять теги систем, якими не користуються, і кожен тягне свій скрипт. Ми міряємо це під час перевірки й показуємо, що знімається без наслідків. Окремо: якщо сторінка повільна через важкі зображення й запити до бази, чистка контейнера цього не виправить — це інша робота й інший кошторис.
чи можна зламати сайт через контейнер?
Можна, і це аргумент за акуратність, а не проти інструменту. Довільний скрипт, вставлений тегом, виконується на всіх сторінках із правами сторінки. Тому працюємо через робочу область і режим попереднього перегляду, публікуємо версіями з описом і не роздаємо права публікації всім, хто попросив. Повернення до попередньої версії займає секунди — за умови, що структура прав нормальна.
у нас сайт на React, сторінки не перезавантажуються. Тут GTM працює?
Працює, але за замовчуванням порахує один перегляд на весь візит: подія завантаження документа спрацьовує рівно раз. Потрібен тригер на зміну історії браузера або власна подія, яку застосунок кладе в рівень даних на кожному переході. Ту саму логіку доводиться закладати й для форм, які відправляються без перезавантаження. Виміряна нами клініка — саме такий випадок: браузеру віддається оболонка на 3 КБ, а весь вміст збирається на клієнті.
серверний контейнер нам потрібен?
Не всім. Він виправданий, коли важлива якість даних попри блокувальники, коли потрібні серверні події для рекламних систем або коли треба зменшити кількість сторонніх скриптів у браузері. Це окрема інфраструктура з власним утриманням і власними точками відмови. Для більшості сайтів звичайного контейнера вистачає, і нав'язувати серверний ми не будемо.
як зрозуміти, що теги рахують правильно, а не просто спрацьовують?
Спрацювання перевіряється режимом попереднього перегляду за годину. Правильність — тільки звіркою з обліковою системою через місяць, і про неї домовляємось на старті. Різниця між звітом і касою буде завжди: блокувальники, відмова від згоди, повернення й скасування. Завдання не в тому, щоб цифри збіглися до копійки, а в тому, щоб ви знали розмір розбіжності й її причину.
у нас уже стоїть аналітика — навіщо щось чіпати?
Стоїть і збирає — різні речі. У виміряному B2B-каталозі запчастин контейнер був на місці, а поруч у коді виконувався конфіг Universal Analytics, вимкненої 1 липня 2023 року, без жодної властивості GA4: три роки нуль даних при повністю робочому вигляді. У магазині спецій поруч жили живий GA4, мертва Universal Analytics і Yandex.Metrika. Перевірка займає два-три дні й нічого не коштує — з неї й почніть.
Дайте доступ до контейнера на читання — подивимось, що в ньому насправді.
У відповідь надішлемо перелік тегів із поділом на потрібні, сумнівні й мертві, опис того, як зараз ловляться події, і оцінку впливу на швидкість. Документ ваш, навіть якщо працювати далі будемо не ми.
Прайса на сайті немає навмисно: обсяг тієї самої роботи у двох клієнтів відрізняється в рази, і цифра «від» у такому разі нічого не пояснює. Спершу безкоштовний аудит — рахуємо ваші сторінки, дублі й швидкість, — потім називаємо суму й строк і фіксуємо їх у договорі.