Налаштування цілей і конверсій у Яндекс.Метриці

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.
Розробка та обслуговування будь-яких видів сайтів:
Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Налаштування цілей і конверсій у Яндекс.Метриці
Середня
~1 робочий день
Часті питання
Наші компетенції:
Етапи розробки
Останні роботи
  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Настройка цілей та конверсій у Яндекс.Метриці

Метрика підтримує два типи цілей: автоматичні (відвідування з глибиною, дзвінки, форми) та ручні (JavaScript-события). Для реклами в Директі цілі використовуються у стратегіях автоматичного управління ставками — правильна настройка напрямку впливає на вартість ліда.

Лічильник та ініціалізація

<!-- Лічильник Метрики — перед </head> -->
<script type="text/javascript">
(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
m[i].l=1*new Date();
for(var j=0;j<document.scripts.length;j++){if(document.scripts[j].src===r){return;}}
k=e.createElement(t);a=e.getElementsByTagName(t)[0];k.async=1;k.src=r;a.parentNode.insertBefore(k,a)})
(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");

ym(COUNTER_ID, "init", {
    clickmap: true,
    trackLinks: true,
    accurateTrackBounce: true,
    webvisor: true,          // запис сесій
    ecommerce: "dataLayer",  // назва масиву для e-commerce даних
});
</script>

<noscript>
<div><img src="https://mc.yandex.ru/watch/COUNTER_ID" style="position:absolute; left:-9999px;" alt=""/></div>
</noscript>

COUNTER_ID — числовий ID лічильника з налаштувань Метрики.

Типи цілей

JavaScript-подія (найбільш гнучкий тип)

// Проста ціль
ym(COUNTER_ID, 'reachGoal', 'GOAL_IDENTIFIER');

// Ціль з параметрами
ym(COUNTER_ID, 'reachGoal', 'form_submitted', {
    form_type: 'contact',
    page: window.location.pathname,
    has_phone: true,
});

// Ціль з ціною (для розрахунку ROI в Директі)
ym(COUNTER_ID, 'reachGoal', 'purchase', {
    order_id: 'ORDER-789',
    revenue: 14500,
});

GOAL_IDENTIFIER повинен совпадати з ідентифікатором, який задано в налаштуваннях лічильника → «Цілі».

Настройка цілі в інтерфейсі Метрики

  1. Лічильник → «Цілі» → «Додати ціль»
  2. Тип: «JavaScript-подія»
  3. Ідентифікатор: form_submitted (той же, що у коді)
  4. Ціна (опціонально): фіксована або з параметрів события

Ціль за URL (для сторінок благодарності)

Тип: Посещення сторінок
URL містить: /thank-you

Не потребує JS — працює автоматично при заході на сторінку.

Конверсії для ключевих сценаріїв

// Відправка форми заявки
document.getElementById('lead-form').addEventListener('submit', function() {
    ym(COUNTER_ID, 'reachGoal', 'lead_form_submit', {
        form_location: this.dataset.location ?? 'unknown',
    });
});

// Клік по номеру телефона
document.querySelectorAll('a[href^="tel:"]').forEach(link => {
    link.addEventListener('click', () => {
        ym(COUNTER_ID, 'reachGoal', 'phone_click', {
            phone: link.href.replace('tel:', ''),
            page: window.location.pathname,
        });
    });
});

// Клік по email
document.querySelectorAll('a[href^="mailto:"]').forEach(link => {
    link.addEventListener('click', () => {
        ym(COUNTER_ID, 'reachGoal', 'email_click');
    });
});

// Відкриття чату
document.getElementById('chat-button').addEventListener('click', () => {
    ym(COUNTER_ID, 'reachGoal', 'chat_opened');
});

// Прокрутка сторінки до блока з формою
const observer = new IntersectionObserver((entries) => {
    entries.forEach(entry => {
        if (entry.isIntersecting) {
            ym(COUNTER_ID, 'reachGoal', 'form_visible');
            observer.disconnect();
        }
    });
}, { threshold: 0.5 });

observer.observe(document.querySelector('#contact-section'));

Електронна комерція

Метрика підтримує e-commerce через dataLayer. Потрібно задати назву масиву в ініціалізації лічильника (ecommerce: "dataLayer").

// Перегляд списку товарів
dataLayer.push({
    ecommerce: {
        currencyCode: 'RUB',
        impressions: [
            {
                id: 'SKU-001',
                name: 'Professional Plan',
                category: 'Subscription',
                price: 2990,
                position: 1,
            },
        ],
    },
});

// Додавання у кошик
dataLayer.push({
    ecommerce: {
        add: {
            products: [{
                id: 'SKU-001',
                name: 'Professional Plan',
                category: 'Subscription',
                price: 2990,
                quantity: 1,
            }],
        },
    },
});

// Покупка
dataLayer.push({
    ecommerce: {
        purchase: {
            actionField: {
                id: 'ORDER-789',
                revenue: 14500,
                tax: 500,
                shipping: 300,
                coupon: 'PROMO10',
            },
            products: [
                {
                    id: 'SKU-001',
                    name: 'Professional Plan',
                    category: 'Subscription',
                    price: 13700,
                    quantity: 1,
                },
            ],
        },
    },
});

Параметри відвідувань та користувачів

Параметри дозволяють сегментувати аудиторію у звітах:

// Параметри відвідування (привязуються до конкретного відвідування)
ym(COUNTER_ID, 'params', {
    visit_params: {
        source_form: 'popup',
        ab_variant: 'B',
        user_type: 'new',
    },
});

// Параметри користувача (зберігаються між відвідуваннями)
ym(COUNTER_ID, 'userParams', {
    UserID: 'usr_12345',
    plan: 'pro',
    registration_date: '2024-01-15',
    company_size: 'smb',
});

// UserID для крос-девайс трекінгу
ym(COUNTER_ID, 'setUserID', 'usr_12345');

Лінковка з Яндекс.Директом

Для автоматичних стратегій Директа:

  1. Директ → «Редагування кампанії» → «Стратегія» → «Оплата за конверсії»
  2. Вибрати ціль з Метрики (лічильник повинен бути додано у кампанію)
  3. Встановити цільову вартість конверсії

Важливо: ціль повинна накопити мінімум 10 конверсій за останні 28 днів, щоб автостратегія працювала коректно.

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

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

# Завантаження офлайн-конверсій
curl -X POST \
  'https://api-metrika.yandex.net/management/v1/counter/COUNTER_ID/offline_conversions/upload' \
  -H 'Authorization: OAuth YOUR_TOKEN' \
  -H 'Content-Type: text/csv' \
  --data-binary $'UserId,Target,DateTime,Price,Currency\nClientId123,purchase,2024-01-15T14:30:00,25000,RUB'

Поля:

  • ClientId — з cookie _ym_uid або через ym(id, 'getClientID', callback)
  • Target — ідентифікатор цілі
  • DateTime — ISO 8601
  • Price — ціна конверсії

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

// Перевірити ініціалізацію лічильника
window.ym  // повинна бути функція

// Отримати ClientID
ym(COUNTER_ID, 'getClientID', function(clientID) {
    console.log('Metrika ClientID:', clientID);
});

// Тестова ціль — повинна з'явитись у Метриці → Відладка
ym(COUNTER_ID, 'reachGoal', 'test_goal');

Розширення «Яндекс.Метрика Debugger» для Chrome відображає всі hits у панелі DevTools з деталями.

Затримка даних у звітах Метрики — до 2 годин. У розділі «Відладка» дані у реальному часі.

Строки

Встановлення лічильника, настройка 4–6 цілей у коді та інтерфейсі — 1 день. Підключення e-commerce та параметрів відвідувань — 4–6 годин. Настройка офлайн-конверсій та інтеграція з Директом — ще 1 день.