Бесплатно · без регистрации
Генератор 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>Как пользоваться
- Укажите название сайта и ссылку на политику.
- Добавьте номер счётчика Яндекс Метрики — код загрузит его только после согласия.
- Удалите со страниц прежний код Метрики, чтобы он не срабатывал до выбора.
- Вставьте сгенерированный код перед закрывающим тегом </body> на всех страницах.
Код не зависит от библиотек и не отправляет данные на сторонние серверы. Выбор посетителя сохраняется в localStorage.
Добавьте в подвал ссылку «Настройки cookie», чтобы посетитель мог изменить решение.
Опишите используемые счётчики в политике обработки персональных данных.
Бесплатная проверка покажет, видна ли политика, есть ли согласия в формах и cookie-уведомление.
Частые вопросы
Нужен ли cookie-баннер на российском сайте?
Отдельного закона о cookie в России нет, но cookie вместе с IP-адресом могут считаться персональными данными. Безопасный подход — уведомлять посетителей, описывать счётчики в политике и не загружать необязательные cookie до согласия.
Достаточно ли кнопки «Хорошо»?
Нет. Если счётчики загружаются сразу, а у посетителя нет возможности отказаться, баннер ничего не меняет в фактической обработке. Нужны равнозначные кнопки согласия и отказа.
Как подключить Яндекс Метрику через баннер?
Укажите номер счётчика в генераторе и удалите стандартный код Метрики со страниц. Сгенерированный скрипт сам загрузит Метрику после нажатия кнопки согласия.