Налаштування Яндекс.Директ конверсій на 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С-Bitrix

Передача конверсій у Яндекс.Директ — це зв'язка двох інструментів: Яндекс.Метрики (яка реєструє цілі) та самого Директу (який використовує ці цілі для оптимізації ставок). Без коректно налаштованих цілей автоматичні стратегії Директу працюють сліпо, а звіти по конверсіям показують нулі.

Лічильник Метрики та цілі: що повинно бути до налаштування Директу

Конверсії Директу спираються на цілі Метрики, тому спочатку — лічильник. У Bitrix лічильник Метрики додається кількома способами: через модуль bitrix:main.counter у шаблоні, через прямої вставки у header.php або через OnEpilog.

Для коректної роботи цілей критично: лічильник повинен завантажуватися перед спрацьовуванням цільових подій. Використовуйте синхронну інціалізацію через ym(counterId, 'init', {...}) з параметром defer: false для сторінок із формами.

У таблиці b_option зручно зберігати ID лічильника: COption::SetOptionString("main", "ya_metrika_id", "XXXXXXXX"). Тоді при зміні лічильника не потрібно лізти в шаблон.

Цілі у Метриці для e-commerce:

  • JavaScript-ціль order_success — на сторінці спасибо після оформлення замовлення
  • JavaScript-ціль add_to_cart — при додаванні товара в кошик
  • Складна ціль з кроками: перегляд каталогу → картка товара → кошик → оформлення

Передача досягнення цілі з Bitrix

Ціль order_success — найважливіша для Директу. Виклик:

ym(COUNTER_ID, 'reachGoal', 'order_success', {
    order_price: 4900,
    currency: 'RUB'
});

У Bitrix сторінка «Спасибо» — це або окрема сторінка /personal/order/success/, або фінальний крок компонента bitrix:sale.order.ajax. У обох випадках потрібно переконатися, що JS-виклик не задваюється — при перезагрузці сторінки ціль не повинна фіксуватися повторно.

Надійний спосіб: у компоненті bitrix:sale.order.ajax у template.php знайдіть блок з умовою успішного створення замовлення ($arResult["NEED_PAY"] || $arResult["ORDER_ID"]) та додайте виклик Метрики тільки там. Параметри замовлення (order_price) беріть з $arResult["ORDER"]["PRICE"].

Для сторінки /personal/order/success/ — компонент bitrix:sale.order.detail дає доступ до деталей замовлення через $arResult. ID замовлення з URL-параметра + CSaleOrder::GetByID($orderId).

Офлайн-конверсії через API Метрики

Якщо частина замовлень обробляється менеджерами (звонки, заявки без оплати онлайн), стандартного JS-пікселю недостатньо. Яндекс.Метрика підтримує завантаження офлайн-конверсій через API.

У Bitrix це реалізується через обробник події OnSaleOrderStatusUpdate. Коли менеджер переводить замовлення в статус «Виконано», відправте POST-запит на https://api-metrika.yandex.net/management/v1/counter/{counterId}/uploads/client_id:

AddEventHandler("sale", "OnSaleOrderStatusUpdate", function($id, $arFields) {
    if ($arFields["STATUS_ID"] === "F") { // Finished
        // Отримуємо client_id з b_sale_order_props або користувача
        $httpClient = new \Bitrix\Main\Web\HttpClient();
        $httpClient->post($apiUrl, $csvData);
    }
});

client_id Метрики потрібно зберігати при оформленні замовлення — це значення з куки _ym_uid або з JavaScript-методу ym(id, 'getClientID', callback). Зберігайте його у властивість замовлення (b_sale_order_props_value) при створенні.

Зв'язка з Директом: автоматичні стратегії

Після того як цілі працюють та конверсії фіксуються, у Директі переключаєте стратегію на «Оптимізацію конверсій» з метою order_success. Директу потрібно мінімум 10 конверсій за 28 днів для навчання — це важливо врахувати при запуску.

Модуль sale Bitrix при типовому навантаженні не створює затримок для викликів Метрики, але якщо на сайті агресивне кеширування через BXCache з TTL > 3600, перевіртье, що сторінка спасибо не кешується — компонент bitrix:sale.order.ajax має CACHE_TYPE = 'N' за замовчуванням, але кастомні шаблони можуть це ломати.