Піксель ВК на Бітрікс: старт без втрат при кешуванні
Типова ситуація: ви вставили код пікселя в шаблон, а він не спрацьовує на кешованих сторінках. Або події не передаються після додавання товару в кошик. Ми вирішуємо це завдання під ключ — від встановлення коду до налаштування фіда для динамічного ретаргетингу. Оцінимо ваш проєкт за один день і запропонуємо оптимальне рішення.
Піксель ВКонтакте технічно простіший за 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 груп символів через дефіс. Ми гарантуємо, що після нашого налаштування ці проблеми виключені.







