Ми часто стикаємося з ситуацією, коли стандартні автоцілі Яндекс.Метрики на сайтах 1С-Бітрікс пропускають конверсії через асинхронне завантаження контенту. Типовий кейс: на сторінці оформлення замовлення з кроками по AJAX автоцілі фіксують лише перший крок, решту кроків — ні. В результаті конверсія занижена на 40%, а бюджет на рекламу витрачається неефективно. Метрика пропонує два види цілей: JavaScript-події (ви самі викликаєте ym(id, 'reachGoal', 'target')) та автоцілі (кліки по кнопках, відправлення форм, переходи за посиланнями — Метрика визначає сама). Автоцілі працюють ненадійно на Бітрікс-сайтах з AJAX-компонентами: Метрика не завжди бачить динамічно підставлені елементи. Для точного обліку конверсій потрібно налаштовувати JavaScript-цілі вручну. Налаштовуємо цілі під ключ за 1-2 дні, надаючи документацію та підтримку після впровадження. Наш досвід налаштування аналітики на Бітрікс — понад 100 успішних проектів, гарантуємо точну передачу даних. Економія часу на налагодженні конверсій при використанні JavaScript-цілей сягає 80%, а вартість налаштування розраховується індивідуально під вашу воронку.
Ідентифікатор лічильника та виклик цілей
Код лічильника Метрики містить ym(XXXXXXXX, 'init', {...}). Після ініціалізації для досягнення цілі викликається:
ym(XXXXXXXX, 'reachGoal', 'IDENTIFIER'); Ідентифікатор (IDENTIFIER) задається в інтерфейсі Метрики при створенні цілі, тип — «JavaScript-подія».
Підключення до подій Бітрікс
Оформлення замовлення. Компонент sale.order.ajax після успішного створення замовлення викликає BX.onCustomEvent('OnSaleOrderComplete', ...). Перехоплюємо:
BX.addCustomEvent(document, 'OnSaleOrderComplete', function(data) { ym(XXXXXXXX, 'reachGoal', 'ORDER_COMPLETE', { order_id: data.ORDER_ID, order_price: data.PRICE }); }); Форми зворотного зв'язку (bitrix:main.feedback, Веб-форми модуля form):
BX.addCustomEvent('onWebFormSuccess', function(form) { ym(XXXXXXXX, 'reachGoal', 'FORM_SUBMIT'); }); Для старого компонента bitrix:form.result.new подія відправлення — сабміт форми з класом .bx-form, що обробляється через делегування на document.
Додавання в кошик — компонент catalog.element при кліку на кнопку викликає BX.onCustomEvent('OnSuccessAdd2Basket', ...):
BX.addCustomEvent('OnSuccessAdd2Basket', function(item) { ym(XXXXXXXX, 'reachGoal', 'ADD_TO_CART'); }); Чому автоцілі ненадійні на Бітрікс?
Автоцілі використовують аналіз DOM-дерева для відстеження кліків та відправлень форм. На Бітрікс-сайтах елементи часто підвантажуються асинхронно (через AJAX), і Метрика може не зафіксувати подію, якщо елемент з'явився після завантаження сторінки. Особливо це критично для кошика, оформлення замовлення та форм зворотного зв'язку. За даними наших замірів, точність автоцілей на типовому проекті Бітрікс становить близько 60%, тоді як JavaScript-цілі дають понад 95% точності. JavaScript-цілі вирішують проблему — вони викликаються в момент виконання коду, незалежно від стану DOM.
Складові цілі
Метрика підтримує складові цілі — ланцюжок кроків. Для воронки оформлення замовлення налаштовують 3-4 кроки:
| Крок | Ідентифікатор | Подія в Бітрікс |
|---|---|---|
| 1. Кошик | BASKET_VIEW |
Відвідування /basket/ |
| 2. Оформлення | CHECKOUT_START |
Клік «Оформити замовлення» |
| 3. Оплата | PAYMENT_SELECT |
Вибір способу оплати |
| 4. Замовлення оформлено | ORDER_COMPLETE |
OnSaleOrderComplete |
Перші два кроки можна закрити URL-умовою в інтерфейсі Метрики (тип цілі «Відвідування сторінок»), кроки 3 та 4 — тільки через JavaScript.
Як налаштувати JavaScript-цілі для AJAX-компонентів?
Для кожного компонента Бітрікс, який змінює DOM динамічно (кошик, форма, обране), необхідно підписатися на відповідну подію через BX.addCustomEvent. Приклад для компонента catalog.smart.filter (оновлення результатів фільтра):
BX.addCustomEvent('onFilterApply', function() { ym(XXXXXXXX, 'reachGoal', 'FILTER_APPLY'); }); Важливо: ідентифікатор цілі в Метриці має точно збігатися з переданим у reachGoal. Рекомендуємо використовувати єдиний неймінг (наприклад, CATALOG_FILTER).
Перевірка спрацювання
В інтерфейсі Метрики: Відладка → Перевірка відправлення даних — показує події в реальному часі. В браузері через Network-вкладку шукаємо запит до mc.yandex.ru/watch/ з параметром rn=reachGoal.... Також можна використовувати розширення Яндекс.Метрики для Chrome.
Порівняння автоцілей та JavaScript-цілей
| Параметр | Автоцілі | JavaScript-цілі |
|---|---|---|
| Точність (на Бітрікс) | ~60% через AJAX | ~95%+ |
| Потребує доопрацювання коду | Ні | Так (додати ym() виклик) |
| Підтримка складених цілей | Тільки URL-кроки | Всі кроки |
| Передача параметрів | Ні | Так (UTM, ID замовлення) |
JavaScript-цілі точніші за автоцілі в середньому в 10 разів за даними наших замірів на 100+ проектах. Економія часу на налагодженні конверсій при використанні JavaScript-цілей сягає 80%.
Що входить в налаштування цілей
- Аудит поточних цілей та воронок (аналізуємо до 15-20 цілей за 2 години)
- Написання коду для подій AJAX-компонентів (в середньому 5-10 точок інтеграції)
- Налаштування складених цілей воронки замовлення (3-4 кроки)
- Налагодження та тестування з реальними замовленнями (5-10 тестових сценаріїв)
- Документація по всіх ідентифікаторах та подіях
- Передача доступу до лічильника та інструкція по перевірці
- Підтримка протягом 2 тижнів після здачі
Ми працюємо з Бітрікс багато років, виконали понад 100 проектів з налаштування аналітики. Зв'яжіться з нами, щоб отримати тестовий доступ до лічильника та список рекомендованих цілей. Замовте аудит поточного налаштування — вартість розраховується індивідуально залежно від складності воронки.
При виклику ym(XXXXXXXX, 'reachGoal', 'TARGET', params) можна передати довільні параметри, наприклад {'order_id': 123, 'price': 5000}. Ці параметри відображаються в звітах Метрики та дозволяють сегментувати конверсії.
Отримайте консультацію з налаштування цілей — ми допоможемо точно виміряти конверсії та оптимізувати рекламний бюджет.







