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

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

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Настройка целей и конверсий в Яндекс.Метрике
Средняя
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1214
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    852
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1041
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    823
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    815

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

Метрика поддерживает два типа целей: автоматические (визиты с глубиной, звонки, формы) и ручные (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');

// Цель с параметрами (params)
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 день.