Опубликовано: 6 сентября 2026 г.
Contao: инструмент согласия, Consent Mode v2, GTM и Google Ads
Как ведут себя Klaro, Contao Marketing Suite и Usercentrics на Contao, как подключить Consent Mode v2 через Google Tag Manager и проверить цепочку до Google Ads
Инструмент управления согласием для Contao ставится быстро: устанавливаете пакет через Contao Manager, настраиваете баннер, и готово. А вот что дальше, почти ни в одной инструкции нет: как согласие посетителя передаётся в Google Tag Manager через сигналы Consent Mode v2 и действительно ли конверсия Google Ads фиксируется только при согласии. Об этом и статья. Заодно объясню свой выбор: на Contao я использую Usercentrics, хотя Klaro и Contao Marketing Suite теснее связаны с самой CMS.
1. Что должен делать инструмент согласия на Contao для точного трекинга
В Contao нет встроенного инструмента управления согласием. Так устроена CMS: она отдаёт страницу, а инструмент согласия подключается через макет страницы как расширение или внешний скрипт. Прежде чем сравнивать решения, полезно понять, что такой инструмент делает технически.
Как работает инструмент согласия
Задач три, и все они выполняются в браузере посетителя, а не на сервере:
- Блокировка: скрипты и встроенное содержимое, которые ставят cookie или передают данные, загружаются только после согласия. Технически это делается через теги скриптов с
type="text/plain"и маркер, который читает инструмент, либо через заглушки для встроенных элементов вроде YouTube и Google Maps. - Хранение решения: выбор записывается в cookie или в local storage вместе с отметкой времени и версией ваших настроек. Если в сервисах что-то меняется, посетителя спрашивают заново.
- Передача сигналов дальше: инструмент сообщает другим системам, что разрешил посетитель. Для Google это Consent Mode v2 с четырьмя сигналами:
ad_storage,analytics_storage,ad_user_dataиad_personalization. Для всего остального это событие вdataLayer, на которое реагирует Tag Manager.
От третьего пункта зависит, есть ли у вас полноценная система управления согласием или только cookie-баннер. Если баннер блокирует скрипты, но не передаёт сигналы, конверсии Google Ads могут перестать учитываться без единого сообщения об ошибке. Что такое Consent Mode v2 и почему без него списки ремаркетинга пустеют, я подробно описал здесь: настройка Consent Mode v2.
Две особенности Contao, которые нужно знать
Contao кэширует страницы встроенным HTTP-кэшем. Поэтому инструмент согласия не должен задавать состояние отдельного посетителя на сервере: иначе следующий посетитель получит кэшированную страницу с состоянием согласия предыдущего. Всё, что связано с согласием, должно обрабатываться в JavaScript. Вторая особенность: у макетов страниц Contao есть собственные поля для дополнительных тегов в head и для скриптов. Именно туда нужно добавлять загрузчик CMP (платформы управления согласием) и сниппет GTM. Если вместо этого изменять шаблон, при следующем обновлении эти изменения могут пропасть.
Klaro, Contao Marketing Suite или Usercentrics: выбор под вашу ситуацию
Три решения, которые обычно рассматривают для проектов на Contao, различаются прежде всего тем, как они обрабатывают согласие. Внешний вид баннера здесь вторичен.
Klaro — менеджер согласия с открытым кодом, доступный в виде пакета для Contao. Сервисы вы настраиваете в админке, пакет выводит баннер и блокирует помеченные скрипты. Хороший вариант, если вы не хотите платить за лицензию и у вас есть человек, который будет поддерживать конфигурацию. Для рекламодателей есть нюанс: сам Klaro не поддерживает Consent Mode v2, его нужно подключать отдельно. Либо такая интеграция уже есть в пакете, либо вы сами задаёте четыре сигнала Google через callbacks в конфигурации сервиса и обновляете их при каждом изменении. Это выполнимо, но требует ручной работы, о которой при обновлениях часто забывают.
Contao Marketing Suite теснее других решений интегрирована с CMS. Категории cookie, заблокированные элементы содержимого и баннер управляются из админки Contao, что удобно редакторам. Для проекта, где главное — работа с контентом, а аналитика нужна лишь как дополнение, это хороший вариант. Если у вас серьёзный рекламный бюджет, до покупки проверьте, как Suite работает с Consent Mode v2 и Tag Manager и действительно ли передаёт сигналы в браузере. Об этом ниже: тест одинаков для любого инструмента.
Usercentrics — мой выбор и на Contao, и на других CMS. Причина в трёх вещах, которые важны для кампаний. Consent Mode v2 встроен, и его поддерживает сам поставщик. Официальный шаблон GTM из галереи корректно задаёт начальное состояние согласия (default) и передаёт его обновления (update). Правила по географии, несколько языков и доменов доступны в стандартной версии, их не нужно заказывать отдельно. Usercentrics не нужен пакет для Contao: загрузчик занимает одну строку в макете страницы и поэтому сохраняется при обновлениях CMS.
Коротко о выборе:
- Нет рекламного бюджета, разработчики в штате, лицензия не нужна: Klaro, с мостом к Consent Mode, написанным самостоятельно.
- Сайт с упором на контент, мало трекинга, редакторы всё ведут сами: Contao Marketing Suite, после теста ниже.
- Google Ads с бюджетом, отслеживание конверсий, ремаркетинг: Usercentrics.
2. Как связать Consent Mode v2 и GTM в Contao
Порядок всегда один и тот же, какую бы CMP вы ни выбрали. Он важнее любой отдельной галочки. Шаги я описываю для Usercentrics; с Klaro или Marketing Suite они те же, различаются только названия полей.
Шаг 1: добавьте CMP в макет страницы
В админке Contao откройте макет страницы в разделе Themes и вставьте загрузчик Usercentrics в поле для дополнительных тегов head. Это должен быть первый скрипт на странице, который связан с трекингом. Если у вас несколько макетов (главная, внутренние страницы, лендинги), загрузчик нужен в каждом. Если один макет пропустить, лендинг с этим макетом будет открываться без баннера. После этого очистите кэш Contao через системное обслуживание, иначе вы будете тестировать старую страницу.
Шаг 2: настройте загрузку GTM
Google Tag Manager тоже подключается в макете страницы, и здесь два пути:
- Строгий: сам сниппет GTM добавлен в CMP как заблокированный сервис и загружается только после согласия. Тогда в контейнере срабатывают лишь теги, для которых согласие уже получено. У клиентов я по умолчанию делаю так: в Германии есть основания считать, что уже загрузка
gtm.jsозначает доступ к устройству пользователя по § 25 TDDDG (немецкий закон о согласии на хранение и чтение информации на устройстве). - Advanced Consent Mode: GTM грузится всегда, а теги Google при отказе работают без cookie и отправляют анонимные пинги, по которым Google моделирует конверсии. Данных больше, но и обсуждать с уполномоченным по защите данных придётся больше.
Какой вариант допустим для вас, решайте вместе с юристом или уполномоченным по защите данных, а не по статье в блоге. Техническая цепочка в обоих случаях одна и та же. Если трекинг Google Ads у вас пока вообще не идёт через GTM, начните здесь: как настроить Google Ads через Google Tag Manager.
Шаг 3: добавьте шаблон согласия в контейнер
В контейнер GTM добавьте официальный шаблон Usercentrics из галереи шаблонов, введите свой Settings ID и назначьте триггер Consent Initialization. Он срабатывает раньше всех остальных. Пока посетитель не сделал выбор, шаблон задаёт для всех четырёх сигналов denied. После клика он обновляет состояния на granted или denied. Затем включите в настройках контейнера Consent Overview и проверьте каждый тег: теги Google сами учитывают сигналы, а для тегов сторонних сервисов нужно указать подходящую категорию в поле Additional consent.
Для тегов, которые не поддерживают сигналы согласия, используйте событие, которое CMP записывает в dataLayer после каждого решения (у Usercentrics это consent_status). Настройте триггер на это событие и добавьте условие согласия для нужного сервиса. Тогда тег сработает только после разрешения этого сервиса.
Шаг 4: подключите конверсию Google Ads
Для тега конверсии Google Ads действуют те же правила. Он связан с тегом Google, который учитывает статус согласия, и срабатывает на ваше событие конверсии, обычно на успешную отправку формы Contao. В Contao после отправки вы либо перенаправляете посетителя на страницу благодарности, либо отправляете событие в dataLayer. Страница благодарности надёжнее, потому что работает независимо от того, как встроен модуль формы. Если позже понадобится передавать в аккаунт сведения о качестве заявок, посмотрите статью про импорт офлайн-конверсий по заявкам.
Если вы не хотите собирать контейнер вручную, в моём конфигураторе GTM (на немецком) можно выбрать шаблон согласия, тег Google и тег конверсии, получить готовый контейнер и сразу импортировать его.
3. Тестирование, отзыв согласия, доступность: чек-лист
Баннер встроен, контейнер опубликован. Теперь начинается этап, от которого большинство инструкций отделываются словами «проверьте настройки». Я проверяю всю цепочку: без теста можно только гадать, работает ли система согласия.
Порядок теста для Contao
Всегда тестируйте как обычный посетитель в окне инкогнито. Выйдите из учётной записи админки и не используйте её режим предпросмотра. Пользователям, вошедшим в админку, Contao отдаёт страницу иначе, и кэш для них работает по-другому.
- Открытие страницы без клика: во вкладке Consent в Tag Assistant все четыре сигнала стоят в
denied. В сетевых запросах при строгой схеме не должно быть ни одного запроса к Google. При схеме Advanced каждый запрос к Google несёт параметрgcsсо значением, которое означает отказ. - Отклонить всё: в браузере нет маркетингового cookie, при отправке формы нет запроса конверсии. Если конверсия всё же сработала, блокировка сломана, независимо от того, что показывает баннер.
- Принять всё: сигналы переходят в
granted, тег конверсии срабатывает на странице благодарности, и запрос к Google несёт статус согласия. Верить нужно этому запросу, а не тому, что показывает баннер. - Проверка в аккаунте: через два дня загляните в Google Ads и посмотрите, приходят ли данные по действию-конверсии и растут ли списки ремаркетинга снова. Тест тега зелёный, а аккаунт остаётся пустым: такая картина встречается часто.
- Повторять после каждого обновления Contao: макеты, шаблоны и пакеты меняются, и цепочка ломается молча.
Если хочется быстро проверить базовые настройки, есть мой бесплатный Tracking-Check (на немецком). Как регулярно проверять все действия-конверсии, описано в статье про проверку отслеживания конверсий.
Отзыв согласия: случай, который никто не тестирует
После отзыва согласия трекинг должен обрабатывать посетителя так же, как человека, который отказался с самого начала. Это нужно не просто настроить, но и проверить:
- Есть ссылка, чтобы заново открыть настройки. В Contao лучше всего поставить её в модуль футера или в политику конфиденциальности, чтобы она была доступна с любой страницы.
- После отзыва CMP отправляет update со значением
denied. В Tag Assistant вы видите переключение сразу, без перезагрузки. - С этого момента ни один тег конверсии Google Ads не должен срабатывать. Проверьте: отзовите согласие, отправьте форму, посмотрите вкладку Network.
- Уже установленные cookie инструмент удаляет, или они истекают сами. Какие cookie CMP удаляет, а какие нет, написано в документации поставщика, и это стоит проверить один раз.
Если сигнал об отзыве не дошёл до тегов, вы продолжаете собирать данные, хотя согласия уже нет. Для рекламодателя это серьёзная проблема. Юридическую сторону я описал здесь: GDPR и отслеживание конверсий.
Доступность входит в тот же чек-лист
Сообщество Contao обсуждает подпись маленькой иконки, через которую повторно открывают настройки cookie. Но вопрос доступности гораздо шире. С июня 2025 года в Германии для многих сайтов, работающих с потребителями, действует Barrierefreiheitsstärkungsgesetz (закон об обеспечении доступности), а баннер согласия — первый элемент, с которым взаимодействует каждый посетитель. На практике это значит:
- Баннер доступен с клавиатуры, фокус при открытии попадает внутрь баннера и остаётся там, пока решение не принято.
- У каждой кнопки есть видимый текст, а не только иконка. У иконки для повторного открытия настроек есть
aria-label, который говорит, что произойдёт. - Контрастность в порядке и у кнопки отказа, которую любят оформлять поскромнее.
- Скринридер озвучивает баннер на языке страницы, поэтому атрибут языка должен быть верным.
Usercentrics и Klaro дают здесь рабочую основу, но за подписями вам всё равно нужно следить самим, на каждом языке сайта. Доступный баннер улучшает и качество данных: посетитель, который нашёл кнопку отказа, учтён честнее, чем тот, кто в раздражении закрыл страницу.
Итог
Инструмент согласия на Contao ставится за час. Но будет ли аккаунт Google Ads получать данные или конверсии незаметно перестанут учитываться, зависит от дальнейшей настройки:
- Инструмент должен поддерживать Consent Mode v2, а не только блокировать скрипты. Для Klaro интеграцию вы настраиваете сами, у Marketing Suite проверяете, у Usercentrics она уже есть. Поэтому при рекламном бюджете я выбираю Usercentrics.
- Загрузчик CMP и GTM нужно подключить в каждом макете страницы Contao, а после каждого изменения очистить кэш.
- Шаблон на триггере Consent Initialization задаёт начальное состояние и обновления согласия. Теги сторонних сервисов срабатывают на событие согласия от CMP, конверсия фиксируется на странице благодарности.
- Тестировать нужно в окне инкогнито: при согласии, при отказе, после отзыва согласия и после каждого обновления. Проверяйте запросы во вкладке Network, одного состояния баннера недостаточно.
- Доступность — часть того же чек-листа, а не тема на потом.
Сайт на Contao, Google Ads работает, и вы не уверены, что конверсии действительно считаются только с согласия? Я пройду цепочку от баннера до аккаунта вместе с вами и честно скажу, чего не хватает. Записаться на бесплатный первый созвон.
Об авторе
Даниил Вишняков
Независимый консультант по рентабельности Google Ads и качеству данных. Работал для Google: настраивал веб-аналитику и отслеживание конверсий. Сегодня помогает командам принимать взвешенные решения и оставлять знания внутри компании: на личных консультациях, воркшопах и со сцены.