Меню документації
Усунення несправностей
Розв'язання проблем із CookieHug: банер не з'являється, скрипти не блокуються, GTM, Debug Mode і запізнілі сигнали згоди.
Поширені запитання / усунення несправностей
Скрипти не блокуються
- Перевірте, чи
data-cookiehug-blockingmodeмає значення"auto"(або взагалі не заданий) - Скрипт може бути в білому списку (поширені бібліотеки на кшталт jQuery не блокуються)
- Для ручного керування використовуйте атрибути
data-cookiehug-consent
Google Tag Manager не отримує сигналів згоди
- Перевірте, що
data-cookiehug-consentmodeне має значення"disabled" - Перевірте, чи
gtagабоdataLayerдоступні на сторінці - Перевірте в консолі браузера:
dataLayerмає містити події згоди
Згода не зберігається між завантаженнями сторінки
- Перевірте, чи localStorage доступний і не заблокований
- Перевірте, чи cookie не очищаються налаштуваннями браузера
- Перевірте, чи згода не втратила чинність (типово 30 днів)
Як тестувати згоду, не очищаючи cookie щоразу?
Виконайте CookieHug.withdraw() у консолі браузера, щоб скинути стан згоди. Це видалить усі дані згоди, поверне Google Consent Mode до denied і автоматично перезавантажить сторінку, щоб раніше дозволені скрипти знову були коректно заблоковані.
Як перевірити стан згоди в консолі браузера?
// Повний стан згоди
console.log(window.CookieHug.consent);
// Чи користувач відповів?
console.log(window.CookieHug.hasResponse);
// Які норми застосовуються?
console.log(window.CookieHug.regulations);Debug Mode і діагностика
CookieHug має вбудований Debug Mode, який завчасно перевіряє, чи ваша команда default для Consent Mode (і можлива заглушка TCF) завантажується раніше за спрацювання ваших тегів Google. Він ніколи не впливає на банер чи згоду — це спостерігач, який повідомляє про хибні налаштування.
Увімкнути його можна трьома способами:
- додати
?cookiehug_debug=1до адреси сторінки, - виконати
localStorage.cookiehugDebug = '1'у консолі браузера, - або увімкнути Debug Mode на 24 години в панелі CookieHug (деталі домену → діагностика).
Коли він активний, унизу праворуч з'являється значок CookieHug debug (зелений = гаразд, бурштиновий = попередження, червоний = помилки). Натисніть на нього, щоб отримати повний звіт у консолі. Звіти також надходять до панелі й запускають завчасні сповіщення електронною поштою та банер у самій панелі.
Повідомлення налагодження
CHUG_ORDER_OK— конфігурація правильна: команда default виконалася раніше за ваші теги.CHUG_GA_BEFORE_SDK/CHUG_ORDER_LATE— тег Google спрацював зарано. Див. Що робити, коли тег запізнюється.CHUG_NO_DEFAULT_CONSENT— команду default не виявлено; теги могли виконатися без згоди.CHUG_TCF_STUB_PRESENT— виявлено заглушку TCF__tcfapi; переконайтеся, що вона завантажується раніше за ваші теги.
Що робити, коли тег запізнюється
Debug Mode позначає тег як запізнілий (CHUG_GA_BEFORE_SDK / CHUG_ORDER_LATE), коли скрипт Google (GA4, Google Ads, GTM) спрацьовує раніше, ніж CookieHug встановлює типовий стан згоди. Через це тег може працювати без сигналу Consent Mode.
Крок 1 — спершу перевірте, чи тег використовує Google Tag Gateway (GTG). Це важливо: з GTG тег Google віддається з вашого власного домену (first-party), тож час завантаження виглядає інакше й тег можуть помилково позначити як запізнілий.
Як перевірити, чи тег використовує GTG
- Відкрийте DevTools → Network і перезавантажте сторінку.
- Знайдіть запит, який завантажує тег Google (напр.
gtag/js,gtm.js,collect). - Подивіться на домен запиту: якщо тег завантажується з вашого власного домену (напр.
metrics.вашдомен.ua) замістьgoogletagmanager.com/google-analytics.com, він, найімовірніше, використовує GTG → прочитайте Google Tag Gateway (GTG).
Якщо тег НЕ використовує GTG — виправте порядок
Коли тег завантажується напряму з доменів Google, «запізнення» — це справжня проблема порядку. Розмістіть скрипт CookieHug першим у <head>, перед будь-яким gtag.js, gtm.js чи тегом GA4, потім перезавантажте сторінку з ?cookiehug_debug=1 і переконайтеся, що з'явився CHUG_ORDER_OK.
<head>
<!-- 1) спершу CookieHug -->
<script src="https://cookiehug.com/api/script/ВАШ-ЛІЦЕНЗІЙНИЙ-КЛЮЧ.js"></script>
<!-- 2) потім Google -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXX"></script>
</head>Google Tag Gateway (GTG)
Google Tag Gateway (GTG) — це спосіб віддавати теги Google (тег Google / GA4 / цілий контейнер GTM) з вашого власного домену (first-party) замість прямого завантаження з googletagmanager.com. Запити проходять через легкий шлюз у вашій інфраструктурі (CDN/сервер), що підвищує стійкість вимірювань у браузерах, які обмежують сторонні скрипти.
Вплив на згоду — прочитайте це першим. GTG часто вмикають через інтеграцію CDN одним кліком (наприклад, просто в Cloudflare). Ця зручність має ціну: CDN сам вставляє й виконує тег Google, тож клієнт часто втрачає контроль над порядком завантаження скриптів. Шлюз може виконати тег Google *до* того, як спрацює команда default вашого CMP — саме це й породжує «запізнілий» сигнал згоди в Debug Mode CookieHug. GTG змінює, *звідки й коли* завантажується тег, але тег і далі читає Consent Mode; складність у тому, щоб гарантувати виконання команди default першою.
Офіційна документація Google: Google tag gateway for advertisers · Get started guide · One-click CDN (Cloudflare) setup.
Як перевірити, чи тег підключено до GTG
- Відкрийте DevTools → Network і перезавантажте сторінку.
- Знайдіть запит, який завантажує тег Google (напр.
gtag/js,gtm.js,collect). - Подивіться на домен запиту: якщо він іде з вашого власного домену чи піддомену (напр.
metrics.вашдомен.ua) замістьgoogletagmanager.com/google-analytics.com, тег підключено до GTG. - Перевірте також у налаштуваннях Google Ads / GA4 → Google tag gateway, де перелічено підключені домени.
Чому GTG можуть помилково вважати запізнілим
Debug Mode у CookieHug порівнює час початку запитів Google з ініціалізацією SDK. З GTG тег завантажується з вашого домену й часто раніше або швидше, тож евристика може позначити його як запізнілий, хоча Consent Mode працює правильно. Завжди перевіряйте підключення до GTG, перш ніж вважати попередження реальною проблемою.
Запізнілий сигнал на тезі з GTG — рекомендоване рішення
Якщо Debug Mode повідомляє про запізнілий сигнал (`CHUG_ORDER_LATE`) і ви підтвердили, що тег підключено до GTG, порядок завантаження зазвичай визначає CDN, а не ви. Оберіть один із варіантів у порядку пріоритету:
- Рекомендовано — перейдіть на U+C (розширений Consent Mode). Для тегів із GTG U+C (розширений Consent Mode) є рекомендованим механізмом, бо він сумісний із ручним GTG: тег завжди завантажується й сам коригує свою поведінку за сигналом згоди, тож не залежить від перемоги в «перегонах» порядку завантаження. Потім у своєму продукті Google увімкніть Data Transmission Controls і Global Consent Defaults відповідно до потреб, щоб приховування даних і типова згода застосовувалися на боці Google.
- Або перенесіть усе до контейнера GTM і віддавайте GTM через GTG. Зберіть свої теги Google в одному контейнері GTM і віддавайте його через шлюз. Тоді згоду налаштовують один раз усередині GTM (Consent Settings для кожного тега), а команда default від CookieHug враховується ще до того, як теги контейнера перевірять свою згоду.
- Або налаштуйте GTG вручну (замість інтеграції CDN одним кліком), щоб ви керували порядком підключення скриптів — завантажте команду default Consent Mode від CookieHug перед тегом шлюзу.
Як працювати з GTG у CookieHug
- Тримайте скрипт CookieHug першим у
<head>— навіть із GTG команду default треба надіслати до ініціалізації тега. - Перевірте, чи команду default враховано: відкрийте GA4 → Адміністратор → DebugView і подивіться
analytics_storage/ad_storageу подіях. - У консолі перевірте
window.CookieHug.consent— значення має відповідати вибору користувача. - Якщо згоду враховано, вважайте попередження про запізнення GTG хибним спрацюванням через first-party тайминг.
- Якщо згоду не враховано (тег збирає дані попри
denied), скористайтеся рішенням вище.