Маркетинг-аналитика
Маркетинг-аналитика
@MarketingAnalyticsRoomPro

Настройка Content Security Policy для Google Tag Manager: чек-лист для аналитика

Настройка Content Security Policy для Google Tag Manager: чек-лист для аналитика

Content Security Policy (политика безопасности контента, CSP) — это HTTP-заголовок, который ограничивает, какие скрипты и ресурсы браузер может загружать на странице. Если CSP блокирует Google Tag Manager, теги перестанут срабатывать, а вы получите ложные провалы в данных. Вот порядок действий, чтобы GTM работал в CSP без компромиссов по безопасности.

— Проверьте текущие директивы CSP через отчёты браузера или инструменты разработчика. Откройте консоль — блокировки GTM выглядят как ошибки вида «Refused to load script from 'https://www.googletagmanager.com'». Соберите все заблокированные URL до внесения правок.

— Добавьте домен `www.googletagmanager.com` в директиву `script-src`. Если в вашей CSP нет `script-src`, задайте её явно. Не забудьте про `tagmanager.google.com` — его тоже нужно разрешить для фрагмента `gtm.js`.

— Настройте `nonce` (одноразовый токен) для инлайн-скриптов GTM. Вместо `unsafe-inline` используйте атрибут `nonce` в теге контейнера GTM. Сервер должен генерировать уникальный nonce при каждой загрузке страницы и передавать его в CSP-заголовок.

— Если nonce невозможен (например, статический сайт без серверной логики), допустите `unsafe-inline` внутри `script-src`, но только вместе с указанием точного `strict-dynamic`. Без `strict-dynamic` инлайн-скрипты не пройдут проверку, а с ним — разрешаются только скрипты, явно разрешённые nonce или хешем.

— Обеспечьте загрузку GTM только по HTTPS. CSP-директива `upgrade-insecure-requests` автоматически перепишет HTTP на HTTPS, но если вы используете `block-all-mixed-content`, проверьте, что GTM не подтягивает сторонние теги через HTTP.

— Протестируйте CSP в режиме отчётности (`Content-Security-Policy-Report-Only`), прежде чем включать полный блок. Этот заголовок не блокирует скрипты, а только отправляет отчёты с нарушениями — вы увидите, где GTM или его теги не вписываются в политику, без риска сломать аналитику.

— Используйте заголовок `Content-Security-Policy` на стороне сервера, а не meta-тег в HTML. Meta-тег не поддерживает `report-uri` и может быть переопределён серверным заголовком — это создаёт путаницу в диагностике.

Когда это пригодится: при запуске сайта с повышенными требованиями к безопасности (банковские сервисы, интернет-магазины с PCI DSS, корпоративные порталы) или при переходе на server-side-трекинг, где CSP часто блокирует не только GTM, но и его контейнер.

— @MarketingAnalyticsRoomPro
Этот пост опубликован в Telegram-канале Маркетинг-аналитика. Подписаться можно по ссылке: @MarketingAnalyticsRoomPro.
tech

Свежие посты в категории «Tech Infrastructure»

Все каналы категории →

start

Готовы запустить рекламу через сеть public.tg?

Новый оффер, продукт, GEO, кейс, событие или партнёрский запуск — соберём маршрут под задачу и отдадим медиаплан.

Telegram для медиаплана: @AFFtop_connect. Быстрый тест: $20 за канал, $1000 за пакет по сети.