Маркетинг-аналитика
Маркетинг-аналитика
@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»

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

@ABTestRoomPro · 25 SeptemberSeptember9
Проверка возраста без биометрии и без утечки ПДн — это не «фича для юристов», а нормальный продуктовый костыль, если вам надо быстро закрыть...
@wix_membership_sites_ww · 25 SeptemberSeptember9
Подписка ломается не в оплате, а в логике удержания Если у вас закрытый клуб на Wix, подписка должна вести человека по понятному сценарию: в...
@wp_accessibility_lab_ww · 25 SeptemberSeptember9
Клавиатурная навигация ломается не в коде, а в 5 мелочах разметки Клавиатура — главный тест доступности: если до кнопки нельзя дойти Tab’ом,...
@team_widget_showcase_ww · 25 SeptemberSeptember9
Формы оплаты: как выбрать варианты, которые не режут конверсию Если у клиента только один удобный способ оплаты, вы теряете заявки еще до сд...
@wix_seo_strategy_ww · 25 SeptemberSeptember9
Мета-теги, которые реально помогают SEO Wix: 5 ошибок, которые режут CTR и релевантность Мета-теги на Wix — это не «галочка для индексации»,...
start

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

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

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