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

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

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

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

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

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

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

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

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

  • Отслеживание взаимодействия с чат-ботом;
  • Передача транзакций в сфере электронной коммерции.
  • Взаимодействие с чат-ботом

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

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

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

  • https://yourdomain.ru/chatbot/main_screen (главный экран чат-бота)
  • Транзакции в электронной коммерции

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

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

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

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

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

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

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

Новый способ передачи данных в «Яндекс Метрику» — Measurement Protocol
Новый способ передачи данных в «Яндекс Метрику» — 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, чтобы спустя время быстро найти, где она сработала. 
При настройке целей через 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 — доход транзакции,
  • свойства товаров (pr<productIndex>id, pr<productIndex>pr, pr<productIndex>qt и т.д).

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

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

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

Начать дискуссию