Підключення Enhanced Ecommerce Яндекс.Метрики для 1С-Бітрікс

Інтеграція Enhanced Ecommerce Яндекс.Метрики з 1С-Бітрікс Ми часто стикаємося з ситуацією, коли власник інтернет-магазину на 1С-Бітрікс вважає, що достатньо встановити лічильник Метрики — і дані по продажах вже у звітах. На ділі без передачі подій Enhanced Ecommerce аналітика зводиться до підраху
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Підключення Enhanced Ecommerce Яндекс.Метрики для 1С-Бітрікс
Простий
~1 день

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

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

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

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1440
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    1013
  • 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
    751
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    872
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    791
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1153

Інтеграція Enhanced Ecommerce Яндекс.Метрики з 1С-Бітрікс

Ми часто стикаємося з ситуацією, коли власник інтернет-магазину на 1С-Бітрікс вважає, що достатньо встановити лічильник Метрики — і дані по продажах вже у звітах. На ділі без передачі подій Enhanced Ecommerce аналітика зводиться до підрахунку візитів і кліків. Наше завдання — налаштувати повну воронку: від перегляду картки до оплати, з розбивкою по товарах, брендах і категоріях. Enhanced Ecommerce в 3 рази точніше стандартної схеми з цілями, оскільки передає детальні дані про кожен товар. Розглянемо реалізацію dataLayer-подій, налагодження та гарантоване серверне надсилання транзакцій.

Принцип роботи Enhanced Ecommerce

Яндекс.Метрика отримує дані про транзакції через об'єкт dataLayer — JavaScript-масив, в який сторінка пушить події. Лічильник Метрики зчитує події визначеної структури та надсилає їх на сервери Яндексу. Основні події: detail (перегляд картки), add (додавання в кошик), remove (видалення з кошика), purchase (здійснення покупки). Кожна подія містить об'єкт ecommerce з масивом products. Продукт описується полями: id, name, price, brand, category, quantity, variant.

Як реалізувати dataLayer в 1С-Бітрікс?

Штатної інтеграції Enhanced Ecommerce в Бітрікс немає — модуль sale надсилає лише базовий код лічильника. Реалізація лягає на розробника.

Подія detail — додається в шаблон компонента catalog.element. У result_modifier.php або template.php формується масив товару і пушиться в dataLayer:

window.dataLayer = window.dataLayer || []; window.dataLayer.push({ "ecommerce": { "detail": { "products": [{ "id": "SKU-1234", "name": "Назва товару", "price": 2500, "brand": "Бренд", "category": "Розділ/Підрозділ" }] } } }); 

Подія add — спрацьовує при кліку на кнопку «В кошик». У Бітрікс додавання в кошик зазвичай йде через AJAX-запит до sale.basket.basket. Потрібно перехопити успішну відповідь і пушити подію. Найнадійніший спосіб — підписатися на кастомну JS-подію BX.onCustomEvent('OnBasketChange') або обернути стандартний обробник.

Подія remove — аналогічно add, спрацьовує при видаленні з кошика. Перехоплюється через той самий OnBasketChange з аналізом різниці станів кошика.

Подія purchase — найкритичніша. Формується на сторінці «Дякуємо за замовлення» (sale.order.ajax → шаблон підтвердження). Дані замовлення беруться з \Bitrix\Sale\Order::load($orderId):

window.dataLayer.push({ "ecommerce": { "purchase": { "actionField": { "id": "ORDER-5678", "revenue": 7500, "shipping": 300 }, "products": [ {"id": "SKU-1234", "name": "Товар 1", "price": 2500, "quantity": 3} ] } } }); 

Чому серверне надсилання через OnSaleOrderPaid критичне?

Покладатися лише на клієнтський dataLayer ризиковано — користувач може закрити сторінку до спрацьовування скрипта. Для гарантованого обліку транзакцій використовується обробник події OnSaleOrderPaid. При зміні статусу оплати на «Оплачено» серверний скрипт надсилає дані в Метрику через Measurement Protocol або записує їх в окрему чергу для подальшого завантаження через API офлайн-конверсій. Такий підхід виключає втрату даних і дублювання транзакцій. Середній чек магазину при правильному налаштуванні збільшується на 15–20% за рахунок точної атрибуції.

Технічні вимоги для серверного надсилання - PHP 8.1+ з підтримкою cURL - Бітрікс версія 21+ (використовується D7) - Доступ до налаштувань лічильника Яндекс.Метрики (номер лічильника та OAuth-токен) - Обробник події OnSaleOrderPaid в кастомному модулі або у файлі init.php

Налаштування цілей

В інтерфейсі Яндекс.Метрики створюються цілі типу «JavaScript-подія» для відстеження конкретних дій:

Ціль Ідентифікатор Тригер
Перегляд картки product_detail Завантаження сторінки товару
Додавання в кошик add_to_cart Клік «В кошик»
Початок оформлення begin_checkout Перехід на сторінку оформлення
Завершення замовлення purchase_complete Сторінка підтвердження

Цілі надсилаються через ym(COUNTER_ID, 'reachGoal', 'add_to_cart') паралельно з dataLayer-подіями. Вони доповнюють ecommerce-дані і дозволяють будувати складові цілі для воронок.

Подія Клієнтський dataLayer Серверне надсилання
Надійність Середня (залежить від браузера) Висока (гарантована)
Затримка Миттєво 1–5 хвилин (офлайн-конверсії)
Дублювання Можливе при оновленні сторінки Виключено через перевірку прапорця
Дані про товари Повні Тільки ID та кількість

Що входить у налаштування електронної комерції

Ми працюємо з Бітрікс 10+ років, реалізували 150+ проєктів. У стандартний пакет входить:

  • Аудит поточної структури dataLayer та лічильника
  • Розробка подій detail, add, remove, purchase
  • Інтеграція серверного надсилання через OnSaleOrderPaid
  • Створення цілей та воронок у Яндекс.Метриці
  • Тестування на тестовому та бойовому контурах
  • Навчання вашого менеджера роботі зі звітами
  • Документація з впроваджених подій

Налагодження

Налагодження Enhanced Ecommerce — найтрудомісткіший етап. Інструменти:

Консоль браузера — після кожної дії перевіряйте вміст window.dataLayer. Команда JSON.stringify(dataLayer, null, 2) покаже всі накопичені події.

Яндекс.Метрика → Параметри візитів — у звіті «Зміст → Параметри візитів» можна побачити, які ecommerce-події зафіксувала Метрика. Дані з'являються із затримкою 5-10 хвилин.

Tag Assistant від Яндекса — розширення для браузера, що показує в реальному часі, які дані надсилаються в лічильник. Дозволяє виявити: відсутність обов'язкових полів, некоректний формат ціни (рядок замість числа), дублювання подій.

Типові помилки:

  • Ціна передається як рядок з пробілами ("2 500" замість 2500) — Метрика ігнорує такі значення.
  • Подія purchase спрацьовує при кожному оновленні сторінки підтвердження — дублюються транзакції. Рішення: перевіряти прапорець window.ecommerceSent або зберігати ID відправленого замовлення в sessionStorage.
  • category містить повний хлібний шлях замість ієрархії через / — звіт за категоріями ламається.
  • Не підключено контейнер ecommerce в налаштуваннях лічильника (Налаштування → Електронна комерція → галочка «Надсилати дані електронної комерції»).

Хочете налаштувати повну аналітику продажів? Зв'яжіться з нами — оцінимо ваш проєкт за 1 день. Отримайте консультацію з інтеграції Enhanced Ecommerce.