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

Роман Любимцев
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)
Загрузка...

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

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

Эффективность товарной кампании за счет брендовых запросов

О клиенте «Урюк» — сеть ресторанов, которая специализируется на восточной (узбекской) кухне, а также осуществляет доставку блюд по Москве. Задачи от клиента Запуск товарной кампании. Анализ статистики рекламной кампании. Цель Увеличение числа конверсий. Проблематика После запуска товарной кампании брендовая кампания стала получать меньше трафика, чем обычно. Необходимо выяснить, какая доля брендовых запросов в товарной кампании и через какую кампанию более выгодно закупать трафик. Описание […]

Продвижение апартаментов: как увеличить число конверсий и доход в 2 раза при помощи Товарной кампании в Яндекс Директе

Задача Протестировать товарную кампанию для клиента из сферы туристических услуг и отелей. Цель Увеличить количество конверсий по бронированию апартаментов с помощью товарной кампании. Период теста C 18 июля 2022 года — по настоящий день. Что такое товарная кампания в Яндекс Директе? Новый инструмент в Яндекс Директе — Товарная кампания. С помощью данного инструмента можно запустить […]