Пиксель ВК на Битрикс: старт без потерь при кэшировании
Типовая ситуация: вы вставили код пикселя в шаблон, а он не срабатывает на кэшированных страницах. Или события не передаются после добавления товара в корзину. Мы решаем эту задачу под ключ — от установки кода до настройки фида для динамического ретаргетинга. Оценим ваш проект за один день и предложим оптимальное решение.
Пиксель ВКонтакте технически проще Facebook, но специфика Битрикса создаёт те же проблемы с размещением кода и передачей событий. Сам пиксель — это JavaScript-счётчик с ID вида VK-RTRG-XXXXXXX-XXXXX, который нужно не просто вставить на сайт, а правильно интегрировать с событиями каталога и оформления заказов.
Как установить код пикселя, чтобы он работал при любом кэше?
Код пикселя ВК подключается через <head>. В Битриксе наиболее устойчивый способ — через файл /bitrix/php_interface/init.php с обработчиком события OnEpilog. Это гарантирует вывод кода до закрытия </head> вне зависимости от кэширования компонентов:
AddEventHandler("main", "OnEpilog", function() {
$vkPixelId = COption::GetOptionString("main", "vk_pixel_id", "");
if (!$vkPixelId) return;
?>
<script type="text/javascript">
!function(){var t=document.createElement("script");...}();
VK.Retargeting.Init("<?= htmlspecialchars($vkPixelId) ?>");
VK.Retargeting.Hit();
</script>
<?php
});
ID пикселя храните в b_option через COption::SetOptionString("main", "vk_pixel_id", "VK-RTRG-..."). Не хардкодьте в шаблоне — при переносе на другой домен придётся искать по всем файлам. За 5+ лет мы настроили пиксели на 30+ проектах — этот метод ни разу не подвёл.
Какие события нужны для динамического ретаргетинга?
ВКонтакте поддерживает динамический ретаргетинг для интернет-магазинов. Для его работы нужен фид товаров и события с привязкой к ID товаров из этого фида.
Ключевые события: ViewProduct, AddToCart, InitiateCheckout, Purchase. Каждое событие принимает объект с параметрами:
VK.Retargeting.ProductEvent(pixelId, 'view_product', {
products: [{ id: '123', price: 1490 }],
currency: 'RUB'
});
| Событие | Триггер | Параметры |
|---|---|---|
| ViewProduct | Просмотр карточки товара | product id, price |
| AddToCart | Добавление в корзину | product id, price, quantity |
| InitiateCheckout | Начало оформления | list of products, total |
| Purchase | Успешный заказ | list of products, total, order id |
view_product вешается в template.php компонента bitrix:catalog.element. Данные товара берёте из $arResult — ID из $arResult["ID"], цену из $arResult["PRICES"]["BASE"]["PRICE"]. Учитывайте, что при включённом кэшировании компонента PHP-часть не пересчитывается, но JS-код всё равно выполняется браузером, поэтому событие сработает корректно.
add_to_cart — проблема та же, что и с Facebook: добавление в корзину асинхронное. В стандартном bitrix:catalog.element.buy.ajax после успешного ответа есть колбэк BX.addCustomEvent('onBasketChange', ...). Перехватываете его и вызываете VK-событие. Альтернативно — в bitrix:sale.basket.basket при открытии корзины проверяете изменение количества.
purchase — в компоненте bitrix:sale.order.ajax после завершения заказа доступен JS-объект с данными. Вешайте событие на успешный callback оформления. Сумму заказа получаете из BX.Sale.OrderAjax или из серверной переменной, которую компонент прокидывает в шаблон через $APPLICATION->SetAdditionalCSS.
Настройка фида для динамического ретаргетинга
Без фида динамический ретаргетинг не работает. ВКонтакте принимает фид в формате YML (Яндекс.Маркет) или Google Shopping. В Битриксе модуль catalog умеет генерировать YML-фид через компонент bitrix:catalog.export.yandex.market или через административный раздел «Экспорт товаров» (/bitrix/admin/cat_export.php).
Фид генерируется по расписанию через агенты — таблица b_agent. Для VK нужен отдельный экспортный профиль, так как требования к структуре могут отличаться от Яндекс.Маркета. Создаёте его через CCatalogExport, настраиваете шаблон фида под спецификацию ВКонтакте. В 80% случаев достаточно минимального набора полей: ID, название, цена, ссылка, изображение. Остальные поля (описание, артикул) опциональны.
Что входит в работу по настройке пикселя?
При заказе услуги под ключ мы предоставляем:
- установку кода пикселя в обход кэша через OnEpilog;
- настройку 4 обязательных событий (ViewProduct, AddToCart, InitiateCheckout, Purchase);
- создание и настройку YML-фида с автоматической генерацией;
- проверку передачи событий через DevTools и кабинет ВК;
- документацию с описанием использованных методов и доступов;
- обучение вашего маркетолога работе с пикселем;
- гарантию корректной работы в течение 30 дней.
Свяжитесь с нами — оценим ваш проект за 1 день. Закажите настройку и получите готовый инструмент для ретаргетинга.
Проверка событий и типичные ошибки
Во ВКонтакте нет аналога Facebook Pixel Helper. Проверяйте через «Аудитории» → «Пиксели» в рекламном кабинете — там видна активность за последние 24 часа и статус кода. Для отладки событий используйте console.log в JS перед вызовом VK.Retargeting.ProductEvent и проверяйте сетевые запросы в DevTools — ищите запросы к vk.com/rtrg.
Частая ошибка: пиксель инициализируется, но Hit() не вызывается на SPA-страницах или после AJAX-навигации. Если сайт использует bitrix:main.page.switcher, нужно перевызывать VK.Retargeting.Hit() при смене страницы. Ещё одна — некорректный ID пикселя: проверьте, что он начинается с VK-RTRG- и содержит ровно 5 групп символов через дефис. Мы гарантируем, что после нашей настройки эти проблемы исключены.







