События
Подписывайтесь на события согласия и баннера Cookiesh из JavaScript, через DOM или в Google Tag Manager: передаваемые данные и примеры для каждого события.
Последнее обновление: 29 октября 2026 г.
Вместо того чтобы опрашивать файлы cookie, подпишитесь на события. Cookiesh отправляет одни и те же события тремя способами, поэтому слушать их можно там, где живет ваш код:
- JavaScript API:
cookiesh.on(name, handler). - События DOM на
windowс префиксомcookiesh:. - Записи в
dataLayerдля Google Tag Manager.
Подписка
on(event: string, handler: (detail) => void): () => void
off(event: string, handler: (detail) => void): void
on() возвращает функцию, которая удаляет обработчик:
import { cookiesh } from '@cookiesh/js';
const stop = cookiesh.on('consent:updated', ({ categories, changed }) => {
if (changed.includes('analytics')) analytics.setEnabled(categories.analytics);
});
// Позже, например при размонтировании компонента
stop();
Если вы подписываетесь на consent:ready после того, как оно уже произошло, обработчик сразу вызывается с текущим состоянием. О порядке загрузки можно не беспокоиться.
Справочник событий
| Событие | Когда происходит | Данные (detail) |
|---|---|---|
consent:ready |
Один раз на странице, когда состояние согласия известно | { categories, method, region } |
consent:updated |
Каждый раз, когда посетитель или ваш код сохраняет новый выбор | { categories, changed, method, consentId } |
banner:shown |
Появляется баннер первого уровня | { bannerVersion, region } |
banner:hidden |
Баннер закрывается, с выбором или без | { reason } |
preferences:opened |
Открывается центр настроек | {} |
preferences:closed |
Закрывается центр настроек | { saved } |
script:unblocked |
Cookiesh запускает скрипт или загружает iframe, который он удерживал | { category, src } |
В этих данных:
categories— объект с логическим значением для каждой категории:{ necessary, preferences, analytics, marketing }.changedперечисляет категории, значение которых изменилось, например['analytics'].method— одно из значенийdefault,banner,preferences,apiилиgpc.reason—accepted,rejected,savedилиclosed.
События DOM
Каждое событие также отправляется на window в виде CustomEvent. Это удобно для скриптов, которые не импортируют пакет:
<script>
window.addEventListener('cookiesh:consent:updated', (event) => {
console.log('New choice', event.detail.categories);
});
</script>
Google Tag Manager
Cookiesh отправляет в dataLayer два события, на которых можно строить триггеры:
{
event: 'cookiesh_consent_ready',
cookiesh: { necessary: true, preferences: false, analytics: true, marketing: false, method: 'banner' }
}
{
event: 'cookiesh_consent_updated',
cookiesh: { necessary: true, preferences: true, analytics: true, marketing: false, method: 'preferences' }
}
Создайте триггер Custom Event на cookiesh_consent_updated и переменную Data Layer Variable для cookiesh.marketing, чтобы теги не от Google срабатывали только после согласия. Тегам Google это не нужно: они читают сигналы Consent Mode, которые Cookiesh отправляет автоматически.
Серверные события
Эти события выполняются в браузере посетителя. Чтобы получать изменения согласия на своем сервере, например для синхронизации с CRM, используйте вебхуки.