Согласие на использование cookie и анонимные проактивные Триггеры

Согласие на сайте и виджет разделены

Ваш сайт самостоятельно отвечает за собственный баннер согласия и уведомление о конфиденциальности. Интерфейс согласия виджета не заменяет вашу платформу управления согласием (CMP), а WebChatAgent не добавляет второй баннер внутри встроенного виджета.

Виджет запускается в анонимном режиме конфиденциальности, когда tracking-consent опущен или установлен в значение unknown. В этом режиме локальные решения по триггерам остаются в памяти и не отправляются в WebChatAgent.

<!-- tracking-consent is optional; omitted means unknown -->
<web-chat-agent chatbot-id="YOUR_ID"></web-chat-agent>

Что работает без сигнала согласия

ВозможностьБез сигнала согласия
Время на страницеРаботает локально в памяти
Глубина прокруткиРаботает локально в памяти
Намерение уйтиРаботает локально в памяти
БездействиеРаботает локально в памяти
Совпадение URLРаботает для текущей страницы
Видимость разделаРаботает локально в памяти
Серия кликов в гневеРаботает локально в памяти
Просмотрено страницРаботает во время навигации SPA в рамках одного документа; сбрасывается после полной перезагрузки
Вернувшийся посетительОтключён
Проактивное приветствие, сгенерированное ИИИспользует настроенный статический резервный вариант
Аналитика триггеров до взаимодействия с чатомОтключён
Постоянный/ежедневный период ожиданияПереключается на время жизни текущего документа
Постоянное отклонениеДействует только до перезагрузки документа

До того как посетитель начнет взаимодействовать с чатом, анонимная оценка триггеров не создает идентификатор посетителя, не записывает состояние проактивных функций в хранилище браузера и не отправляет поведенческие события в WebChatAgent.

Интерфейс согласия

Используйте необязательный атрибут, когда менеджер согласий уже знает выбор посетителя:

<web-chat-agent
  chatbot-id="YOUR_ID"
  tracking-consent="granted"
></web-chat-agent>

Разрешенные значения: unknown, denied и granted. Отсутствующие и недопустимые значения обрабатываются как unknown.

Для изменения согласия без перезагрузки страницы отправьте событие:

window.dispatchEvent(
  new CustomEvent('webchatagent:consent', {
    detail: { tracking: 'granted' }
  })
)

Отправляйте denied, когда согласие отклонено или отозвано. В этом случае WebChatAgent прекращает необязательное отслеживание и удаляет состояние проактивных триггеров, а также персонализацию интерфейса, зависящую от согласия. Хранилище функциональных сессий чата остается доступно после того, как посетитель начинает активно использовать чат.

В White-label развертываниях нейтральное к бренду имя события chat-widget:consent работает аналогично, используйте его, если на странице со встраиванием не должно упоминаться название платформы.

Отправляйте granted только после того, как CMP зафиксирует действительный выбор для категории, покрывающей каждую включенную вами функцию. Приветствия от ИИ, распознавание посетителей и аналитика триггеров могут требовать других описаний или категорий в вашей конфигурации. Подтвердите сопоставление с вашим консультантом по конфиденциальности.

Универсальный адаптер CMP

function updateWebChatAgentConsent(isGranted) {
  window.dispatchEvent(
    new CustomEvent('webchatagent:consent', {
      detail: { tracking: isGranted ? 'granted' : 'denied' }
    })
  )
}

// Call this from your CMP's consent-ready and consent-change callbacks.
updateWebChatAgentConsent(false)

Cookiebot

Cookiebot предоставляет текущие решения по категориям через Cookiebot.consent и сообщает об изменениях через события браузера. Выберите категорию, которая соответствует вашим задокументированным целям:

function syncWebChatAgentWithCookiebot() {
  const consent = window.Cookiebot?.consent
  const granted = Boolean(consent?.preferences && consent?.statistics)
  updateWebChatAgentConsent(granted)
}

window.addEventListener('CookiebotOnConsentReady', syncWebChatAgentWithCookiebot)
window.addEventListener('CookiebotOnAccept', syncWebChatAgentWithCookiebot)
window.addEventListener('CookiebotOnDecline', syncWebChatAgentWithCookiebot)

Актуальные свойства категорий и события приведены в справочнике разработчика Cookiebot.

Complianz

Complianz предоставляет метод cmplz_has_consent(category) и хуки статуса/отзыва:

function syncWebChatAgentWithComplianz() {
  const granted = typeof window.cmplz_has_consent === 'function'
    && window.cmplz_has_consent('marketing')
  updateWebChatAgentConsent(granted)
}

jQuery(document).on(
  'cmplz_status_change cmplz_revoke cmplz_enable_category',
  syncWebChatAgentWithComplianz
)

Замените marketing, если в задокументированной конфигурации вашей CMP используется другая категория. Смотрите справочник по интеграции Complianz.

Создайте службу WebChatAgent в соответствующей группе служб Borlabs и используйте идентификатор этой группы:

function syncWebChatAgentWithBorlabs() {
  const granted = Boolean(
    window.BorlabsCookie?.Consents?.hasConsentForServiceGroup('marketing')
  )
  updateWebChatAgentConsent(granted)
}

window.addEventListener('borlabs-cookie-after-init', syncWebChatAgentWithBorlabs)
window.addEventListener('borlabs-cookie-consent-saved', syncWebChatAgentWithBorlabs)

Замените marketing на идентификатор группы служб, используемый в вашей конфигурации Borlabs. Смотрите JavaScript API Borlabs Cookie.

Справочник хранилища браузера

КлючХранилищеКогда создаетсяНазначение
chatSessionId_<chatbotId>localStorageПосетитель активно использует чатВозобновление функционального диалога
chatRecentSessions_<chatbotId>localStorageПосетитель использует функции недавних чатовЛокальный список известных сессий чата
chatEndedSessions_<chatbotId>localStorageПосетитель завершает чатИсключение завершенных сессий из активного вида
chatWidgetIsOpenlocalStorageПосетитель открывает или закрывает плавающий виджетВосстановление функционального состояния интерфейса
livechat_timeout_<chatbotId>_<sessionId>localStorageПосетитель запрашивает живой чатВозобновление таймаута живого чата
chatThumbRatings_<chatbotId>localStorageСогласие на отслеживание предоставлено, отзыв отправленСохранение локального выбора оценки
wca_privacy_box_dismissed_<chatbotId>sessionStorageСогласие на отслеживание предоставлено, уведомление отклоненоСкрытие уведомления в текущей вкладке
wca_speech_bubble_dismissed_<chatbotId>sessionStorageСогласие на отслеживание предоставлено, всплывающее сообщение отклоненоСкрытие всплывающего сообщения в текущей вкладке
wca_triggers_<chatbotId>_*localStorage/sessionStorageСогласие на отслеживание предоставленоПовторные визиты, счетчики, периоды ожидания и состояние отклонения

Ваше уведомление о конфиденциальности должно описывать хранилище и обработку на стороне сервера, фактически включенные в вашей конфигурации. Эта документация является техническим руководством и не заменяет юридическую консультацию.