Бесплатно · без регистрации

Генератор cookie-баннера для сайта

Баннер, который не только закрывает экран: Яндекс Метрика и другие счётчики загружаются только после согласия посетителя, а отказаться так же просто, как согласиться.

Содержание
Счётчик загрузится только после нажатия «Принять».
Вид
<!-- Cookie-баннер: сгенерировано на siteizakon.ru/generator/cookie-banner -->
<div id="cookie-banner" role="dialog" aria-live="polite" aria-label="Уведомление о cookie" hidden
  style="position:fixed;z-index:9999;left:16px;right:16px;bottom:16px;max-width:880px;margin:0 auto;padding:18px 20px;border:1px solid #dfe1df;border-radius:14px;background:#ffffff;color:#151b24;box-shadow:0 12px 40px rgba(0,0,0,.18);font:15px/1.5 system-ui,sans-serif">
  <p style="margin:0 0 12px">Наш сайт использует cookie и сервисы аналитики, чтобы понимать, как улучшить сайт. Аналитические cookie включатся только с вашего согласия.
    <a href="/privacy" style="color:inherit;text-decoration:underline">Подробнее</a></p>
  <div style="display:flex;gap:10px;flex-wrap:wrap">
    <button type="button" data-cookie="all" style="padding:10px 16px;border:0;border-radius:10px;background:#2d5ce6;color:#fff;font:inherit;font-weight:600;cursor:pointer">Принять</button>
    <button type="button" data-cookie="necessary" style="padding:10px 16px;border:1px solid #dfe1df;border-radius:10px;background:transparent;color:inherit;font:inherit;font-weight:600;cursor:pointer">Только необходимые</button>
  </div>
</div>
<script>
(function () {
  var KEY = "cookie-consent";
  var banner = document.getElementById("cookie-banner");
  var loaded = false;
  function loadAnalytics() {
    if (loaded) return;
    loaded = true;
    // Вставьте сюда код счётчиков (Метрика, пиксели и т. п.).
    // Он выполнится только после согласия посетителя.
  }
  function read() {
    try { return localStorage.getItem(KEY); } catch (e) { return null; }
  }
  function save(value) {
    try { localStorage.setItem(KEY, value); } catch (e) {}
    banner.hidden = true;
    if (value === "all") loadAnalytics();
  }
  banner.addEventListener("click", function (event) {
    var choice = event.target.getAttribute && event.target.getAttribute("data-cookie");
    if (choice) save(choice);
  });
  // Ссылка «Настройки cookie» в подвале: <a href="#" onclick="openCookieSettings();return false">
  window.openCookieSettings = function () { banner.hidden = false; };
  if (read() === "all") loadAnalytics();
  else if (!read()) banner.hidden = false;
})();
</script>

Как пользоваться

  1. Укажите название сайта и ссылку на политику.
  2. Добавьте номер счётчика Яндекс Метрики — код загрузит его только после согласия.
  3. Удалите со страниц прежний код Метрики, чтобы он не срабатывал до выбора.
  4. Вставьте сгенерированный код перед закрывающим тегом </body> на всех страницах.
Проверьте сайт после публикации

Бесплатная проверка покажет, видна ли политика, есть ли согласия в формах и cookie-уведомление.

Проверить сайт

Частые вопросы

Нужен ли cookie-баннер на российском сайте?

Отдельного закона о cookie в России нет, но cookie вместе с IP-адресом могут считаться персональными данными. Безопасный подход — уведомлять посетителей, описывать счётчики в политике и не загружать необязательные cookie до согласия.

Достаточно ли кнопки «Хорошо»?

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

Как подключить Яндекс Метрику через баннер?

Укажите номер счётчика в генераторе и удалите стандартный код Метрики со страниц. Сгенерированный скрипт сам загрузит Метрику после нажатия кнопки согласия.