Статистика по Турбо-страницам из Яндекс.Метрики в сторонних отчетах

Роман Любимцев
Head of Analytics&Marketplace, MediaGuru

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

Статистику по заявкам с турбо-страниц можно посмотреть только в Яндекс.Метрике вплоть до разреза ключевой фразы. Но многим клиентам не подходит предоставленная статистика эффективности в интерфейсе системы аналитики: отчет должен содержать статистику по затратам не только с Яндекс.Директа. Поэтому нужно искать решение для сбора статистики и агрегации её во вне.

Рассмотрим реализацию на примере отчета с конверсиями с турбо-страниц, который мы построили для нашего клиента sensat.ru.

1 этап: получение авторизационного токена

Для получения автоматизированного отчета есть два подхода: 

  1. Воспользоваться сторонним решением, например renta.im.
  2. Написать собственный скрипт подключения к API Метрики. 

Разберем второй вариант подробнее, т.к. он более полный, а общий смысл не отличается.

Для написания скрипта будем использовать Python 3, так как интерпретатор языка уже есть в Ubuntu, которая используется в качестве операционной системы почти на всех серверах.

Первым делом нам нужно получить авторизационный токен. Если нужен доступ к одному счетчику Метрики под вашим логином, воспользуйтесь «отладочным токеном». Его достаточно.

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

2 этап: пишем модуль для получения статистики из Яндекс.Метрики

Импортируем нужные библиотеки:

import requests

import pandas as pd

from io import StringIO

from time import sleep

Объявим класс, который назовем Metrika. При вызове мы будем помещать в него наш токен.

class Metrika(object):

     def __init__(self, token = None):

     super(Metrika, self).__init__()

     self.token = token

Затем внутри класса создадим метод GetStat, который и будет отвечать за скачивание статистики.

def GetStat(self, counter_id = None, date_from = None, date_to = None,

               dimensions = None, metrics = None, filters = None, attribution = None):

Расшифровка:

  • counter_id – номер счетчика.
  • date_from – дата, с которой нужно получить статистику.
  • date_to – дата, по которую нужно получить статистику (включительно).
  • dimensions – параметры (группировки).
  • metrics – метрики.
  • filters – фильтры, если требуются.
  • attribution – модель атрибуции.

Теперь само тело метода:

stats_api = ‘https://api-metrika.yandex.ru/stat/v1/data.csv’

     token = self.token

     df = pd.DataFrame()

     check = True

     offset = 1

     try:

         while check:

             params = {  «date1»:date_from,

                            «date2»:date_to,

                            «dimensions»:’,’.join(dimensions),

                            «metrics»:’,’.join(metrics),

                            «ids»:counter_id,

                            «accuracy»:1,

                            «attribution»:attribution,

                            «group»:»day»,

                            «filters»:filters,

                         «offset»: offset,

                        «limit»:10000}

             headers = {«Authorization» : «OAuth » + token}

             r = requests.get(stats_api, params=params, headers = headers)

             tmp = pd.read_csv(StringIO(r.text), sep = ‘,’)

             df = df.append(tmp, sort = False)

             if len(tmp) == 0:

                 check = False

             offset += 10000

         return df

     except:

         print(‘Metrika: Error’)

         raise

Статистика будет отдаваться в csv, такой формат удобнее использовать при работе с pandas.

Используется get – запрос с параметрами и настройками, которые мы хотим получить из Метрики.

Мы задаем offset – отступ, т.е. с какой строки отбирать результат. Через цикл while мы проверяем данные, и, как только данные приходят пустые, выходим из цикла.

Этап 3: Создаем новый файл, на который будет ссылаться модуль

Импортируем модуль, а также модули работы с датой:

import metrika

from datetime import datetime as dt

from datetime import timedelta as td

Объявляем токен и номер счетчика:

token = ‘AQAAAAAh-AQAAAAAh-AQAAAAAh’

counter_id = ‘11111111’

Выбираем период дат. Чтобы статистика скачивалась за вчерашний день, используем такой вызов:

date_from = dt.now()-td(days = 2)

date_to = dt.now()-td(days = 1)

Поскольку заявки с турбо-страниц отправляются без визита на сайт, то брать UTM в качестве группировок нет смысла. Нужно использовать параметры отчетов Директа. 

Для среза по кампании и условию показа нужны такие ключи:

dimensions =[‘ym:s:date’,’ym:s:lastsignDirectClickOrder’,   ‘ym:s:lastsignDirectPhraseOrCond’]

Указываем номера целей вместо XXXXXXX. Вместо количества достижений цели используем целевые визиты:

metrics = [‘ym:s:goalXXXXXXXvisits’,’ym:s:goalXXXXXXXvisits’]

Создаем экземпляр нашего класса:

mk = metrika.Metrika(token)

И получаем отчет:

df = mk.GetStat(counter_id = counter_id, date_from = date_from, date_to = date_to,

             dimensions = dimensions, metrics = metrics, attribution = ‘lastsign’)

На выходе получим подобную таблицу:

Теперь полученный DataFrame можно импортировать в таблицы SpreadSheets, xlsx или в базу данных. Остается сопоставить его со статистикой из Директа, используя Функции ВПР или Join для баз данных.

Если нужно получить статистику из Метрики по другим конверсиям для разных источников, стоит использовать UTM-метки в качестве параметров. Полный список всех параметров можно найти здесь

Оцените статью

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 оценок, среднее: 5,00 из 5)
Загрузка...

Поделитесь в соцсетях

Похожие публикации

Digital-дайджест. Выпуск 13/26

VK чистит аудиторию и повышает вовлеченность, а бренды тестируют виртуальные примерки и новые рекламные форматы. Об этих и других диджитал-новостях за неделю, рассказываем в дайджесте.      1) Яндекс обновил лендинги в Директе. Яндекс Директ запустил нейротехнологии: теперь структура страницы и изображения автоматически подбираются под бизнес. Это упрощает создание сайтов и повышает их конверсионность. Среди […]

Digital-дайджест. Выпуск 12/26

41% рекламодателей перекинули бюджеты на маркетплейсы, блогерский контент стал работать как SEO-актив, а Google обещает удешевить ИИ на треть. Что еще изменилось в digital за неделю — в свежем дайджесте. Как Dropp Market и MediaGuru вырастили выручку приложения через Яндекс Директ. Fashion-маркетплейс Dropp Market сделал ставку на развитие мобильного приложения как основного канала продаж. В […]

Digital-дайджест. Выпуск 10/26

Пока Telegram еще работает, рекламодатели наращивают размещения — посты выросли на 50% год к году. Email-рассылки тоже набирают обороты, а вот баннеры теряют внимание: у вас всего 1,6 секунды, чтобы зацепить пользователя. Что еще изменилось в диджитал за неделю — в нашем дайджесте.      1) Директ летом полностью перейдет на новый Мастер отчетов. Яндекс […]