ryandexdirect - пакет для работы с API Яндекс.Директ версии 4, Live 4 и 5, а так же с Logs API Яндекс метрики на языке R.
##Содержание
- Краткое описание
- Установка пакета ryandexdirect
- Функции входящие в пакет ryandexdirect
- yadirGetToken
- yadirGetClientList
- yadirGetCampaignList
- yadirGetCampaignListOld
- yadirGetSummaryStat
- yadirCurrencyRates
- yadirGetLogsData
- Пример работы с пакетом ryandexdirect
- Пример работы с Logs API Яндекс Метрики
Пакет ryandexdirect помонает получить дата фрейм со списком клиентов агентств из аккаунта Яндекс.Директ, получить список и обшие параметры рекламных кампаний по каждому из проектов, а так же получить детальную статистику по кампаниям за каждый день.
Установка пакета осуществляется из репозитория GitHub, для этого сначала требуется установить и подключить пакет devtools.
install.packages("devtools")
library(devtools)
После чего можно устанавливать пакет ryandexdirect.
install_github('selesnow/ryandexdirect')
На данный момент в версию пакета 1.3 входит 7 функции:
###yadirGetToken()
Функция для получения токена для доступа к API Яндекс.Директ, полученый токен используется во всех остальных функциях.
###yadirGetClientList(token = NULL)
Данная функция возвращает дата фрейм со списком всех клиентов доступных в агентском аккаунте которому был выдан токен для доступа к API, используется только при работе с агентскими аккаунтами.
####Структура возвращаемого функцией yadirGetClientList дата фрейма:
| Поле | Тип данных | Описание |
| Login | chr | Логин пользователя на Яндексе |
| FIO | chr | Фамилия Имя Отчество указанные в аккаунте клиентом |
| StatusArch | Factor | Учетная запись пользователя помещена в архив — Yes/No |
| DateCreate | POSIXct | Дата регистрации пользователя, YYYY-MM-DD. |
| Role | Factor | Роль в Яндекс.Директе: Client — клиент рекламного агентства, или прямой рекламодатель, или представитель прямого рекламодателя; Agency — рекламное агентство или представитель агентства. |
| chr | Адрес электронной почты клиента | |
| Phone | chr | Контактный телефон в произвольном формате. |
###yadirGetCampaignList(logins = NULL, token = NULL)
Функция возвращает дата фрейм со списком рекламных кампаний и некоторых их параметров по логину.
####Структура возвращаемого функцией yadirGetCampaignList дата фрейма:
| Поле | Тип данных | Описание |
| Id | chr | Идентификатор кампании. |
| Name | chr | Название кампании. |
| Type | Factor | Тип кампании ("TEXT_CAMPAIGN" | "MOBILE_APP_CAMPAIGN" | "DYNAMIC_TEXT_CAMPAIGN" | "UNKNOWN"). |
| Status | Factor | Статус кампании ( "ACCEPTED" | "DRAFT" | "MODERATION" | "REJECTED" | "UNKNOWN" ). |
| State | Factor | Состояние кампании ( "ARCHIVED" | "CONVERTED" | "ENDED" | "OFF" | "ON" | "SUSPENDED" | "UNKNOWN" ). |
| DailyBudgetAmount | num | Дневной бюджет кампании в валюте рекламодателя. |
| DailyBudgetMode | chr | DISTRIBUTED — распределять дневной бюджет равномерно на весь день. STANDARD — дневной бюджет может исчерпаться, а показы завершиться ранее окончания дня. |
| Currency | Factor | Валюта кампании. Совпадает с валютой рекламодателя для всех кампаний. |
| StartDate | Date | Дата начала показов объявлений. |
| int | Количество показов за время существования кампании.. | |
| Clicks | int | Количество кликов за время существования кампании. |
| ClientInfo | chr | Название клиента. Значение по умолчанию — наименование из настроек рекламодателя. |
| login | chr | Логин пользователя на Яндексе. |
###yadirGetCampaignListOld(logins = NULL, token = NULL)
Устаревшая функцая для получения списка рекламных кампаний, список функций запрашивался с помощью метода GetCampaignList из версии API 4, с августе 2016 года этот метод стал недоступен, для того что бы получить список кампаний используйте новую функциюyadirGetCampaignList(logins = NULL, token = NULL).
###yadirGetSummaryStat(campaignIDS = NULL, dateStart = Sys.Date() - 10, dateEnd = Sys.Date(), currency = "USD", token = NULL)
Основная функция пакета, возвращает дата фрейм со статистикой в разрезе кампаний и дат.
####Структура возвращаемого функцией yadirGetSummaryStat дата фрейма:
| Поле | Тип данных | Описание |
| Date | POSIXct | Дата, за которую приведена статистика. |
| CampaignID | Factor | Идентификатор кампании. |
| SumSearch | num | Стоимость кликов на поиске. |
| GoalConversionSearch | num | Доля целевых визитов в общем числе визитов при переходе с поиска, в процентах. |
| GoalCostSearch | num | Цена достижения цели Яндекс.Метрики при переходе с поиска. |
| ClickSearch | int | Количество кликов на поиске. |
| ShowsSearch | int | Количество показов на поиске. |
| SessionDepthSearch | num | Глубина просмотра сайта при переходе с поиска. |
| SumContext | num | Стоимость кликов в Рекламной сети Яндекса. |
| GoalConversionContext | num | Доля целевых визитов в общем числе визитов при переходе из Рекламной сети Яндекса, в процентах. |
| GoalCostContext | num | Цена достижения цели Яндекс.Метрики при переходе из Рекламной сети Яндекса. |
| ClicksContext | int | Количество кликов в Рекламной сети Яндекса. |
| ShowsContext | int | Количество показов в Рекламной сети Яндекса. |
| SessionDepthContext | num | Глубина просмотра сайта при переходе из Рекламной сети Яндекса. |
###yadirCurrencyRates(login = NULL, token = NULL)
Функция возвращает дата фрейм с актуальными курсами валют в Яндекс.Директ.
####Структура возвращаемого функцией yadirGetSummaryStat дата фрейма:
| Поле | Тип данных | Описание |
| curName | chr | Код валюты |
| fullName | chr | Полное название валюты |
| RateWithVAT | num | стоимость 1 у. е. с учетом НДС. |
| Rate | num | стоимость 1 у. е. без учета НДС. |
###yadirGetLogsData(counter = NULL, date_from = Sys.Date() - 10, date_to = Sys.Date(), fields = NULL, source = "visits", token = NULL)
Функция для работы с Logs API Яндекс Метрики, которое позволяет выгрузить сырые данные.
Иногда возникают проблемы с тем, что функция останавливается если в возвращаемых данных встречается строчная русская буква 'я', решение этой проблемы описано тут.
По сути просто необходимо установить одну хитрую локаль.
Sys.setlocale("LC_ALL","Russian_Russia.20866")
Далее функция будет работать корректно.
####Аргументы: counter - номер счётчика Яндекс Метрики date_from - начальная дата отчёта date_to - конечная дата отчёта fields - список полей которые вы отите получить, для visits актуальный список доступных полей можно получить тут, для hits актуальный список полей можно получить тут. source - Источник логов, возможные значения hits — просмотры или visits — визиты
Подробное описание аргументов можно посмотреть тут.
###Подключаем пакет ryandexdirect
library(ryandexdirect)
###Получаем токен для доступа к API
myToken <- yadirGetToken()
После запуска функции автоматически будет открыт браузер, на странице с выданным вам токеном, скопируйте его и вставьте в консоль R.
После чего в рабочей области появится объект myToken, который вы будете использовать в остальных функциях.Далее в случае если у вас агетский аккаунт получаем список всех клиентов:
clientList <- yadirGetClientList(myToken)
Следующий шаг получить список рекламных кампаний клиентов, для этого в функции yadirGetCampaignList, для агентских аккаунтов необходимо задать вектор со списком логинов тех аккаунтов по которым вы хотите получить статистику, для обычных аккаунтов достаточно просто указать ваш токен.
campaignList <- yadirGetCampaignList(logins = clientList$Login, token = myToken)
Для того, что бы получить дата фрейм со статиской по кампаниям в разрезе дней осталось воспользоваться функцией yadirGetSummaryStat
stat <- yadirGetSummaryStat(campaignIDS = campaigns$CampaignID], dateStart = "2016-01-01", dateEnd = "2016-06-30", currency = "USD", token = myToken)
##Образец кода для работы с пакетом ryandexdirect
library(ryandexdirect)
myToken <- yadirGetToken()
clientList <- yadirGetClientList(myToken)
campaignList <- yadirGetCampaignList(logins = clientList$Login, token = myToken)
stat <- yadirGetSummaryStat(campaignIDS = campaigns$CampaignID,
dateStart = "2016-01-01",
dateEnd = "2016-06-30",
currency = "USD",
token = myToken)
#Пример работы с Logs API Яндекс Метрики.
library(ryandexdirect)
myToken <- yadirGetToken()
rawmetrikdata <- yadirGetLogsData(counter = "00000000",
date_from = "2016-12-01",
date_to = "2016-12-20",
fields = "ym:s:visitID,ym:s:date,ym:s:bounce,ym:s:clientID,ym:s:networkType",
source = "visits",
token = myToken)
Автор пакета: Алексей Селезнёв, Head of Analytics Dept. at Netpeak