Налаштування Яндекс.Вебвізора на 1С-Бітрікс

Уявіть: ви налаштували Вебвізор, але сесії не записуються. Консоль браузера рясніє помилками CSP. Знайома ситуація? За 10+ років ми провели понад 500 аудитів Бітрікс-сайтів і в кожному третьому виявили проблеми з Вебвізором. Розповімо, як правильно налаштувати Вебвізор на 1С-Бітрікс, щоб запис сесій
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Налаштування Яндекс.Вебвізора на 1С-Бітрікс
Простий
~1 день

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

Часті запитання

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

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1460
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1019
  • Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    764
  • Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    882
  • Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    809
  • Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1166

Уявіть: ви налаштували Вебвізор, але сесії не записуються. Консоль браузера рясніє помилками CSP. Знайома ситуація? За 10+ років ми провели понад 500 аудитів Бітрікс-сайтів і в кожному третьому виявили проблеми з Вебвізором. Розповімо, як правильно налаштувати Вебвізор на 1С-Бітрікс, щоб запис сесій працював стабільно та без втрати даних. Наша команда накопичила досвід на сотнях проєктів — від невеликих інтернет-магазинів до великих каталогів з мільйонними товарними позиціями.

Чому Вебвізор часто не працює на Бітріксі?

Вебвізор не працює на HTTPS-сайті з неправильними заголовками CSP — запис сесій іде через iframe Яндекса, і браузер блокує його, якщо в Content-Security-Policy не дозволений frame-ancestors. Друга часта причина: тег Метрики вставлений через Google Tag Manager, GTM завантажується асинхронно, вебвізор ініціалізується після того, як користувач уже зробив перші дії — початок сесії втрачається. Третя — AJAX-навігація: без явного виклику ym('hit') після кожного переходу Вебвізор фіксує лише першу сторінку. За нашою статистикою, 70% сайтів з AJAX-навігацією втрачають до 40% сесій через цю помилку.

Як правильно розмістити тег Метрики?

Яндекс вимагає розміщувати тег якомога вище в <head>. У Бітріксі стандартний спосіб — вставка через подію OnBeforeProlog в init.php або безпосередньо в файл прологу /bitrix/templates/ШАБЛОН/header.php.

У /bitrix/php_interface/init.php:

AddEventHandler('main', 'OnBeforeProlog', function() { ob_start(); ?> <!-- Яндекс.Метрика --> <script> (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; var z = m[i],d=e.createElement(t),n=e.getElementsByTagName(t)[0]; d.async=1;d.src=r;d.id='metrika-'; n.parentNode.insertBefore(d,n); z(i,'init', { id: XXXXXXXX, webvisor: true, clickmap: true, trackLinks: true }); })(window, document, 'script', 'https://cdn.jsdelivr.net/npm/yandex-metrika@latest/metrika.js', 'ym'); </script> <!-- /Яндекс.Метрика --> <?php $html = ob_get_clean(); $GLOBALS['APPLICATION']->AddHeadString($html, true); }); 

Або через стандартний компонент bitrix:metrika — він є в модулі fileman, встановлюється з Маркетплейса. Однак наш підхід через OnBeforeProlog надійніший: він гарантує завантаження до будь-якого іншого скрипта. У таблиці нижче — порівняння двох методів.

Параметр Через init.php (наш підхід) Через компонент bitrix:metrika
Контроль завантаження Повний — код вставляється до ob_start Залежить від шаблону, може бути після jquery
CSP-сумісність Налаштовується вручну в init.php Вимагає правки компонента
AJAX-підтримка Потрібен додатковий хендлер Потрібен додатковий хендлер
Рекомендація Для проєктів з кастомними шаблонами Для типових встановлень

Які налаштування CSP потрібні для Вебвізора?

Вебвізор записує екран через <iframe title="Embedded content"> на домені webvisor.com. Якщо на сервері (nginx або через PHP-заголовки) виставлений жорсткий CSP, запис не почнеться — у консолі буде помилка Refused to frame ... because an ancestor violates the following Content Security Policy directive.

Мінімальний набір директив для роботи Вебвізора:

Content-Security-Policy: frame-src 'self' https://webvisor.com; script-src 'self' 'unsafe-inline' https://mc.yandex.ru https://cdn.jsdelivr.net; img-src 'self' data: https://mc.yandex.ru; 

У Бітріксі заголовки можна встановити в /bitrix/.htaccess або в init.php через header() — але тільки до першого виведення HTML. Якщо використовуєте ob_start() у пролозі, це не проблема. Детальніше про директиви CSP читайте на MDN.

Що робити, якщо Вебвізор не бачить AJAX-переходи?

Більшість сучасних шаблонів Бітрікса використовують AJAX-навігацію (BX.ajax, компонент bitrix:main.ajaxlinks). При переході без перезавантаження сторінки Вебвізор не фіксує зміну URL — у записі сесії весь візит виглядає як одна сторінка.

Рішення: викликати ym(XXXXXXXX, 'hit', window.location.href) після кожного AJAX-переходу. У Бітріксі є подія BX.addCustomEvent('onAjaxSuccess', ...) — вішаємо на неї:

BX.addCustomEvent('onAjaxSuccess', function(event) { if (typeof ym !== 'undefined') { ym(XXXXXXXX, 'hit', window.location.href); } }); 

Без цього дані Вебвізора будуть некоректними: всі переходи по каталогу будуть записані як єдиний візит на сторінку входу. Наш досвід показує, що ця проблема зустрічається в 70% сайтів з AJAX-навігацією.

Одного разу ми налаштовували Вебвізор для інтернет-магазину з каталогом на 100 000 товарів. Проблема була в тому, що AJAX-переходи не викликали ym('hit'), і Вебвізор показував лише 1 сторінку за сесію. Після впровадження хендлера запис стала фіксувати до 15 сторінок за візит — це дало повну картину поведінки користувачів.

Як перевірити, що Вебвізор працює?

Після налаштування — перевірити у «Вебвізорі» розділ «Моніторинг». Якщо сесії записуються, але відео чорне — проблема в змішаному контенті (HTTP-ресурси на HTTPS-сайті). Якщо сесії не з'являються взагалі — дивитися Network-вкладку DevTools на запити до mc.yandex.ru/watch/: статус 200 означає, що лічильник працює, але дані ще не оброблені (затримка до 20 хвилин для нових сесій).

Що входить у налаштування Вебвізора під ключ

Ми пропонуємо комплексне налаштування, яке включає:

Етап Дія Результат
1. Аудит Перевірка поточного тега Метрики, CSP, AJAX-навігації Звіт з помилками та рекомендаціями
2. Впровадження Встановлення лічильника в init.php, налаштування CSP, хендлер для AJAX Працюючий Вебвізор з коректним записом
3. Тестування Перевірка в моніторингу, запис тестової сесії Підтвердження коректності
4. Документація Опис виконаних робіт, конфіги, інструкція для підтримки Архітектурна записка

Ми гарантуємо, що після наших робіт Вебвізор буде записувати 100% сесій (за відсутності блокувань браузера). Завдяки 10+ рокам досвіду та сотням реалізованих проєктів ми знаємо всі підводні камені. Якщо ви зіткнулися з проблемами — отримайте безкоштовну консультацію. Зв'яжіться з нами, щоб оцінити терміни вашого проєкту. Замовте налаштування Вебвізора під ключ — ми вирішимо проблеми із записом сесій за 2-3 дні.