Управление скриптами

Иногда на сайте есть скрипты, которые используют 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-*, либо загружались через события.
Содержание:

Собирайте согласия. Выполняйте закон. Без риска штрафов.

ItemClo — готовое решение для вашего сайта с хранением логов, аналитикой и гибкими настройками. Попробуйте бесплатно 14 дней.