Налаштування електронної комерції в Яндекс.Метриці для 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С-Бітрікс

Без даних електронної комерції в Яндекс.Метриці аналітика інтернет-магазину зводиться до підрахунку відвідувань і кліків. Enhanced Ecommerce розкриває повну лійку: від перегляду карточки товару до оплати замовлення, з розбивкою за товарами, брендами та категоріями. Розберемо реалізацію 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 офлайн-конверсій.

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

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

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

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

Звіти за товарами, брендами, категоріями

Після налаштування в Метриці з'являється розділ Електронна комерція зі звітами:

  • Товари — виручка, кількість покупок, середня вартість покупки для кожного товару.
  • Бренди — агрегація за полем brand з dataLayer.
  • Категорії — деревоподібна структура, побудована за полем category (розділювач /).
  • Промокоди та купони — якщо передавати поле coupon у actionField.

Коректність звітів повністю залежить від якості даних у dataLayer. Невідповідні значення id між подіями detail та purchase призведуть до розриву лійки.

Відладка

Відладка Enhanced Ecommerce — найтруднозатратніший етап. Інструменти:

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

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

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

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

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