python

Обзор python-пакета yadirstat — самый простой способ получить статистику из API Яндекс Директ

  • четверг, 30 июля 2020 г. в 00:26:05
https://habr.com/ru/post/512902/
  • Python
  • API
  • Яндекс API
  • Контекстная реклама


Здравствуйте, мне приходится собирать статистику из Яндекс Директ и, чтобы упростить работу, я опубликовал свой python-пакет, с помощью которого это можно делать очень просто.

Сначала вам следует получить токен для своего аккаунта (подробнее тут)

Пакет yadirstat уже опубликован на pypi — вы сможете установить его с помощью pip

pip install yadirstat

Пакет позволяет получить следующую статистику:

  • Статистика по кампаниям
  • Статистика по условиям показов (например, ключевые слова и аудитории)
  • Статистика по поисковым запросам

Как запрашивается статистика:



yadirstat.yadirstat.тип запроса(Токен клиента, Логин клиента, Дата начала, Дата окончания)

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


query_report =yadirstat.yadirstat.query('блаблаБЛАБЛАблаблАбалблаблаб','клиент-1245234','2020-05-10','2020-07-15')
print(query_report)


А так запрос для получения статистики по кампаниям:

campaign_report = yadirstat.yadirstat.campaign('блаблаБЛАБЛАблаблАбалблаблаб','клиент-1245234','2020-05-10','2020-07-15')
print(campaign_report)

А так запрос для получения статистики по условиям показов:


criteria_report = yadirstat.yadirstat.criteria('блаблаБЛАБЛАблаблАбалблаблаб','клиент-1245234','2020-05-10','2020-07-15')
print(criteria_report)

Пример моего запроса:


from yadirstat import yadirstat
x = yadirstat.yadirstat.campaign('AgAAAxxxxxxxXXXXXXxxxxxXXXXXcI','BxxxxXXXX','2020-05-10','2020-07-15')
print(x)

Вывод выглядит следующим образом:



Если во время вывода данные не помещаются, можете использовать следующее:


import pandas as pd
pd.set_option('display.max_columns', None)
pd.set_option('display.expand_frame_repr', False)
pd.set_option('max_colwidth', 80)
pd.set_option('max_rows', 600000)

На выходе мы получаем DataFrame.

Для полноценного использования я заменяю "--" на «0»

Структура данных


Поисковые запросы:

  • CampaignName
  • Query
  • Impressions
  • Clicks
  • Ctr
  • Cost
  • AvgCpc
  • ConversionRate
  • CostPerConversion
  • Conversions

Кампании*:

  • Date
  • CampaignName
  • Impressions
  • Clicks
  • Ctr
  • Cost
  • AvgCpc
  • BounceRate
  • AvgPageviews
  • ConversionRate
  • CostPerConversion
  • Conversions
  • Date

Условия показа:

  • CampaignName
  • Criterion
  • Impressions
  • Clicks
  • Ctr
  • Cost
  • AvgCpc
  • Date

*- Добавление даты последним столбцом позволяет не терять данные по датам при передачи DataFrame (Например, при передаче в BigQuery, теряется столбец с датами из-за того, что он индексный, чтобы избежать проблем я просто продублировал этот столбец).

Почему именно такая структура? Именно так я собираю статистику, чтобы потом отправлять ее в Google BigQuery и далее визуализировать в Google DataStudio.

Буду рад выслушать предложения по развитию данного пакета и ваш опыт сбора статистики.

P.S:

  • С агентскими аккаунтами это тоже работает
  • И с аккаунтами еламы