Иногда на сайте есть скрипты, которые используют cookie определённых категорий (например, аналитика, маркетинг).
Чтобы соответствовать закону, такие скрипты нужно загружать только после того, как пользователь дал согласие.
ItemClo поддерживает два способа управления загрузкой скриптов:
- Через специальные атрибуты в
<script>
- Через подписку на события
Управление через теги <script>
Вы можете пометить скрипты, чтобы они не выполнялись до принятия пользователем соответствующих категорий cookies.
Пример использования:
<script
type="text/plain"
data-category="analytics"
data-service="Google Analytics"
>
/*...code*/
</script>
Как это работает:
data-category
— название категорииdata-service
(необязательный) — если указан, в модальном окне настроек (preferencesModal
) будет создан переключатель для этого сервисаdata-type
(необязательный) — пользовательский тип скрипта (например,"module"
)data-src
(необязательный) — может использоваться вместоsrc
, чтобы избежать проблем с валидацией
Когда пользователь принимает cookies этой категории, сервис автоматически подгружает и выполняет скрипт.
Примечание: Поддерживаемые категории зависят от настроек вашего баннера (см. раздел “Категории cookies” в админке).
Вы также можете запускать скрипты при отключении категории (если она была включена ранее), добавив символ '!'
перед названием категории:
<script
type="text/plain"
data-category="!analytics">
// Выполняется при отключении категории "analytics" (аналитика)
</script>
Пользовательский тип
Вы можете задать пользовательский тип скрипта с помощью атрибута data-type
.
Например, чтобы установить атрибут type="module"
, необходимо указать data-type="module"
.
<script
type="text/plain"
src="my-service-module.js"
data-category="analytics"
data-service="My service"
data-type="module"
></script>
Сервисы
Сервис — это скрипт или группа скриптов, объединённых под одним именем, которое отображается в модальном окне настроек (Preferences Modal) с собственным переключателем.
Сервис можно определить, добавив следующий атрибут:
data-service="your-service-name"
<script
type="text/plain"
data-category="analytics"
data-service="Google Analytics">
// Выполняется при включении сервиса "Google Analytics"
</script>
Вы можете добавить символ '!'
перед именем сервиса, чтобы выполнить некоторую очистку при отключении сервиса:
<script
type="text/plain"
data-category="analytics"
data-service="!Google Analytics">
// Выполняется при отключении сервиса "Google Analytics"
</script>
Управление через события
В дополнение к управлению скриптами через атрибуты, вы также можете использовать пользовательские события для обработки включения и отключения сервисов и категорий.
Например, с помощью событий ic:onConsent
, ic:onChange
и других можно выполнять нужную логику при изменении состояния согласий и соответствующих скриптов. Это позволяет гибко реагировать на действия пользователя и управлять загрузкой скриптов программно.
Рекомендации
- Не подключайте аналитические или рекламные скрипты до согласия — это может нарушать законодательство.
- Проверяйте, чтобы все такие скрипты были либо помечены атрибутами
data-*
, либо загружались через события.