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

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Налаштування Яндекс.Вебвізора на 1С-Бітрікс
Проста
~1 робочий день
Часті питання

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

Етапи розробки

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

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

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

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

Правильне розміщення тега Метрики

Яндекс вимагає розміщувати тег як можна вище у <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, встановлюється з Маркетплейса.

Content-Security-Policy та iframe Вебвізора

Вебвізор записує екран через <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() у прологі, це не проблема.

Вебвізор та SPA/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);
    }
});

Без цього дані Вебвізора будуть некоректними: всі переходи по каталогу будуть записані як єдиний візит на сторінку входу.

Перевірка коректності запису

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