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

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

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

Заключение

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

Комментарии (0)