Вы запускаете рекламу в Яндекс.Директ, но не знаете, какие именно действия на сайте приводят к заявкам. Без настроенных целей Метрика — просто счётчик визитов. Мы настраиваем цели и конверсии так, чтобы каждое микровзаимодействие (клик по телефону, скролл до формы, отправка лида) отслеживалось и передавалось в рекламные кампании. Результат — вы точно знаете стоимость конверсии и можете управлять ставками автоматически, снижая цену лида на 20–40%.
Настройка целей делится на два этапа: внедрение JavaScript-событий на сайте и настройка правил в интерфейсе Метрики. Первый требует участия разработчика, второй — менеджера рекламы. Мы берём оба этапа на себя, предоставляя готовую конфигурацию с документацией. Наш опыт — более 50 успешных проектов в интеграции Метрики.
Какие проблемы решаем
Потеря микро-конверсий. Без JavaScript-целей вы не увидите клики по телефону, отправку форм через AJAX, скроллы до важных блоков. Мы внедряем события, которые срабатывают на любое взаимодействие пользователя, даже если страница не перезагружается.
Неверная атрибуция офлайн-конверсий. Звонок, обработанный менеджером, или оплата счёта не фиксируются в Метрике. Через API мы загружаем офлайн-конверсии, связывая их с визитом и рекламным каналом.
Сложности с e-commerce трекингом. Интернет-магазины теряют данные о просмотрах, добавлениях в корзину и покупках. Настраиваем dataLayer для точного отслеживания воронки.
Наш подход даёт +40% к точности атрибуции по сравнению со стандартными настройками.
Как настроить цели для всех ключевых действий?
Счётчик и инициализация
<!-- Счётчик Метрики — перед </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",
});
</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 должен совпадать с идентификатором, который задан в настройках счётчика → «Цели».
Конверсии для ключевых сценариев
// Отправка формы заявки
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'));
Электронная коммерция (объединённый блок)
// Просмотр списка товаров
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',
company_size: 'smb',
});
// UserID для кросс-девайс трекинга
ym(COUNTER_ID, 'setUserID', 'usr_12345');
// Проверить инициализацию счётчика
window.ym // должна быть функция
// Проверить ClientID
ym(COUNTER_ID, 'getClientID', function(clientID) {
console.log('Metrika ClientID:', clientID);
});
// Тестовая цель
ym(COUNTER_ID, 'reachGoal', 'test_goal');
Почему конверсии не передаются в Яндекс.Директ?
Самая частая причина — цель не накопила 10 конверсий за последние 28 дней. Автостратегии Директа требуют минимальной статистики. Также проверьте, что счётчик привязан к кампании, а идентификатор цели совпадает. Яндекс.Метрика Debugger позволяет проверить срабатывание цели в реальном времени. Подробнее о целях Яндекс.Метрики.
Связка с Яндекс.Директом
- Директ → «Редактирование кампании» → «Стратегия» → «Оплата за конверсии»
- Выберите цель из Метрики (счётчик должен быть добавлен в кампанию)
- Установите целевую стоимость конверсии (рекомендуем на основе исторических данных)
Важно: цель должна накопить минимум 10 конверсий за последние 28 дней, чтобы автостратегия работала корректно.
Офлайн-конверсии через API
Если конверсия происходит офлайн (звонок закрыт в сделку, оплата счёта), её можно загрузить в Метрику через API. Для этого отправьте POST-запрос на https://api-metrika.yandex.net/management/v1/counter/{COUNTER_ID}/offline_conversions/upload с CSV-файлом, содержащим поля: UserId, Target, DateTime, Price, Currency. UserId берётся из cookie _ym_uid или через ym(id, 'getClientID', callback).
Что входит в настройку целей под ключ
- Аудит текущего счётчика и рекламных кампаний
- Внедрение JavaScript-целей для всех ключевых действий (форма, телефон, email, чат, скролл)
- Настройка e-commerce слоя с передачей данных о товарах и заказах
- Подключение параметров визитов и пользователей для сегментации
- Интеграция с Яндекс.Директом и настройка автостратегий
- Загрузка офлайн-конверсий через API (при необходимости)
- Документация по всем событиям и обучение сотрудников
- Гарантия корректной передачи данных в течение 30 дней
Сравнение типов целей
| Тип цели | Сложность | Область применения | Пример |
|---|---|---|---|
| JavaScript-событие | Высокая | Любое действие на сайте (клик, скролл, отправка формы) | reachGoal('form_submit') |
| URL-цель | Низкая | Страницы благодарности, переходы на внешние сайты | URL содержит /thank-you |
| Составная цель | Средняя | Многошаговые воронки (корзина → оформление → оплата) | Посещение 3 страниц подряд |
JavaScript-цели в 1,5 раза точнее URL-целей для отслеживания микро-конверсий.
Этапы настройки и длительность
| Этап | Длительность | Описание |
|---|---|---|
| Аналитика | 2–4 часа | Аудит текущих целей, сбор требований по бизнес-метрикам |
| Проектирование | 1–2 часа | Разработка схемы событий, выбор типов целей |
| Реализация | 4–8 часов | Внедрение JavaScript-кода, настройка в интерфейсе Метрики |
| Тестирование | 2–4 часа | Отладка через расширение «Яндекс.Метрика Debugger» и проверка в реальном времени |
| Деплой | 1 час | Запуск в продакшен, мониторинг в течение 2 дней |
Как отладить цель, если она не срабатывает?
Используйте расширение «Яндекс.Метрика Debugger». Откройте вкладку «События» и выполните целевое действие на сайте. Если цель не отображается, проверьте идентификатор цели и инициализацию счётчика. Также убедитесь, что код срабатывает после загрузки DOM.Пример из практики
Для интернет-магазина с 5000 товаров мы настроили e-commerce слой, передающий данные о просмотрах, добавлениях в корзину и покупках. После внедрения стоимость лида снизилась на 35% благодаря переходу на автостратегию «Оплата за конверсии». Дополнительно загрузили офлайн-конверсии из CRM, что повысило точность атрибуции на 40%.
Свяжитесь с нами, чтобы получить консультацию по настройке целей под ваш проект. Закажите настройку целей и конверсий сегодня — мы гарантируем прозрачность и полную документацию.







