Объединение Директ и Метрики в разбивке по регионам
Дисклеймер
Перед описанием данного кейса отметим важный момент. Расхождение данных по учету конверсий между кабинетом Яндекс Директ и Яндекс Метрика, в первую очередь, связано с тем, что это 2 разных продукта. Они появились в разное время, и в каждом из них заложена собственная логика.
Отслеживание конверсий в Яндекс Директ непосредственно связано с кликом по объявлению, а в Яндекс Метрике — с визитом. Если клик и связанная с ним конверсия имеют разные даты, то мы по-разному их увидим в этих двух кабинетах.Например, клик по рекламному объявлению состоялся 01.05.2023, а конверсия 02.05.2023. Следовательно, в рекламном кабинете Яндекс Директ конверсия будет отнесена на 01.05.2023, а в Яндекс Метрике — на 02.05.2023.
Следующий дисклеймер связан непосредственно с нашим кейсом и выше описанной спецификой. Перед нами стоит задача забрать из кабинета Яндекс Директ основные показатели — Показы, Клики, Расходы по рекламным кампаниям по дням и объединить их с Целевыми визитами из Яндекс Метрики. Следовательно, мы должны понимать, что Целевые визиты из Яндекс Метрики напрямую могут быть не связаны с Показами, Кликами и Расходами в конкретный день. Но задачи бывают разные, и основная цель нашего кейса описать механику действий.
Ссылка на дашборд
Пример нестыковки
Вот пример нестыковки данных Яндекс Директ и Яндекс Метрики, который подтолкнул нас к описанию данного кейса — за один и тот же период в Директ мы видим 28 конверсий, а в Метрике — 34 целевых визита, в некоторых случаях бывает критически важно совмещать данные из этих двух источников.
1. Подготовка данных
Для того чтобы реализовать данную задачу на первом этапе необходимо проверить UTM разметку ваших рекламных объявлений. В разметке должны быть заполнены параметры:
-
utm_source=yandex
-
utm_medium=cpc
-
utm_content — также необходимо передавать динамические параметры
Яндекс Директ:
-
{campaign_id} — Идентификатор рекламной кампании
-
{campaign_name} — Название кампании
-
{region_name} — Регион, в котором было показано объявление
-
{region_id} — Идентификатор региона, в котором было показано объявление
Пример размеченного URL ↓
Данные из Яндекс Директ и Яндекс Метрики мы забираем по API. В данной статье мы не будем подробно разбирать код и специфику подключения.
Мы хотим акцентировать ваше внимание на том, какие именно параметры и показатели необходимо получить для построения отчета.
2. Забираем данные из Яндекс Директ
API Яндекс Директ позволяет получить всю необходимую статистику по рекламным кампаниям. Мы забираем не все данные, а только те, которые необходимы для построения отчета/серии отчетов. В данном случае мы заберем статистику по рекламным кампаниям по дням в разбивке по регионам, в качестве показателей нас интересуют Показы, Клики, Расходы с НДС.
Также для последующего корректного объединения с данными из Яндекс Метрики нам пригодится справочник регионов, который мы также можем забрать по API из Яндекс Директ.
Данные по рекламным кампаниям. В параметрах API запроса забираем из Яндекс Директ следующие поля:
-
Date — Дата
-
CampaignId — ИД рекламной кампании
-
CampaignName — название рекламной кампании
-
LocationOfPresenceId — Идентификатор региона местонахождения пользователя
-
Impressions — показы
-
Clicks — клики
-
Cost — Расходы (если расходы требуется учитывать БЕЗ НДС, то для параметра «IncludeVAT» — указываем «NO», иначе оставляем «YES»
«FieldNames»: [
«Date»,
«CampaignId»,
«CampaignName»,
«LocationOfPresenceId»,
«Impressions»,
«Clicks»,
«Cost»,
«Bounces»,
«Sessions» ]
Справочник регионов. Для того, чтобы корректно соединить регионы из Метрики и Директ, нам понадобится справочник регионов, который мы заберем из Яндекс Директ. Для этого воспользуемся стандартным методом GetRegionsURL запроса = ‘https://api.direct.yandex.ru/live/v4/json/‘
Пример кода:
import pandas as pd
import requests
import json
import os
ReportsURL =
‘https://api.direct.yandex.ru/live/v4/json/’
token = здесь необходимо указать ваш токен Яндекс Директ
headers = {}
data = {
«method»: «GetRegions»,
«token»: token}
jdata = json.dumps (data,
ensure_ascii=False).encode (‘utf8’)
response = requests.post (ReportsURL, jdata,
headers=headers)
print (response.status_code)
data = json.loads (response.content)
df = pd.DataFrame (data[‘data’])
print (df.head ())
3. Забираем данные из Яндекс Метрики
В Яндекс Метрике нас интересуют целевые визиты из рекламных кампаний Яндекс Директ. Для того, чтобы выделить визиты, относящиеся к Директ, мы будем использовать UTM метки, которыми помечены рекламные объявления.
В чем отличие Целевого визита от Достижения цели? На этот вопрос отвечает справка Яндекс Метрики:
Достижение цели — это момент, в который посетитель выполнил заданное в параметрах цели условие.
Целевой визит — это визит, в течение которого произошло достижение цели. В течение одного целевого визита может произойти несколько достижений одной и той же цели.
Давайте рассмотрим следующую ситуацию. Посетитель зашел на сайт и в рамках 1 визита отправил 2 раза одну и ту же форму.
В кабинете Яндекс Метрики мы увидим по этой цели:
Достижение цели — 2
Целевой визит — 1
В нашем случае необходимо получить количество Целевых визитов по конкретной цели. Для этого забираем по API из Яндекс Метрики следующие параметры и показатели
payload = {
‘dimensions’: ‘ym: s: date,
ym: s: UTMSource,
ym: s: UTMMedium,
ym: s: UTMCampaign,
ym: s: UTMContent,
ym: s: UTMTerm’,
‘metrics’: ‘ym: s: goalvisits’,
‘date1’: дата начала периода,
‘date2’: дата окончания периода,
‘ids’: counter_id, // номер счетчика
‘accuracy’: ‘full’, // Размер выборки, используемой для отчета. Позволяет управлять семплированием
‘attribution’: ‘cross_device_last_significant’, // модель атрибуции
‘pretty’: True, // Задает форматирование результата. Чтобы использовать форматирование, укажите значение true}
4. Подготовка данных в Power Query
На этом этапе мы загружаем 3 полученных файла: данные Яндекс Директ, справочник регионов Яндекс Директ, данные из Яндекс Метрики в Power BI, и через инструмент Power Query приводим их в порядок.
Подготовка данных из Яндекс Директ. Файл с основными показателями необходимо упорядочить, чтобы в дальнейшем с ним было можно работать — приводим показатели к числовому типу данных. Так же необходимо учесть, что расходы из Яндекс Директ приходят целым числом умноженным на миллион, для нормализации мы выполняем обратную операцию и делим расходы на 1000000.
После всех преобразований мы получаем таблицу, которую можно использовать в дальнейших расчетах.
Далее приведем в порядок справочник регионов — из этого файла нас интересует только 3 поля: RegionType, RegionName и RegionID.
Подготовка данных Яндекс Метрика. С данными из Яндекс Метрики будет больше преобразований, так как нам необходимо забрать номер РК и ИД региона из UTM метки. Но по сути эти операции можно выполнить встроенными функциями PowerQuery — забрать текст после разделителя.
Так же, во избежание недоразумений при последующем объединении данных, мы выполним группировку по Дате, Источнику, Каналу, ИД кампании и ИД Региона, а в качестве агрегации применим сумму для поля Целевые визиты.
Вспомогательные таблицы. Для того, чтобы в полной мере воспользоваться возможностями Power BI, лучше всего создать несколько вспомогательных таблиц, которые помогут нам связать между собой Яндекс Директ и Яндекс Метрику
-
Календарь — таблица с набором неповторяющихся дат;
-
Справочник Кампаний — таблица, которая содержит в себе поле с уникальными номером РК Яндекс Директ и названием этой кампании;
-
Также отдельная таблица показателей, мы перечислим показатели, которые будем рассчитывать (в дальнейшем она будет использована для создания выпадающего списка).
5. Подготовка данных в Power BI
Перед выведением данных в дашборд нам необходимо произвести некоторые дополнительные настройки: установить связи между таблицами и написать формулы для расчета показателей.У нас совсем небольшая модель данных — 3 справочника и 2 таблицы фактов. Поэтому нам нужно просто соединить поля справочников с соответствующими полями в таблицах фактов.
Календарь: поле Дата соединяется с датами в таблицах Яндекс Директ и Яндекс Метрика.
Справочник кампаний: поле ИД кампании соединяется с полями ИД кампании в таблицах Яндекс Директ и Яндекс Метрика.
Справочник регионов: поле ИД региона соединяется с ИД региона в в таблицах Яндекс Директ и Яндекс Метрика.
Далее нам необходимо написать:
-
меры для расчета каждого показателя в отдельности;
-
и на их основе создать дополнительную меру, которая будет выводить показатель в зависимости от выбранного значения.
6. Визуализация данных в Power BI
На финальном этапе нам необходимо добавить фильтры на страницу дашборда — выбор даты, региона, кампании и показателя. Затем нужно вывести меры в визуализациях. Вот пример дашборда — в верхней части экрана мы выводим общие показатели, затем идет блок фильтров, ⅔ экрана занимают визуализации:
-
Карта — на ней отмечены города, показатель выбираем из выпадающего списка — размер кружка соответствует доле выбранного показателя;
-
Под картой мы располагаем таблицу-матрицу в строках отображены города, есть возможность провалиться на нижний уровень и посмотреть рекламные кампании, которые отработали в этом городе;
-
Горизонтальная гистограмма — с перечнем городов, показатель выбираем из выпадающего списка. Цвет определяется градиентом в зависимости от значения показателя.
Лучшее в блогах
Вам понравится
Хэллоуин вновь стал популярным среди россиян. Тематические вечеринки с 31 октября на 1 ноября запланированы во многих ночных клубах, а на маркетплейсах зафиксирован повышенный спрос на товары для Хэллоуина. Собрали ТОП-7 «страшилок» с Wildberries.