INTEGRITY Документация

Consent API

Контекст

Consent API позволяет программно управлять всеми аспектами системы управления согласием: модальным окном, статусом согласия и получением информации о настроенных целях.

С помощью Consent API вы можете интегрировать настройки Zaraz Consent с внешней Consent Management Platform, настроить собственное модальное окно согласия или ограничить управление согласием пользователями из определённых регионов.


События

Полезно знать, когда Consent API полностью загружен на странице, чтобы код, взаимодействующий с его методами и свойствами, не вызывался преждевременно.

document.addEventListener("zarazConsentAPIReady", () => {
  // do things with the Consent API
});

Это событие срабатывает каждый раз, когда пользователь изменяет свои настройки согласия. Его можно использовать для реагирования на изменения согласия, например при обновлении инструмента с учётом новых настроек.

document.addEventListener("zarazConsentChoicesUpdated", () => {
  // read the new consent preferences using `zaraz.consent.getAll();` and do things with it
});

Свойства

Ниже перечислены свойства zaraz.consent объект.


Методы

Get

zaraz.consent.get(purposeId);

Получайте текущий статус согласия для цели по её purpose ID.

Параметры

Set

zaraz.consent.set(consentPreferences);

Задайте статус согласия для отдельных целей по идентификатору цели.

Параметры

Get All

zaraz.consent.getAll();

Возвращает объект со статусом согласия по всем целям.

Set All

zaraz.consent.setAll(consentStatus);

Задайте статус согласия сразу для всех целей.

Параметры

Get All Checkboxes

zaraz.consent.getAllCheckboxes();

Возвращает объект со статусом чекбоксов всех целей.

Set Checkboxes

zaraz.consent.setCheckboxes(checkboxesStatus);

Задайте статус согласия для отдельных целей по идентификатору цели.

Параметры

Set All Checkboxes

zaraz.consent.setAllCheckboxes(checkboxStatus);

Задайте checkboxStatus статус для всех целей в модальном окне согласия сразу.

Параметры

Send queued events

zaraz.consent.sendQueuedEvents();

Если некоторые события на основе Pageview не были отправлены из-за отсутствия согласия, их можно отправить этим методом после получения согласия.

Примеры

Вы можете сочетать разные функции Zaraz, чтобы фактически отключить Consent Management для отдельных посетителей. Например, если нужно применять его только к посетителям из ЕС, отключите автоматический показ окна согласия и добавьте инструмент Custom HTML со следующим скриптом:

<script>
function getCookie(name) {
  const value = `; ${document.cookie}`
  return value?.split(`; ${name}=`)[1]?.split(";")[0]
}

function handleZarazConsentAPIReady() {
  const consent_cookie = getCookie("cf_consent")
  const isEUCountry = "{{system.device.location.isEUCountry}}" === "1"
  if (!consent_cookie) {
    if (isEUCountry) {
      zaraz.consent.modal = true
    } else {
      zaraz.consent.setAll(true)
      zaraz.consent.sendQueuedEvents()
    }
  }
}

if (zaraz.consent?.APIReady) {
  handleZarazConsentAPIReady()
} else {
  document.addEventListener("zarazConsentAPIReady", handleZarazConsentAPIReady)
}
</script>

Примечание: если вы изменили имя cookie для Consent Manager, используйте это имя вместо "cf_consent" в приведённом выше фрагменте кода.

Если разрешить этому инструменту Custom HTML запускаться без требования согласия, модальное окно будет показываться всем посетителям из ЕС, тогда как для остальных посетителей согласие будет предоставляться автоматически. {{ system.device.location.isEUCountry }} свойство будет 1 если посетитель из страны ЕС, и 0 в противном случае. Вы можете аналогичным образом использовать любое другое свойство или переменную для настройки поведения Consent Management, например {{ system.device.location.country }} чтобы ограничить проверки согласия по коду страны.