Три уровня отслеживания в Яндекс Метрике: Level 3 — Measurement Protocol и виртуальные визиты

от автора

Приветствую, Хабр! В прошлых двух статьях (тык 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, чтобы эмулировать визит и передавать цели с параметрами напрямую в Метрику.

Пример сценария:

  1. Пользователь оставил заявку через форму на сайте или менеджер добавил заказ вручную в битрикс24.

  2. Скрипт формирует виртуальный визит и отправляет несколько целей:

    • 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) 

Результат

  1. Боевой счётчик: все реальные визиты и цели видны в стандартных отчётах по целям и визитам. Можно строить сегменты по источникам, категориям товаров и менеджерам.

  2. Тестовый счётчик: все тестовые визиты с test=true будут изолированы, их можно использовать для отладки или проверки форматов целей, не влияя на реальную аналитику.

  3. Отчёты → Цели → Параметры целей: здесь можно увидеть каждую цель с переданными параметрами (amount, category, manager).

Таким образом маркетологи получают полноценные данные о заказах из Bitrix24, а разработчики могут безопасно тестировать интеграцию без риска испортить статистику.

Сравнительная таблица методов

Подводя итог всему циклу я решил составить сравнительную таблицу методов, которая поможет выбрать вам наиболее подходящий вариант кастомизации целей Яндекс Метрики.

Метод

Что позволяет

Примеры использования

Ограничения

Где смотреть в Метрике

Цели с параметрами

Передача дополнительных данных о событиях на сайте

Клики по баннерам, сумма заказа, язык пользователя

Максимум 1000 символов для всех параметров, нужно согласовывать с аналитикой

Отчет «Параметры целей», сегменты

Офлайн-конверсии

Загрузка событий, произошедших офлайн

Сделки в CRM, звонки, визиты в шоурум

Нужен ClientID/UserID, данные приходят с задержкой, полное соответствие визитов не всегда возможно

Отчет «Параметры целей», сегменты по офлайн-событиям

Measurement Protocol / виртуальные визиты

Эмуляция визитов с любыми параметрами, отправка целей напрямую в Метрику

Импорт данных из Bitrix24, тестовые визиты, восстановление потерянных визитов

Нужно знать структуру запроса, тесты в боевом счётчике могут испортить статистику

Отчеты по визитам и целям, параметры целей, отдельные тестовые счётчики

Заключение

Не существует универсального метода отслеживания целей — все зависит от конкретной задачи и структуры бизнеса. Сильная аналитика всегда строится на синергии маркетинга и разработки: маркетолог формулирует цели и параметры, разработчик правильно собирает и передаёт данные.


ссылка на оригинал статьи https://habr.com/ru/articles/942978/