20.01.2025, 19:06

Новый способ передачи данных в Яндекс Метрику — Measurement Protocol

11 октября 2024 Яндекс анонсировал Measurement Protocol — новый способ для передачи данных в Яндекс Метрику.

Measurement Protocol (далее MP) — инструмент, который позволяет передавать данные о взаимодействиях пользователей напрямую с вашего сервера на серверы Метрики через HTTP-запросы. Он расширяет возможности сбора и анализа данных: дополняет данные, собранные стандартным веб-счетчиком.

С помощью MP можно отправлять:

  • посещения страниц;

  • выполнения JavaScript-целей;

  • события в электронной коммерции (просмотры товаров, покупки, добавления или удаления из корзины).

В этой статье мы разобрали сценарии, когда MP может быть полезен, и привели примеры кода на Python для отправки данных в Яндекс Метрику.

Сценарии с использованием MP

По многолетнему опыту работы с Яндекс Метрикой мы выделили 2 основных сценария, в которых без нового инструмента (Measurement Protocol) не обойтись это:

  • Отслеживание взаимодействия с чат-ботом;

  • Передача транзакций в сфере электронной коммерции.

1. Взаимодействие с чат-ботом

Ранее в Яндекс Метрике не было возможности полноценно отслеживать взаимодействие пользователей с чат-ботом (Telegram, VK и так далее). Можно было отслеживать через офлайн-конверсии, но этот способ неудобный и недостоверный.

Поэтому в чат-боте отслеживали ключевые/финальные шаги либо использовали другой инструмент, например, Google Analytics 4. Для компаний, которым важно использовать отечественные инструменты, это стало проблемой.

C появлением MP в Яндекс Метрике стало возможным отслеживать любое взаимодействие пользователей с чат-ботом, имитируя отправку просмотров страниц с названиями экранов, например:

2.Транзакции в электронной коммерции

У интернет-магазинов часто возникает потребность отправить информацию о покупке с сервера, если на сайте есть возможность онлайн-оплаты с переходом на страницу эквайринга. Это связано с тем, что часть пользователей после оплаты сразу закрывает сайт, и информация о транзакции не успевает отправиться в Яндекс Метрику.

Также могут быть другие сценарии, из-за которых количество фактических транзакций не сходится с количеством транзакций в Яндекс Метрике. В таких случаях надежнее отправлять данные с сервера.

Инструмент MP дает возможность отправлять все транзакции с сервера. Поэтому количество транзакций будет полностью соответствовать фактическому количеству заказов в CRM.

Примеры отправки данных на серверы Яндекс Метрики

Как получить токен

Прежде чем отправлять данные в Яндекс Метрику, необходимо получить токен.

Для этого нужно перейти в: «Настройки > Счетчик > Дополнительные настройки > Безопасность и использование данных > Measurement Protocol».

Максимальное количество активных токенов на счетчик — 5

Отправка просмотра страницы

Шаблон кода для отправки информации о просмотрах страниц.

#Отправка просмотра страницы

import requests

import json

import pandas as pd

import pandasql as ps

#——————Для заполнения (начало)

ms = » #Укажите ваш токен

tid = 88989734 #Укажите ваш cчетчик

cid = 1710232430899999999 #Идентификатор ClientID

dr = ‘https://yandex.ru/’ #Реферер

dl = ‘https://yourdomain.ru/chatbot/main_screen’ #URL

dt = ‘Чат-бот Главный экран’ #Заголовок страницы

#et = 1728630000 #Время хита (Timestamp, если не передан, будет использовано время получения данных)

#——————Для заполнения (конец)

URL = ‘https://mc.yandex.ru/collect/? tid=’+str (tid)+’&cid=’+str (cid)+’&t=pageview&dr=’+str (dr)+’&dl=’+str (dl)+’&dt=’+str (dt)+’&ms=’+str (ms)

r_s = requests.get (URL)

print (r_s)

В код необходимо подставить свой токен (ms) и указать номер счетчика (tid).

Ключевые параметры:

  • cid — идентификатор ClientID,

  • dl — URL,

  • dt — заголовок страницы.

ClientID — параметр, по которому Яндекс Метрика понимает, кому принадлежат хиты. Если хиты отправляются с чат-бота, то можно генерировать собственный ClientID, при условии, что не нужно объединять данные по пользователю с сайта и чат-бота.

Важно, чтобы clientID на протяжении жизни пользователя не менялся, иначе просмотры будут отнесены к разным юзерам.

URL — в случае с чат-ботом, нужно создать уникальный URL для каждого экрана, чтобы они наглядно отображались в интерфейсе Яндекс Метрики.

Заголовок страницы позволяет передавать понятное название для каждого экрана.

Отправка JavaScript-целей

Шаблон кода для отправки целей.

#Отправка JavaScript-цели

import requests

import json

import pandas as pd

import pandasql as ps

#——————Для заполнения (начало)

ms = » #Укажите ваш токен

tid = 88989734 #Укажите ваш cчетчик

cid = 1710232430899999999 #Идентификатор ClientID

dr = ‘https://yourdomain.ru/test1’ #Реферер (Для параметра URL события в отчете Параметры целей)

ea = ‘test_mp’ #JavaScript-событие

#et = 1728630000 #Время хита (Timestamp, если не передан, будет использовано время получения данных)

#——————Для заполнения (конец)

URL = ‘https://mc.yandex.ru/collect/? tid=’+str (tid)+’&cid=’+str (cid)+’&t=event&dr=’+str (dr)+’&ea=’+str (ea)+’&ms=’+str (ms)

r_s = requests.get (URL)

print (r_s)

Ключевые параметры:

  • cid — идентификатор ClientID,

  • dr — URL,

  • ea — JavaScript-событие.

dr — параметр реферера. Для целей этот параметр определяет, на какой странице сработала та или иная JS-цель.

Отчет Параметры целей

ea — идентификатор, который необходимо указать при настройке цели «JavaScript-событие».

При настройке целей через MP стоит указывать, что цель передается через MP, чтобы спустя время быстро найти, где она сработала.

Отправка транзакций

Шаблон кода для отправки транзакций.

#Отправка успешной покупки

import requests

import json

import pandas as pd

import pandasql as ps

#——————Для заполнения (начало)

ms = » #Укажите ваш токен

tid = 88989734 #Укажите ваш cчетчик

cid = 1710232430899999999 #Идентификатор ClientID

pa = ‘purchase’ #ecom действие с товаром (detail,)

#et = 1728630000 #Время хита (Timestamp, если не передан, будет использовано время получения данных)

ti = 4555 #Идентификатор транзакции

tr = 70000 #Доход транзакции

#список товаров

pr1id = 456

pr1nm = ‘iphone’

pr1br = ‘apple’

pr1pr = 50000

pr2id = 459

pr2nm = ‘airpods’

pr2br = ‘apple’

pr2pr = ‘20000’

#——————Для заполнения (конец)

URL = ‘https://mc.yandex.ru/collect/? tid=’+str (tid)+’&cid=’+str (cid)+’&t=event&pa=’+str (pa)+’&pr1id=’+str (pr1id)+’&pr1nm=’+str (pr1nm)+’&pr1br=’+str (pr1br)+’&pr1pr=’+str (pr1pr)+’&pr2id=’+str (pr2id)+’&pr2nm=’+str (pr2nm)+’&pr2br=’+str (pr2br)+’&pr2pr=’+str (pr2pr)+’&ti=’+str (ti)+’&tr=’+str (tr)+’&ms=’+str (ms)

r_s = requests.get (URL)

print (r_s)

Ключевые параметры:

  • cid — идентификатор ClientID,

  • ti — идентификатор транзакции,

  • tr — доход транзакции,

  • свойства товаров (prid, prpr, prqt и так далее).

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

Надеемся, приведенные выше примеры помогут вам освоить инструмент Measurement Protocol от Яндекс Метрики. Если есть вопросы, задавайте их в комментариях к статье или присоединяйтесь к нашему аналитическому сообществу в Telegram.


Документация по загрузке данных в Яндекс Метрику.

Adventum
Adventum — digital-агентство полного цикла. Предоставляем полный спектр услуг в digital-маркетинге: от аудита рекламных кампаний до разработки и реализации комплексных digital-стратегий. На протяжении 15 лет команда успешно помогает брендам и людям находить друг друга в цифровом пространстве. В Adventum работают более 130 высококвалифицированных специалистов, каждый из которых стремится к объективности и измеримым результатам и работает на бизнес-цели клиентов.