Пакет yaf (Yandex Direct API Functions) предназначен для простой и
быстрой выгрузки статистики из API Яндекс.Директа напрямую в R. Пакет
берет на себя все сложности с авторизацией, обработкой JSON-ответов и
автоматическим преобразованием типов данных.
Для стабильной работы пакета вам понадобятся: * R версии 4.1.0 или
выше (пакет использует нативный пайп |>). * RStudio или
Positron IDE. * Rtools (только для пользователей Windows) —
необходим для сборки пакета при установке из исходного кода.
Установите актуальную версию пакета напрямую из GitHub репозитория:
if (!require("remotes")) install.packages("remotes")
remotes::install_github("tem19/yaf")Для работы с API Яндекс Директа пакет использует официальный протокол OAuth2.
-
При первом вызове функции
yaf_get_report("ваш_логин")и других откроется браузер. -
Яндекс попросит вас разрешить доступ приложению и покажет токен в окне браузера.
-
Скопируйте токен в браузере, вставьте в консоли Rstudio и нажмите Enter.
-
После ввода кода в консоль R, пакет создаст файл токена с расширением
.rds.
Токен сохраняется локально на вашем компьютере в специальную системную папку. Пакет автоматически определяет путь в зависимости от операционной системы:
-
macOS:
~/Library/Application Support/yaf/ -
Windows:
C:\Users\ИмяПользователя\AppData\Local\yaf\config\
При каждом следующем запуске пакет будет сам искать токен в этой папке. Вам не придется проходить авторизацию повторно, пока срок действия токена не истечет (обычно 1 год).
Вы можете узнать точный путь к папке с токенами на вашем ПК командой в консоли R:
tools::R_user_dir("yaf", "config")
Данная функция предназначена для выгрузки отчетов по рекламным
кампаниям. У нее только 1 обязательный параметр - логин в Директе. В
таком случае будут выгружены поля Date, Impressions и Clicks за 7
последних дней.
Пример:
library(yaf)
yaf_get_report(login = "your_yandex_login")
date_from - начальная дата в выгрузке в формате YYYY-MM-DD
date_to - конечная дата в выгрузке в формате YYYY-MM-DD
date_range_type - период отчета; если выбрано, то date_from и
date_to игнорируются:
-
TODAY— текущий день; -
YESTERDAY— вчера; -
LAST_3_DAYS,LAST_5_DAYS,LAST_7_DAYS,LAST_14_DAYS,LAST_30_DAYS,LAST_90_DAYS,LAST_365_DAYS— указанное количество предыдущих дней, не включая текущий день; -
THIS_WEEK_MON_TODAY— текущая неделя начиная с понедельника, включая текущий день; -
THIS_WEEK_SUN_TODAY— текущая неделя начиная с воскресенья, включая текущий день; -
LAST_WEEK— прошлая неделя с понедельника по воскресенье; -
LAST_BUSINESS_WEEK— прошлая рабочая неделя с понедельника по пятницу; -
LAST_WEEK_SUN_SAT— прошлая неделя с воскресенья по субботу; -
THIS_MONTH— текущий календарный месяц; -
LAST_MONTH— полный предыдущий календарный месяц; -
ALL_TIME— вся доступная статистика, включая текущий день;
fields - вектор с перечислением полей отчета
goals - вектор с номерами целей Метрики, которые нужно выгрузить в
качестве конверсий
atribution - модель атрибуции, одна либо несколько. Доступные
модели:
-
FC— первый переход. -
LC— последний переход. -
LSC— последний значимый переход. -
LYDC— последний переход из Яндекс Директа. -
FCCD– первый переход кросс-девайс. -
LSCCD– последний значимый переход кросс-девайс. -
LYDCCD– последний переход из Яндекс Директа кросс-девайс. -
AUTO– автоматическая атрибуция.
filter - фильтрация данных в отчете. Функция в качестве фильтра
ожидает строку в формате “ПОЛЕ ОПЕРАТОР ЗНАЧЕНИЕ”. Подробнее о
операторах и полях, к которым они применимы, можно прочитать в справке:
https://yandex.ru/dev/direct/doc/ru/filters. Примеры:
CampaignId IN 123456789, 987654321,Clicks GREATER_THAN 100
search_query_report - логическое значение, по умолчанию - FALSE;
если TRUE, то тип отчета меняется на SEARCH_QUERY_PERFORMANCE_REPORT
(предназначен для выгрузки статистики по поисковым запросам)
numeric_fields_as_numeric - логическое значение, по умолчанию -
TRUE, если FALSE, то для числовых полей не будет производится
корректировка типа.
include_vat - логическое значение, по умолчанию - TRUE, то есть
расход выгружается с включенным в него НДС
save_report - логическое значение, по умолчанию - FALSE; если
TRUE, то выгрузка будет сохранена в отдельной папке reports внутри
проекта
Пример скрипта для выгрузки отчета:
library(yaf)
library(dplyr)
# 1. Авторизация
# Токен подтянется автоматически, если он уже был сохранен на диске ранее
my_login <- "your_yandex_login"
yaf_get_token(my_login)
# 2. Получение отчета за последние 30 дней
# По умолчанию выгружаются поля: Date, CampaignName, Impressions, Clicks, Cost
stats <- yaf_get_report(
login = my_login,
date_from = Sys.Date() - 30,
date_to = Sys.Date() - 1
)
Код data(yaf_fields_info) позволяет выгрузить таблицу со всеими
полями, которые можно использовать при обращении к API.
Функция позволяет выгружать топ поисковых запросов по заданным ключевым словам - это основной функционал сервиса Wordstat.
Обратите внимание, что для работы с API Wordstat нужен отдельный токен. Тот, который используется для Директа, не подходит. Чтобы получить токен для Wordstat нужно отправить заявку - тут подробно описан процесс получения токена
