Спасибо! Ваша заявка успешно отправлена.
Наш менеджер свяжется с Вами в ближайшее время для уточнения всех деталей заявки.
Наш менеджер свяжется с Вами в ближайшее время для уточнения всех деталей заявки.
Яндекс.Дзен не имеет API для того, чтобы была возможность работать агрегату статистики в том формате, как это привыкли видеть маркетологи и аналитики. Для сбора данных требуется осуществление ряда шагов:
Только после этого необходимо в сформированном отчете в таблице Excel зайти на вкладку «Статистика кампаний по дням». Там будут доступны все кампании. Потребуется выбрать нужную и сделать по ней сводную таблицу.
Все это можно сделать в один шаг — по страницам кода зайти на Яндекс.Дзен и выгрузить требуемую статистику. Как сделать процесс максимально оптимизированным, расскажем более подробно.
Платформа Яндекс.Дзен постоянно развивается, но несмотря на это, в ней отсутствует оптимизация для рекламодателей. Ярким примером является личный кабинет — Яндекс.Директ. Здесь требуемые цифры необходимо доставать ручным способом и не самым при этом удобным. API здесь также отсутствует.
По итогу маркетолог затрачивает огромное количество времени для сбора аналитики и статистики. Для повышения эффективности работы необходимо оптимизировать процесс. Сделать это просто при помощи кода.
Применение кодинга
Распишем требуемые шаги оптимизации:
Необходимо установить библиотеки.
import pandas as pd import json import requests from datetime import datetime, timedeltaУказываем основные параметры, а после этого подключается к платформе.
# Число дней в статистике
N_days = 10
# Session_id — из кук. Взять можно из личного кабинета. Пример показан на скрине:
Данные из консоли разработчика
Session_id = '...'
#publisherId — это iID личного кабинета в Яндекс.Дзен. На скрине показана, откуда его можно выписать:
Откуда можно получить данные ID
publisherId = '...'
def get_zen_stat(Session_id, publisherId, N_days):
Cookie = {
'Session_id' : Session_id
}
yesterday = (datetime.now() — timedelta(days=N_days)).strftime('%Y-%m-%d')
today = datetime.now().strftime('%Y-%m-%d')
parameters = \
'publisherId='+ publisherId\
+'&from='+yesterday\
+'&to='+today\
+'&filterType='+'by-event'
url = 'https://zen.yandex.ru/editor-api/v2/flights/campaigns/statistics-xls?' + parameters
r = requests.get( url, cookies=Cookie)
return r
При ответе “” можно понять, что все сделано верно.
Требуется выбрать лист выгружаемых данных
# Листы выгружаемого файла
pd.ExcelFile(r.content).sheet_names
# Указать лист
selected_sheet = 'Статистика\xa0кампаний по дням'
Теперь потребуется выполнить сбор сведений в датафрейм:
df = pd.read_excel(r.content, selected_sheet, skiprows = 2 )[['Срез на дату', 'Кампания', 'Показы в ленте', 'Внешние переходы', 'Расход,\nруб. (без НДС)']].drop(index=0)
df.columns = ['date', 'campaign', 'impressions','clicks','cost_without_NDS']
df['date'] = pd.to_datetime(df['date'], format='%d.%m.%Y')
Теперь следует выбрать кампанию
# Активные кампании за период
pd.Series(df.campaign.unique())
# Указать кампанию
campaign = 'Mitsu_Asx'
# Отфильтровать датафрейм по выбранной кампании и получить нужные данные
df.query("campaign == @campaign").groupby(['date'], as_index=False).agg({'impressions':'sum','clicks':'sum','cost_without_NDS':'sum'}).set_index('date')
По результату необходимо выгрузить данные по следующем типу:
Таблицы с необходимыми сведениями
Здесь видно, что процесс занимает совсем немного времени. Но это не все, что может быть сделано на данной платформе. В ближайшем будущем разработчики планируют запустить преобразование данных в json, а также передавать их в сервис интеграции сведений MyBi. Это позволит эффективно и в автоматическом режиме собирать сведения с других систем, например, просчитывать стоимость лида.
Небольшая подсказка: после полной настройки и ввода необходимых параметров можно кликнуть по строке «Среда выполнения». Далее нажать на «Выполнить все» (можно заменить сочетанием клавиш Ctrl+F9). Такие действия запустят код, что откроет таблицу с данными за последний месяц.
Спасибо! Ваша заявка успешно отправлена.
Наш менеджер свяжется с Вами в ближайшее время для уточнения всех деталей заявки.
Наш менеджер свяжется с Вами в ближайшее время для уточнения всех деталей заявки.
Спасибо! Ваша заявка успешно отправлена.
Наш менеджер свяжется с Вами в ближайшее время для уточнения всех деталей заявки.
Наш менеджер свяжется с Вами в ближайшее время для уточнения всех деталей заявки.