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:
- С агентскими аккаунтами это тоже работает
- И с аккаунтами еламы