входим в Топ-20 агентств
Рейтинг Рунета

Генератор согласия на получение рекламных рассылок

Согласие на email-, SMS- и мессенджер-рассылки по ст. 18 38-ФЗ «О рекламе»: каналы, отзыв согласия, оператор. Без него каждая рассылка — риск штрафа.

  • Бесплатно
  • Без регистрации
  • Данные не уходят на сервер
Генератор согласия на рекламную рассылку Отдельный документ + отдельный чекбокс в форме
Если не заполнить — в тексте будут перечислены данные по выбранным каналам.
Текст согласия на рекламную рассылку Редакция от 13 октября 2026 г. Шаблон, не юридическая консультация
HTML чекбокса для формы подписки
Реклама без согласия абонента — ч. 1 ст. 14.3 КоАП РФ: для юрлиц 100 000–500 000 ₽
\n\n'; } function saveDoc(name, title, body) { saveBlob(name, docFile(title, body), 'application/msword'); } /* Профиль реквизитов: общий для генераторов, хранится в браузере */ var KEY = 'rwt-requisites'; function load() { try { var o = JSON.parse(localStorage.getItem(KEY) || '{}'); return (o && typeof o === 'object') ? o : {}; } catch (e) { return {}; } } function store(o) { try { localStorage.setItem(KEY, JSON.stringify(o)); return true; } catch (e) { return false; } } function forget() { try { localStorage.removeItem(KEY); } catch (e) {} } /* map: {name, inn, ogrn, address, email, phone, site} → id поля; bar — строка «сохраняются · Очистить» */ function profile(map, bar, onChange) { var keys = Object.keys(map), saved = load(); function el(k) { return document.getElementById(map[k]); } keys.forEach(function (k) { var e = el(k); if (e && !e.value && saved[k]) e.value = saved[k]; }); var save = debounce(function () { var o = load(); keys.forEach(function (k) { var e = el(k); if (!e) return; var v = e.value.trim(); if (v) o[k] = v; else delete o[k]; }); store(o); }, 400); keys.forEach(function (k) { var e = el(k); if (e) e.addEventListener('input', save); }); if (bar) profileBar(bar, function () { keys.forEach(function (k) { var e = el(k); if (e) e.value = ''; }); if (onChange) onChange(); }); } function profileBar(bar, onClear) { if (typeof bar === 'string') bar = document.getElementById(bar); if (!bar) return; bar.innerHTML = 'Реквизиты сохраняются в вашем браузере · '; bar.querySelector('button').addEventListener('click', function () { forget(); if (onClear) onClear(); }); } /* Панель экспорта (110 px — запас под закреплённую шапку сайта): на десктопе — в блоке результата, на узком экране — липкая внизу инструмента */ function dock(barEl, home, target, bp) { if (typeof barEl === 'string') barEl = document.getElementById(barEl); if (typeof home === 'string') home = document.getElementById(home); if (typeof target === 'string') target = document.getElementById(target); if (!barEl || !home) return; var root = document.getElementById('rwt-tool') || home.closest('.rwt') || home.parentNode; var mq = window.matchMedia ? window.matchMedia('(max-width: ' + (bp || 900) + 'px)') : null; function place() { if (mq && mq.matches) { if (barEl.parentNode !== root) root.appendChild(barEl); barEl.classList.add('is-float'); } else { if (barEl.parentNode !== home) home.appendChild(barEl); barEl.classList.remove('is-float'); } } place(); if (mq) { if (mq.addEventListener) mq.addEventListener('change', place); else if (mq.addListener) mq.addListener(place); } var show = barEl.querySelector('.rwd-show'); if (show && target) show.addEventListener('click', function () { var y = target.getBoundingClientRect().top + (window.pageYOffset || 0) - 110; window.scrollTo({ top: Math.max(0, y), behavior: 'smooth' }); }); } return { esc: esc, parse: parse, html: html, preview: preview, text: text, splitNotes: splitNotes, showNotes: showNotes, debounce: debounce, saveBlob: saveBlob, docFile: docFile, saveDoc: saveDoc, load: load, store: store, forget: forget, profile: profile, profileBar: profileBar, dock: dock }; })(); /*@rwd-kit-end*/ (function () { var MONTHS = ['января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря']; function todayISO() { var d = new Date(); return d.getFullYear() + '-' + String(d.getMonth() + 1).padStart(2, '0') + '-' + String(d.getDate()).padStart(2, '0'); } function ruDate(iso) { var p = String(iso || todayISO()).split('-'); if (p.length !== 3) return iso; return parseInt(p[2], 10) + ' ' + MONTHS[parseInt(p[1], 10) - 1] + ' ' + p[0] + ' г.'; } function $(id) { return document.getElementById(id); } function val(id) { return ($(id).value || '').trim(); } function attr(s) { return String(s).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"').replace(/'/g, '''); } // Сборка текста согласия из объекта данных (та же функция используется в генераторе комплекта, id 78) function buildMarketingConsent(d) { var ch = d.channels.length ? d.channels : ['email']; var chNames = { email: 'электронная почта (email)', sms: 'SMS-сообщения', messenger: 'сообщения в мессенджерах', push: 'push-уведомления', call: 'телефонные звонки (номер набирает сотрудник, без автодозвона)' }; var chData = { email: 'адрес электронной почты', sms: 'номер телефона', messenger: 'номер телефона / идентификатор в мессенджере', push: 'идентификатор устройства или браузера для push-уведомлений', call: 'номер телефона' }; var dataList = d.dataList; if (!dataList) { var seen = {}; var arr = ['имя']; ch.forEach(function (c) { var item = chData[c]; if (!seen[item]) { seen[item] = 1; arr.push(item); } }); if (d.personalization) arr.push('сведения о заказах и просмотренных товарах на Сайте'); dataList = arr.join(', '); } var where = 'на сайте ' + d.siteUrl + (d.app ? ' или в мобильном приложении' : '') + ' (далее — Сайт)'; var req = d.operatorName + ' (ИНН ' + d.inn + ', ОГРН ' + d.ogrn + ', адрес: ' + d.address + ')'; var n = 0; var out = []; function sec(title, body) { n++; out.push('## ' + n + '. ' + title + '\n' + body.replace(/\{n\}/g, n)); } out.push('СОГЛАСИЕ НА ПОЛУЧЕНИЕ РЕКЛАМНОЙ И ИНФОРМАЦИОННОЙ РАССЫЛКИ\nИ НА ОБРАБОТКУ ПЕРСОНАЛЬНЫХ ДАННЫХ ДЛЯ ЭТОЙ ЦЕЛИ\n**Редакция от:** ' + d.date); sec('Предмет согласия', '{n}.1. Проставляя отметку в поле «Я согласен(на) получать рекламную рассылку» ' + where + ', я в соответствии с ч. 1 ст. 18 Федерального закона от 13.03.2006 № 38-ФЗ «О рекламе» даю ' + req + ' (далее — Оператор) согласие на получение от Оператора рекламных и информационных сообщений по указанным мной контактам.\n' + '{n}.2. Согласие даётся именно Оператору. Оно не распространяется на рекламу иных лиц, и Оператор не передаёт мои контакты другим рекламодателям для их собственных рассылок.\n' + '{n}.3. Согласие даётся отдельно от иных документов и согласий; получение рассылки не является условием покупки товаров или использования Сайта.'); sec('Каналы рассылки', 'Согласие распространяется на следующие каналы связи: ' + ch.map(function (c) { return chNames[c]; }).join(', ') + '.'); sec('Тематика рассылок', 'Сообщения могут содержать: ' + d.topics + '.' + (d.personalization ? '\nСодержание сообщений может подбираться с учётом моих заказов и просмотров на Сайте (персонализация).' : '')); sec('Частота рассылок', 'Максимальная частота рекламных сообщений: ' + d.frequency + '.\nСервисные сообщения, связанные с исполнением договора (статус заказа, оплата, доставка), рекламой не являются и в этот лимит не входят.'); sec('Обработка персональных данных', 'В соответствии со ст. 9 Федерального закона от 27.07.2006 № 152-ФЗ «О персональных данных» я даю Оператору согласие на обработку моих персональных данных на следующих условиях:\n' + '{n}.1. Перечень данных: ' + dataList + '.\n' + '{n}.2. Цель обработки: направление мне рекламных и информационных сообщений по выбранным каналам' + (d.personalization ? ', подбор содержания сообщений' : '') + ', учёт моего согласия и отказа от рассылки.\n' + '{n}.3. Действия с данными: сбор, запись, систематизация, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, ' + (d.processors ? 'передача (предоставление, доступ) лицам, указанным в п. {n}.5, ' : '') + 'блокирование, удаление, уничтожение. Способ обработки — автоматизированная обработка.\n' + '{n}.4. Срок: до отказа от рассылки или отзыва настоящего согласия. После получения отзыва Оператор прекращает обработку и уничтожает данные в срок не более 30 дней (ч. 5 ст. 21 152-ФЗ), если их обработка не требуется по другому законному основанию.' + (d.processors ? '\n{n}.5. Рассылку по поручению Оператора технически осуществляет: ' + d.processors + '. Это лицо обрабатывает данные только для доставки сообщений и обязано соблюдать конфиденциальность и требования ст. 19 152-ФЗ (ч. 3 ст. 6 152-ФЗ); ответственность перед мной несёт Оператор.' : '')); var ways = []; if (ch.indexOf('email') > -1) ways.push('перейти по ссылке «Отписаться» в любом письме'); if (ch.indexOf('sms') > -1 || ch.indexOf('messenger') > -1) ways.push('воспользоваться способом отписки, указанным в SMS или сообщении в мессенджере'); if (ch.indexOf('push') > -1) ways.push('отключить push-уведомления в настройках браузера или устройства'); if (ch.indexOf('call') > -1) ways.push('сообщить об отказе во время звонка'); ways.push('направить требование на адрес ' + d.email + ' с темой «Отказ от рассылки»'); sec('Отказ от рассылки и отзыв согласия', '{n}.1. Я могу в любой момент без объяснения причин отказаться от рассылки. Для этого можно:\n' + ways.map(function (w) { return '- ' + w + ';'; }).join('\n') + '\n' + '{n}.2. Получив требование, Оператор обязан немедленно прекратить направлять мне рекламу (ч. 1 ст. 18 38-ФЗ).\n' + '{n}.3. Отказ от рассылки означает и отзыв согласия на обработку персональных данных для этой цели. Он не влияет на обработку данных для исполнения договора (например, оформленного заказа).'); sec('Срок действия согласия', 'Согласие действует с момента проставления отметки в форме на Сайте до отказа от рассылки или отзыва согласия.'); if (d.additionalInfo) sec('Дополнительная информация', d.additionalInfo); sec('Контакты', 'Вопросы о рассылке и обработке персональных данных: ' + d.email + '.\nОператор отвечает на запросы о моих персональных данных в течение 10 рабочих дней; срок может быть продлён не более чем на 5 рабочих дней с мотивированным уведомлением (ст. 14, 20 152-ФЗ).'); var notes = ['---', 'ПРИМЕЧАНИЯ ДЛЯ ВЛАДЕЛЬЦА САЙТА (не включайте в текст согласия)', '- Разместите текст на отдельной странице и дайте на неё ссылку рядом с чекбоксом. Чекбокс не должен быть отмечен заранее и не должен быть обязательным для отправки формы.', '- Согласие на рассылку — отдельный чекбокс, не объединённый с согласием на обработку ПД для заказа и с офертой (ч. 1 ст. 9 152-ФЗ: согласие оформляется отдельно от иных документов).', '- Доказать получение согласия должен рекламораспространитель (ч. 1 ст. 18 38-ФЗ). Храните запись: дата и время, IP, адрес/номер, редакция текста; для email рекомендуется подтверждение подписки (double opt-in).', '- Отписку исполняйте сразу: адрес нужно немедленно исключить из всех рекламных списков, в том числе у сервиса рассылки.']; if (ch.indexOf('call') > -1) notes.push('- Звонки с автодозвоном, роботом или автоинформатором для рекламы запрещены (ч. 2 ст. 18 38-ФЗ) независимо от согласия.'); return out.join('\n') + '\n' + notes.join('\n'); } window.rwtBuildMarketingConsent = buildMarketingConsent; function collect() { var ch = []; if ($('channelEmail').checked) ch.push('email'); if ($('channelSms').checked) ch.push('sms'); if ($('channelMessenger').checked) ch.push('messenger'); if ($('channelPush').checked) ch.push('push'); if ($('channelCall').checked) ch.push('call'); return { operatorName: val('operatorName') || '[наименование]', inn: val('inn') || '[ИНН]', ogrn: val('ogrn') || '[ОГРН]', address: val('address') || '[адрес]', siteUrl: val('siteUrl') || '[сайт]', email: val('adminEmail') || '[email]', date: ruDate(val('policyDate')), app: $('includeApp').checked, dataList: val('dataList'), topics: val('topics') || 'новости, акции и специальные предложения', frequency: $('frequency').value, channels: ch, personalization: $('includePersonalization').checked, processors: $('includeThirdParty').checked ? (val('thirdPartyServices') || '[наименование и адрес сервиса рассылки]') : '', additionalInfo: val('additionalInfo') }; } function buildCheckboxHtml() { var url = val('consentUrl') || '/soglasie-na-rassylku'; var who = val('operatorName') || '[наименование]'; return '\n' + ''; } var doc = ''; function generate() { var sp = RWD.splitNotes(buildMarketingConsent(collect())); doc = sp.doc; $('resultArea').innerHTML = RWD.preview(RWD.html(doc)); RWD.showNotes('notesBox', sp.notes); $('checkboxArea').textContent = buildCheckboxHtml(); } function resetForm() { ['operatorName','inn','ogrn','address','siteUrl','adminEmail','consentUrl','dataList','topics','thirdPartyServices','additionalInfo'].forEach(function (id) { $(id).value = ''; }); $('policyDate').value = todayISO(); $('frequency').value = 'не чаще 2 раз в неделю'; $('channelEmail').checked = true; ['channelSms','channelMessenger','channelPush','channelCall','includePersonalization','includeThirdParty','includeApp'].forEach(function (id) { $(id).checked = false; }); $('thirdPartyBlock').style.display = 'none'; $('callWarn').style.display = 'none'; generate(); } function init() { $('policyDate').value = todayISO(); $('includeThirdParty').addEventListener('change', function (e) { $('thirdPartyBlock').style.display = e.target.checked ? 'block' : 'none'; }); $('channelCall').addEventListener('change', function (e) { $('callWarn').style.display = e.target.checked ? 'block' : 'none'; }); $('resetBtn').addEventListener('click', resetForm); $('copyBtn').addEventListener('click', function () { RWT.copy(RWD.text(doc), this); }); $('copyDocHtmlBtn').addEventListener('click', function () { RWT.copy(RWD.html(doc), this); }); $('downloadBtn').addEventListener('click', function () { RWD.saveDoc('soglasie-na-rassylku.doc', 'Согласие на получение рекламной рассылки', RWD.html(doc)); }); $('copyHtmlBtn').addEventListener('click', function () { RWT.copy($('checkboxArea').textContent, this); }); var live = RWD.debounce(generate, 300); $('formBody').addEventListener('input', live); $('formBody').addEventListener('change', live); RWD.profile({ name: 'operatorName', inn: 'inn', ogrn: 'ogrn', address: 'address', site: 'siteUrl', email: 'adminEmail' }, 'rwdSaved', generate); RWD.dock('rwdBar', 'rwdHome', 'resultArea', 1000); generate(); } if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init(); })();
Настроим формы и запись согласий

Отдельное согласие на рассылку, двойное подтверждение подписки и ссылка отписки в письмах.

Обсудить проект