Skip to content

tem19/yaf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

89 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

yaf

Пакет 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.

Как это работает:

  1. При первом вызове функции yaf_get_report("ваш_логин") и других откроется браузер.

  2. Яндекс попросит вас разрешить доступ приложению и покажет токен в окне браузера.

  3. Скопируйте токен в браузере, вставьте в консоли Rstudio и нажмите Enter.

  4. После ввода кода в консоль R, пакет создаст файл токена с расширением .rds.

Где хранится токен?

Токен сохраняется локально на вашем компьютере в специальную системную папку. Пакет автоматически определяет путь в зависимости от операционной системы:

  • macOS: ~/Library/Application Support/yaf/

  • Windows: C:\Users\ИмяПользователя\AppData\Local\yaf\config\

При каждом следующем запуске пакет будет сам искать токен в этой папке. Вам не придется проходить авторизацию повторно, пока срок действия токена не истечет (обычно 1 год).

Вы можете узнать точный путь к папке с токенами на вашем ПК командой в консоли R:

tools::R_user_dir("yaf", "config")

yaf_get_report() - выгрузка статистики

Данная функция предназначена для выгрузки отчетов по рекламным кампаниям. У нее только 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.

yaf_get_campaigns() - выгрузка списка рекламных кампаний

Работа с API Wordstat

yaf_ws_top() - сбор топовых запросов из Вордстата

Функция позволяет выгружать топ поисковых запросов по заданным ключевым словам - это основной функционал сервиса Wordstat.

Авторизация

Обратите внимание, что для работы с API Wordstat нужен отдельный токен. Тот, который используется для Директа, не подходит. Чтобы получить токен для Wordstat нужно отправить заявку - тут подробно описан процесс получения токена

Поддержка

По любым вопросам можно написать в группу в Телеграме:

About

Yandex Direct API Functions

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages