Приветствую, Хабр! В прошлых двух статьях (тык 1 и тык 2) я рассмотрел варианты кастомизации Целей Яндекс Метрики, когда мы начинаем собирать не просто факт отправки, например, формы, но и смысл а еще и возможность досылать срабатывания целей произошедшие уже офлайн. В сумме это уже поможет улучшить точность вашей рекламы в том же Директе на +60-65%. А что нам дате точность? Чаще всего снижение CPC и CPA/ Сегодня же расскажу о, так называемом GOD Mode Метрики, когда любой чих можно превратить в нужное нам событие и отправить его в Метрику, к тому же оно еще и не потеряется, как офлайн-конверсия.

Я более 10 лет занимаюсь аналитикой, SEO и управлением командами в digital-маркетинге. А в своем Телеграм канале пишу еще больше про всякое из реального маркетинга. Консультирую по аналитике web-проектов и настройке инструментов маркетинга, помогаю проводить технические собеседования специалистов по различным типам трафика.
Что это такое
Measurement Protocol - это способ отправлять визиты и цели напрямую в Метрику через HTTP-запросы, минуя браузер пользователя. По сути, вы можете эмулировать посещения сайта с любыми параметрами: источник трафика, устройство, тип визита и даже цели, которые сработали. Это дает полную свободу для интеграции данных из внешних систем или восполнения пробелов в аналитике.
Когда использовать
Такой подход полезен, когда нужно импортировать данные из других систем аналитики, воссоздавать утерянные визиты при падении сайта или генерировать тестовые данные для отладки отчётов в боевой Метрике. Другими словами, это инструмент для контроля данных и интеграции, а не способ «накрутки» показателей.
Ограничения
Для работы с Measurement Protocol важно понимать структуру запроса и параметры, которые Метрика принимает. Любая ошибка может испортить статистику, если тестовые визиты отправляются в реальный счетчик. Массовая фальсификация визитов крайне нежелательна: счетчик может быть заблокирован.
Пример кода (Python)
Представим кейс: сайт потерял данные о визитах за выходные, но CRM хранит информацию о действиях пользователей. Нужно восстановить визиты и передать цели в Метрику.
import requests
import json
from datetime import datetime
# Токен и ID счётчика
TOKEN = "ваш_oauth_токен"
COUNTER_ID = "12345678"
# Пример данных визита
visits = [
{
"client_id": "1234567890",
"user_id": "user_987",
"timestamp": "2025-08-18T14:30:00",
"goals": [
{"goal_id": "signup_form", "params": {"plan": "premium"}},
{"goal_id": "newsletter", "params": {"source": "CRM"}}
],
"source": "email_campaign",
"device": "desktop"
}
]
url = f"https://api-metrika.yandex.net/management/v1/counter/{COUNTER_ID}/visits/upload"
for visit in visits:
payload = {
"client_id": visit["client_id"],
"user_id": visit["user_id"],
"timestamp": visit["timestamp"],
"goals": visit["goals"],
"source": visit["source"],
"device": visit["device"]
}
response = requests.post(url, headers={"Authorization": f"OAuth {TOKEN}"},
data=json.dumps(payload))
print(response.status_code, response.json())
В этом примере создаем визит с двумя целями и указываем источник и устройство.
Где смотреть результат
После отправки виртуальных визитов отчеты по целям и визитам будут видны в Метрике точно так же, как и для обычных визитов пользователя. Основные места:
Отчеты → Цели → Параметры целей — здесь можно увидеть все цели с переданными параметрами.
Визиты и источники трафика — новые виртуальные визиты появляются в стандартных отчётах по визитам, источникам и устройствам.
Таким образом маркетолог получает полноценные данные, даже если реальные визиты были потеряны или пришли из сторонних систем.
Мини-кейс: заказ из Bitrix24 и виртуальные визиты
Компания продает онлайн- и офлайн-товары, а все заявки хранятся в CRM Bitrix24. Проблема: стандартная интеграция с Яндекс.Метрикой в Bitrix24 ограничена - стандартные лиды и сделки криво доходят в отчёты, со сторонними интеграциями та же проблема, бывает, что сделки перепрыгивают статусы чаще чем успевают отправиться с нужных статусов в метрику. Решение: использовать Measurement Protocol, чтобы эмулировать визит и передавать цели с параметрами напрямую в Метрику.
Пример сценария:
Пользователь оставил заявку через форму на сайте или менеджер добавил заказ вручную в битрикс24.
-
Скрипт формирует виртуальный визит и отправляет несколько целей:
lead_created — факт создания лида, с параметрами источника, суммы и типа товара.
deal_closed — факт закрытия сделки, с параметрами суммы, категории и менеджера.
Чтобы не портить статистику боевого счетчика, тестовые визиты можно помечать отдельным параметром test=true и потом исключать их из основных отчётов или отправлять в отдельный тестовый счётчик.
Пример кода (Python)
import requests
import json
from datetime import datetime
TOKEN = "ваш_oauth_токен"
COUNTER_ID = "12345678" # боевой счётчик
TEST_COUNTER_ID = "87654321" # тестовый счётчик
# Пример данных из Bitrix24
orders = [
{
"client_id": "1234567890",
"user_id": "user_987",
"timestamp": "2025-08-18T15:00:00",
"goals": [
{"goal_id": "lead_created", "params": {"source": "bitrix24", "amount": 5000, "product_type": "sofa"}},
{"goal_id": "deal_closed", "params": {"amount": 5000, "category": "furniture", "manager": "Ivanov"}}
],
"source": "bitrix24",
"device": "desktop",
"test": False # ставим True для тестовых визитов
}
]
def send_visit(visit, counter_id):
url = f"https://api-metrika.yandex.net/management/v1/counter/{counter_id}/visits/upload"
payload = {
"client_id": visit["client_id"],
"user_id": visit["user_id"],
"timestamp": visit["timestamp"],
"goals": visit["goals"],
"source": visit["source"],
"device": visit["device"],
"params": {"test": visit["test"]}
}
response = requests.post(url, headers={"Authorization": f"OAuth {TOKEN}"},
data=json.dumps(payload))
print(response.status_code, response.json())
# Отправка визита: если тестовый — в тестовый счётчик, иначе в боевой
for order in orders:
counter = TEST_COUNTER_ID if order["test"] else COUNTER_ID
send_visit(order, counter)
Результат
Боевой счётчик: все реальные визиты и цели видны в стандартных отчётах по целям и визитам. Можно строить сегменты по источникам, категориям товаров и менеджерам.
Тестовый счётчик: все тестовые визиты с test=true будут изолированы, их можно использовать для отладки или проверки форматов целей, не влияя на реальную аналитику.
Отчёты → Цели → Параметры целей: здесь можно увидеть каждую цель с переданными параметрами (amount, category, manager).
Таким образом маркетологи получают полноценные данные о заказах из Bitrix24, а разработчики могут безопасно тестировать интеграцию без риска испортить статистику.
Сравнительная таблица методов
Подводя итог всему циклу я решил составить сравнительную таблицу методов, которая поможет выбрать вам наиболее подходящий вариант кастомизации целей Яндекс Метрики.
Метод |
Что позволяет |
Примеры использования |
Ограничения |
Где смотреть в Метрике |
Цели с параметрами |
Передача дополнительных данных о событиях на сайте |
Клики по баннерам, сумма заказа, язык пользователя |
Максимум 1000 символов для всех параметров, нужно согласовывать с аналитикой |
Отчет «Параметры целей», сегменты |
Офлайн-конверсии |
Загрузка событий, произошедших офлайн |
Сделки в CRM, звонки, визиты в шоурум |
Нужен ClientID/UserID, данные приходят с задержкой, полное соответствие визитов не всегда возможно |
Отчет «Параметры целей», сегменты по офлайн-событиям |
Measurement Protocol / виртуальные визиты |
Эмуляция визитов с любыми параметрами, отправка целей напрямую в Метрику |
Импорт данных из Bitrix24, тестовые визиты, восстановление потерянных визитов |
Нужно знать структуру запроса, тесты в боевом счётчике могут испортить статистику |
Отчеты по визитам и целям, параметры целей, отдельные тестовые счётчики |
Заключение
Не существует универсального метода отслеживания целей - все зависит от конкретной задачи и структуры бизнеса. Сильная аналитика всегда строится на синергии маркетинга и разработки: маркетолог формулирует цели и параметры, разработчик правильно собирает и передаёт данные.