README.md

yamarketR - пакет для работы с Партнёрским API Яндекс.Маркета на языке R

Краткое описание

Данный пакет предназначен для получения данных из Яндекс.Маркета с помощью языка R.

Оглавление:

На очереди работа над функциями:

Функции пакета постепенно будут добавляться и расширяться в описании будет указаны статус разработки и планируемые изменения.

Автор пакета

Павел Мрыкин, Руководитель отдела автоматизации и аналитики MediaGuru email: mrykin@mediaguru.ru skype: mrykin.pavel facebook: facebook.com/mrykin.pavel blog: www.mediaguru.ru/blog/

Установка пакета yamarketR

Установка пакета осуществляется из репозитория GitHub, для этого сначала требуется установить и подключить пакет devtools.

install.packages("devtools")
library(devtools)

После чего можно устанавливать пакет yamarketR.

install_github('mrykin/yamarketr')

Авторизация в API Яндекс Маркет

Вы можете в любой момент пройти аутентификацию в API Яндекс Маркет, однако это не обязательно, т.к. при запуске любой функции пакета, которая требует аутентификации будет запущен поиск файла с токеном доступа. Если файл не будет найден, то автоматически будет запущен процесс авторизации и запроса токена.

Перед выполнением аутентификации рекомендую заранее создать папку для сохранения токенов и далее объявлять её рабочей директорией перед запуском функций пакета.

Создание папки

# Задаём адрес директории (папки) для токенов
path <- "C:/Tokens/yamarketR"
# Создаём директорию если её нет
dir.create(path, recursive=TRUE)

Теперь перед началом работы с функциями пакета необходимо объявить созданную папку "рабочей", это позволит избежать необходимости повторно проходить авторизацию

Задать "рабочую" папку

Чтобы объявить папку "рабочей" - выполните функцию:

# Устанавливаем рабочую директорию
setwd("C:/Tokens/yamarketR")

Пример кода для прохождения авторизации

Если вы всё же хотите заранее пройти аутентификацию - выполните следующую функцию:

yamarketrAuth(Login = "Ваш логин в Яндексе", NewUser = FALSE, TokenPath = "путь к папке для сохранения токена")

Обновление токена

При каждом обращении к API проверяется количество дней до того как используемый токен станет просроченным, если остаётся менее 30 дней токен автоматически будет обновлён, и файл с учётными данными перезаписан.

Аргументы функции yamarketrAuth

Аргументы, общие для всех функций

Во всех функции пакета существуют общие аргументы, в дальнейшем эти аргументы рассматриваться в описании функций не будут.

Функции пакета

Загрузка списка кампаний (магазинов)

yamarketrGetCampaigns(Login = NULL, TokenPath = getwd())

Данная функция возвращает data.frame со списком всех кампаний доступных в аккаунте которому был выдан токен для доступа к API.

Структура data.frame, возвращаемого функцией yamarketrGetCampaigns:

ПолеТип данныхОписание id int Идентификатор кампании. В интерфейсе он выводится в формате 11-******. В API же используется часть после дефиса. Количество знаков после дефиса может отличаться и зависит от того, как давно вы зарегистрировали кампанию. domain chr URL-адрес кампании state factor Статус магазина

Возможные значения:

stateReasons chr Список причин, объясняющих статус магазина.

Выводится, если параметр state имеет значения:

Код причины.

Возможные значения:

Загрузка текущего баланса магазинов

yamarketrGetBalance(Campaigns = NULL, Login = NULL, TokenPath = getwd())

Ссылка на официальную документацию.

Данная функция возвращает data.frame со списком всех кампаний доступных в аккаунте которому был выдан токен для доступа к API.

Структура data.frame, возвращаемого функцией yamarketrGetCampaigns:

ПолеТип данныхОписание id int Идентификатор кампании. В интерфейсе он выводится в формате 11-******. В API же используется часть после дефиса. Количество знаков после дефиса может отличаться и зависит от того, как давно вы зарегистрировали кампанию. balance num Текущий баланс магазина.

Все расчеты производятся в условных единицах (у. е.). В Маркете установлен постоянный курс, который составляет:

daysLeft int Прогнозируемое количество дней, оставшихся до полного израсходования средств. recommendedPayment num Рекомендованная сумма платежа, в условных единицах.

Загрузка расхода магазинов за выбранный период

yamarketrGetCosts(Campaigns, fromDate = format(Sys.Date()-8, "%d-%m-%Y"), toDate = format(Sys.Date()-1, "%d-%m-%Y"), Login = NULL, TokenPath = getwd(), places = 0, model = 0, fetchBy = "daily")

Ссылка на официальную документацию.

Данная функция возвращает data.frame со расходами магазинов, указанных в переменной Campaigns за последние 7 дней.

Структура data.frame, возвращаемого функцией yamarketrGetCosts:

ПолеТип данныхОписание date int Дата, за которую был зафиксирован расход id int Идентификатор кампании. В интерфейсе он выводится в формате 11-******. В API же используется часть после дефиса. Количество знаков после дефиса может отличаться и зависит от того, как давно вы зарегистрировали кампанию. placeGroup int Места размещения при заданной в запросе группировке по местам размещения (параметр входных данных places=1).

Возможные значения:

clicks int Количество кликов.

Выводится за день, неделю или месяц (в зависимости от значения параметра fetchBy).

spending num Расход по кликам в условных единицах с учетом НДС.

Выводится за день, неделю или месяц (в зависимости от значения параметра fetchBy).

shows int Количество показов предложения.

Выводится за день, неделю или месяц (в зависимости от значения параметра fetchBy).

Аргументы:

Загрузка списка логинов, прикреплённых к кампании (магазину)

yamarketrGetLogins(Campaigns, howmuch = NULL, Login = NULL, TokenPath = getwd())

Ссылка на официальную документацию.

Данная функция возвращает список логинов, которые прикреплены к выбранным магазинам. Может использоваться для группировки магазинов одного клиента.

Структура data.frame, возвращаемого функцией yamarketrGetLogins:

Поле Тип данных Описание id int Идентификатор кампании. В интерфейсе он выводится в формате 11-******. В API же используется часть после дефиса. Количество знаков после дефиса может отличаться и зависит от того, как давно вы зарегистрировали кампанию. logins chr логин или список логинов, можно регулировать кол-во выводимых логинов с помощью параметра howmuch

Атрибуты:

Загрузка информации об ошибках магазинов

yamarketrGetTickets(Campaigns, actualType = NULL, Login = NULL, TokenPath = getwd())

Ссылка на официальную документацию.

Данная функция возвращает данные о текущих ошибках магазина, выявленных службой контроля качества Яндекс.Маркета.

Структура data.frame, возвращаемого функцией yamarketrGetTickets:

Поле Тип данных Описание id chr Идентификатор кампании. В интерфейсе он выводится в формате 11-******. В API же используется часть после дефиса. Количество знаков после дефиса может отличаться и зависит от того, как давно вы зарегистрировали кампанию. ticketId int Идентификатор тикета на ошибку в службе контроля качества. offerURL chr URL-адрес предложения с ошибкой на сайте магазина. errorText factor Текстовое описание ошибки.

Возможные значения приведены в описании параметра error-code в официальной справке.

errorCode factor Код ошибки магазина. errorFoundTime PISIXct Дата и время выявления ошибки. feedTime PISIXct Дата и время загрузки прайс-листа. checkMethod factor Тип проверки магазина.

Возможные значения:

status factor Статус ошибки.

Возможные значения:

orderId chr Идентификатор заказа на сайте магазина.

Присутствует в выходных данных, если параметр checkMethod - проверка с помощью добавления товара в корзину на сайте магазина.

Атрибуты:

Примеры работы с пакетом

Запрос текущего баланса по магазинам

# Подключаем пакет
library(yamarketr)

# Получаем список магазинов
campaigns <- yamarketrGetCampaigns(Login = "login", NewUser = TRUE)

# Получаем баланс по магазинам
balance <- yamarketrGetBalance(campaigns, Login = "login")

Запрос расхода по магазинам за выбранный период

# Подключаем пакет
library(yamarketr)

# Получаем список магазинов
campaigns <- yamarketrGetCampaigns(Login = "login", # Ваш логин в Яндексе
                                   NewUser = FALSE # Указание типа пользователя для авторизации
                   )

# Получаем расходы по магазинам за последние 7 дней, не включая сегодняшний, по дням, без разбивки по местам размещения
balance7daysAgo <- yamarketrGetCosts(campaigns, # список магазинов, полученный на предыдущем шаге
                     Login = "login" # Ваш логин на Яндексе
                     )

# Получаем расходы по магазинам с 1 января до 30 сентября, по месяцам, с разбивкой по местам размещения
balancePlaces <- yamarketrGetCosts(campaigns, # список магазинов, полученный на предыдущем шаге
                   Login = "login", # Ваш логин на Яндексе
                   dateFrom="01-01-2018", # Начальная дата отчётного периода
                   dateFrom="30-09-2018", # Конечная дата отчётного периода
                   places = 1, # Указание разбивки по местам размещения
                   model = 1, # Указание подробной разбивки размещения в карточке модели
                   fetchBy = "monthly" # Разбивка по месяцам.
                   )


mrykin/yamarketr documentation built on March 29, 2021, 5:27 p.m.