Когда человек кликает по вашей рекламе, он уже готов задать вопрос или уточнить детали. Но если форма заявки длинная, кнопка «Позвонить» спрятана, а до менеджера не добраться в пару касаний — вы теряете часть трафика.
Поэтому на этапе подготовки сайта к запуску рекламы стоит добавить простой, но крайне полезный элемент — плавающий виджет связи, который открывается из любого места страницы.

Что это такое
В правом нижнем углу сайта появляется аккуратная белая кнопка. При нажатии она раскрывается в четыре кружка:
- 💬 Telegram
- 📞 Viber
- ☎️ Звонок
Пользователь сам выбирает удобный способ связи — в одно касание открывается чат или номер телефона.
Такой виджет:
- повышает конверсию сайта с контекстной рекламы, особенно на мобильных устройствах;
- убирает лишние шаги между клиентом и менеджером;
- работает бесплатно, без сторонних сервисов, лицензий и видимых логотипов;
- совместим с любыми сайтами: лендинги, WordPress, Tilda, MODX и т.д.
Почему это важно для контекстной рекламы


Контекстная реклама приводит людей с конкретным запросом — и они хотят ответ здесь и сейчас. Даже если форма обратной связи настроена, часть пользователей всё равно предпочитает писать в мессенджере.
Простой пример:
человек ищет «клининг Минск», переходит на ваш лендинг и видит кнопку Telegram. Он жмёт — и уже через минуту пишет вам напрямую. Без потери времени, без ожидания звонка.
Такие детали сильно влияют на итоговую стоимость лида. Иногда добавление одного виджета снижает CPL (стоимость обращения) на 20–30%.
Как установить. Инструкция по шагам.
Виджет полностью на чистом коде: HTML + CSS + JS.
Не требует регистрации, сторонних скриптов или плагинов.
Всё, что нужно:
- Скопировать HTML-блок перед закрывающимся тегом
</body>. - Подключить CSS и JS-файлы.
- Указать свои ссылки: Telegram, Viber, WhatsApp, телефон.
- Заменить иконки (если нужно) — можно поставить любые SVG или PNG.
Через 2–3 минуты всё готово.
Код HTML
Скопировать и вставить перед закрывающимся тегом </body>
<!-- Contact FAB -->
<div class="contact-fab" id="contactFab" aria-live="polite">
<!-- Главная кнопка -->
<button class="fab-btn" id="fabToggle" aria-expanded="false" aria-controls="fabList" aria-label="Открыть контакты">
<img src="img/chat.gif" alt="Открыть контакты" width="28" height="28" loading="lazy" />
</button>
<!-- Список кнопок -->
<div class="fab-list" id="fabList">
<!-- Telegram -->
<a class="fab-item" href="https://t.me/YOUR_TELEGRAM" target="_blank" rel="noopener" title="Telegram" aria-label="Написать в Telegram">
<img src="img/tg.png" alt="Telegram" width="28" height="28" loading="lazy" />
</a>
<!-- Viber -->
<a class="fab-item" href="viber://chat?number=%2B375291112233" target="_blank" rel="noopener" title="Viber" aria-label="Написать в Viber">
<img src="img/viber.png" alt="Viber" width="28" height="28" loading="lazy" />
</a>
<!-- WhatsApp -->
<a class="fab-item" href="https://wa.me/375291112233" target="_blank" rel="noopener" title="WhatsApp" aria-label="Написать в WhatsApp">
<img src="img/whatsapp.png" alt="WhatsApp" width="28" height="28" loading="lazy" />
</a>
<!-- Звонок -->
<a class="fab-item" href="tel:+375291112233" title="Позвонить" aria-label="Позвонить">
<img src="img/call-in.png" alt="Звонок" width="28" height="28" loading="lazy" />
</a>
</div>
</div>
<!-- /Contact FAB -->
<!-- Подключение файлов -->
<link rel="stylesheet" href="css/contact-widget.css">
<script src="js/contact-widget.js" defer></script>
Код CSS
Создайте файл CSS с именем contact-widget.css по пути: имя-вашего-сайта.рф/css
Или вставьте код в тело сайта между <style>код</style>
:root{
--fab-size: 56px; /* размер главной кнопки */
--item-size: 48px; /* размер дочерних кнопок */
--gap: 10px; /* расстояние между кружками */
--corner: 20px; /* отступ от края экрана */
--bg: #ffffff; /* фон кружков */
--shadow: 0 8px 24px rgba(0,0,0,.2);
--z: 9999; /* поверх почти всего */
}
/* Контейнер */
.contact-fab{
position: fixed;
right: var(--corner);
bottom: var(--corner);
width: var(--fab-size);
height: var(--fab-size);
z-index: var(--z);
font-family: system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
}
/* Кнопки-кружки */
.fab-btn, .fab-item{
display: grid;
place-items: center;
border-radius: 50%;
background: var(--bg);
border: none;
cursor: pointer;
outline: none;
box-shadow: var(--shadow);
transition: transform .2s ease, opacity .2s ease, visibility .2s ease;
-webkit-tap-highlight-color: transparent;
}
.fab-btn{
width: var(--fab-size);
height: var(--fab-size);
}
.fab-btn img{ width: 60%; height: 60%; }
.fab-list{
position: absolute;
right: 0;
bottom: calc(var(--fab-size) + var(--gap));
display: grid;
gap: var(--gap);
justify-items: end;
pointer-events: none; /* пока скрыто — не ловим клики */
}
.fab-item{
width: var(--item-size);
height: var(--item-size);
opacity: 0;
visibility: hidden;
transform: translateY(8px) scale(.96);
pointer-events: auto;
}
.contact-fab.open .fab-item{
opacity: 1;
visibility: visible;
transform: translateY(0) scale(1);
}
/* Лёгкая ступенчатая задержка */
.fab-item:nth-child(1){ transition-delay: 40ms; }
.fab-item:nth-child(2){ transition-delay: 80ms; }
.fab-item:nth-child(3){ transition-delay: 120ms; }
.fab-item:nth-child(4){ transition-delay: 160ms; }
/* Нажатие */
.fab-btn:active, .fab-item:active{ transform: scale(.96); }
/* Фокус (доступность) */
.fab-btn:focus-visible, .fab-item:focus-visible{
outline: 2px solid #3b82f6;
outline-offset: 2px;
}
/* Анимации можно отключить системно */
@media (prefers-reduced-motion: reduce){
.fab-btn, .fab-item{ transition: none !important; }
}
/* На очень узких экранах — чуть компактнее */
@media (max-width: 380px){
:root{
--fab-size: 52px;
--item-size: 44px;
--corner: 16px;
}
}
Код JS
Создайте файл JS с именем contact-widget.js по пути: имя-вашего-сайта.рф/js
Или вставьте код в тело сайта между <script>код</script>
;(function () {
var root = document.getElementById('contactFab');
if (!root) return;
var toggle = document.getElementById('fabToggle');
var list = document.getElementById('fabList');
function openMenu() {
root.classList.add('open');
if (toggle) {
toggle.setAttribute('aria-expanded', 'true');
toggle.setAttribute('aria-label', 'Закрыть контакты');
}
}
function closeMenu() {
root.classList.remove('open');
if (toggle) {
toggle.setAttribute('aria-expanded', 'false');
toggle.setAttribute('aria-label', 'Открыть контакты');
}
}
if (toggle) {
toggle.addEventListener('click', function (e) {
e.stopPropagation();
root.classList.contains('open') ? closeMenu() : openMenu();
});
}
// Клик вне виджета — закрыть
document.addEventListener('click', function (e) {
if (!root.contains(e.target)) closeMenu();
});
// ESC — закрыть
document.addEventListener('keydown', function (e) {
if (e.key === 'Escape') closeMenu();
});
// Защита от "ловли" табом скрытых кнопок
function syncTabIndex() {
var items = root.querySelectorAll('.fab-item');
var isOpen = root.classList.contains('open');
items.forEach(function (el) {
el.tabIndex = isOpen ? 0 : -1;
});
}
// Синхронизируем при открытии/закрытии
var observer = new MutationObserver(syncTabIndex);
observer.observe(root, { attributes: true, attributeFilter: ['class'] });
syncTabIndex();
})();
Картинки
Скачайте картинки и поместите в папку сайта img/
https://disk.yandex.by/d/HN85zjpNWaZJ_w
Что вы получаете
✅ Простую точку контакта в один клик.
✅ Единый стиль с сайтом (цвет, размер, отступы можно подстроить).
✅ Бесплатную интеграцию без зависимостей.
✅ Улучшение поведения пользователей: больше обращений, меньше отказов.
Если вы готовите сайт к контекстной рекламе — не оставляйте посетителя без быстрого способа написать вам.
Маленькая кнопка в углу способна вернуть десятки клиентов, которых раньше вы просто теряли.







