Налаштування cookie-повідомлень на 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Налаштування cookie-повідомлень на 1С-Бітрікс
Проста
~1 робочий день
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Налаштування cookie-сповіщень на 1С-Бітрікс

Cookie-сповіщення з кнопкою «Прийняти» — це не декоративний елемент. Згідно GDPR та інших нормативних вимог аналітичні та маркетингові cookies не можна встановлювати до отримання явної згоди користувача. Баннер повинен управляти реальним завантаженням скриптів, а не просто інформувати.

Що надає Бітрікс з коробки

У Бітриксі починаючи з версії ядра 21.x з'явився компонент bitrix:main.privacy. Він виводить баннер cookie-згоди та управляє згодами через \Bitrix\Main\UserConsent. Компонент розміщується в шаблоні сайту — зазвичай в footer.php:

<?php $APPLICATION->IncludeComponent('bitrix:main.privacy', '.default', []); ?>

Компонент встановлює cookie BITRIX_SM_GDPR при прийнятті. Але з коробки він тільки фіксує згоду — він не управляє завантаженням сторонніх скриптів. Це потрібно реалізовувати окремо.

Управління завантаженням скриптів через згоду

Правильна реалізація: сторонні скрипти (Google Analytics, Яндекс.Метрика, піксельні) не завантажуються до прийняття cookies. Схема роботи:

  1. При завантаженні сторінки проверяется наявність cookie BITRIX_SM_GDPR (або спеціального флага)
  2. Якщо cookie немає — показується баннер, сторонні скрипти не завантажуються
  3. Після натискання «Прийняти» — встановлюється cookie, завантажуються скрипти, баннер приховується
function loadAnalytics() {
    // Google Tag Manager
    (function(w,d,s,l,i){...})(window,document,'script','dataLayer','GTM-XXXXXX');
}

function checkConsent() {
    const consent = document.cookie.split(';').find(c => c.trim().startsWith('BITRIX_SM_GDPR='));
    if (consent && consent.includes('Y')) {
        loadAnalytics();
    }
}

checkConsent();

document.getElementById('cookie-accept').addEventListener('click', function() {
    document.cookie = 'BITRIX_SM_GDPR=Y; path=/; max-age=' + (365 * 24 * 60 * 60);
    loadAnalytics();
    document.getElementById('cookie-banner').style.display = 'none';
});

Категорії cookies та гранульована згода

Продвинута реалізація ділить cookies на категорії: необхідні, аналітичні, маркетингові, функціональні. Необхідні завжди включені, для інших — окремі перемикачі.

У Бітриксі гранульоване управління реалізується через кілька флагів в localStorage або окремих cookies:

const consentCategories = {
    necessary: true,  // завжди true
    analytics: localStorage.getItem('consent_analytics') === 'true',
    marketing: localStorage.getItem('consent_marketing') === 'true'
};

При зміні налаштувань користувачем — зберігайте в localStorage та перезавантажте сторінку для застосування змін (або динамічно завантажуйте/вивантажуйте скрипти, але це складніше).

Інтеграція з Google Tag Manager

Якщо використовуєте GTM, управління згодами зручніше винести туди через Consent Mode v2. У GTM налаштовуєте тригери на основі змінних згоди. При цьому Google Analytics в режимі Consent Mode продовжує збирати агреговані дані навіть без згоди (без PII), що покращує точність моделювання.

У Бітриксі це не потребує змін PHP-коду — тільки налаштування GTM та JavaScript-ініціалізація gtag('consent', 'default', {...}) до завантаження GTM-контейнера.

Зберігання стану згоди

Строк зберігання згоди — не більше 12 місяців за GDPR. Після закінчення потрібно повторно запросити згоду. Реалізується через перевірку max-age cookie або timestamp в localStorage:

const consentTime = localStorage.getItem('consent_timestamp');
const YEAR_MS = 365 * 24 * 60 * 60 * 1000;
if (!consentTime || Date.now() - parseInt(consentTime) > YEAR_MS) {
    showCookieBanner();
}

Не плутайте: cookie з флагом згоди та самі аналітичні cookies — різні речі. Перше — технічне засобу фіксації згоди, друге — те, на що користувач дає згоду.