ryandexdirect

R клиент для работы с API Яндекса, загрузка данных из Яндекс.Директ в R.


Project maintained by selesnow Hosted on GitHub Pages — Theme by mattgraham

Menu:


ryandexdirect - пакет для работы с API Яндекс.Директ версии 4, Live 4 и 5 на языке R.

Поддержать проект

Вы можете поддержать проект любой произвольной суммой воспользовавшись кнопкой или перейдя по этой ссылке.

Ссылки

CRAN

Ссылка на страницу пакета на CRAN

Бейджи

Rdoc rpackages.io rank

Содержание

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

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

видео уроки по работе с пакетом ryandexdirect.

Наиболее быстрый и эффективный способ обучение - просмотрт коротких видео уроков. На YouTube у пакета ryandexdirect есть официальный плейлист с такими уроками.

На данный момент в плей лист добавлено 5 уроков.

  1. Авторизация в API Яндекс Директ на языке R, опции пакета и переменные среды, R4marketing, июнь 2020
  2. Загрузка прогноза кликов, показов, трат, и отчётов из WordStat с помощью языка R, R4marketing, май 2020
  3. Как загрузить данные о расходах из Яндекс.Директ в Google Analytics, R4marketing, июнь 2020
  4. Как загрузить статистику из Яндекс.Директ с помощью языка R, R4marketing, сентябрь 2020
  5. Отправка уведомлений, о том, что на балансе Яндекс.Директ осталось мало средств, R4marketing, сентябрь 2020

установка пакета ryandexdirect.

Наиболее простой и распространённый способ установки из резитория CRAN использовать стандартную команду install.packages("ryandexdirect").

Так же вы можете установить dev версию из репозитория GitHub, для этого сначала требуется установить и подключить пакет devtools.

install.packages("devtools")

library(devtools)

После чего можно устанавливать пакет ryandexdirect. install_github('selesnow/ryandexdirect')

Пример кода

# Установка пакетов
install.packages("ryandexdirect")

# Подключение пакета
library(ryandexdirect)

# Авторизация 
yadirAuth(Login     = "my_yandex_login",  # логин пользователя Яндекс.Директ
          TokenPath = "C:/direct/tokens") # путь к папаке в которой будет храниться файл с учётными данными
	  
# ###################################################
# Загрузка различных объектов из рекламного аккаунта
# ###################################################

# Список рекламных кампаний
camp <- yadirGetCampaign(Logins    = "my_yandex_login",
                         TokenPath = "C:/direct/tokens",
                         States    = "ON",
                         Types     = "TEXT_CAMPAIGN")

# Список ключевых слов
kw <- yadirGetKeyWords(Login       = "my_yandex_login",
                       TokenPath   = "C:/direct/tokens",
                       CampaignIds = camp$Id[1:5],
                       States      = "ON")

# Список групп объявлений
adgroups <- yadirGetAdGroups(Login       = "my_yandex_login",
                             TokenPath   = "C:/direct/tokens",
                             CampaignIds = camp$Id[c(1,2)],
                             Types       = "TEXT_AD_GROUP",
                             Statuses    = c("ACCEPTED", "MODERATION"))

# Список объявлений
ads <- yadirGetAds(Login       = "my_yandex_login",
                   TokenPath   = "C:/direct/tokens",
                   CampaignIds = camp$Id[c(1,2)])

# Список быстрых ссылок 
links <- yadirGetSiteLinks(Login       = "my_yandex_login",
                           TokenPath   = "C:/direct/tokens")

# ###################################################
# Загрузка справочной информации
# ###################################################

# Справочник валют
currency <- yadirGetDictionary(DictionaryName = "Currencies",
                               Language       = "en",
                               Login          = "my_yandex_login",
                               TokenPath      = "C:/direct/tokens")

# Георгафический справочник
regions <- yadirGetDictionary(DictionaryName = "GeoRegions",
                              Language       = "ru",
                              Login          = "my_yandex_login",
                              TokenPath      = "C:/direct/tokens")

# ###################################################
# Загрузка статистики
# ###################################################

# простейший отчёт за прошлый месяц
simple_report <- yadirGetReport(DateRangeType = "LAST_MONTH",  # относительный период
                                FieldNames    = c("Date", "Clicks", "Impressions"),
                                Login         = "my_yandex_login",
                                TokenPath     = "C:/direct/tokens")

# отчёт по конверсиям с моделью аттрибуции за статичный период
attribution_report <- yadirGetReport(DateFrom          = "2018-11-15", # статичный период, дата начала
                                     DateTo            = "2018-11-20", # статичный период, дата завершения
                                     FieldNames        = c("Date", 
                                                           "Conversions"),
                                     Goals             = c(27475434, 38234732),
                                     AttributionModels = c("LC", "FC"),
                                     Login             = "my_yandex_login",
                                     TokenPath         = "C:/direct/tokens")

# отчёт с применением фильтрации
filtring_report <- yadirGetReport(DateRangeType = "LAST_30_DAYS",
                                  FieldNames    = c("Date", "Clicks", "Impressions"),
                                  FilterList    = c("Conversions GREATER_THAN 1", 
                                                    "Impressions LESS_THAN 3500"),
                                  Login         = "my_yandex_login",
                                  TokenPath     = "C:/direct/tokens")

Безопасность использования ryandexdirect для работы с API Яндекс.Директа

Наиболее подробно этот вопрос я осветил в статье “Насколько безопасно использовать R пакеты для работы с API рекламных систем”, которую опубликовал на Хабре.

Авторизация в API Яндекс.Директ осуществляется по протоколу OAuth2, если коротко этот протокол позволяет вам использовать стороние приложения для управления своими рекламными материалами не передавая свои учётные данные, логин и пароль орт входа в аккаунт.

В пакете ryandexdirect для авторизации есть 2 функци:

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

Объясню почему, вот как отображаются в Google Analytics данные о посещении страницы генерации кода подтверждения.

Т.е. код идёт после знака ‘?’, и считается GET параметром, который фиксирует счётчик Google Analytics, но срок жизни такого кода подтверждения заканчивается сразу после его использования, т.е. сразу после того, как вы ввели его в консоль R. Максимальный срок жизни такого кода - 10 минут.

Вторая функция yadirGetToken, осуществляет авторизацию по другой, упрощённой, описанной тут схеме. И при её использовании никакой код подтверждения не генерируется, т.е. после того, как вы дали пакету разрешение на доступ к данным вы попадаете на страницу генерации токена. Сам токен в URL возвращается после знака ‘#’, это не get параметр, а якорь, или как ещё называют эту часть URL - хеш. Браузер не передаёт эти данные, соответственно они не передаются дальше в отчёты Google Analytics, т.е. посещение этой страницы в отчётах отображаются вот так:

В этом, втором, случае рисков никаких нет, но минус использования функции yadirGetToken заключается в том, что она не сохраняет учётные данные в файл на вашем ПК, и далее соответственно не может использовать эти данные между разными R сессиями, а это не особо удобно. Токен полученный с его помощью вы будете хранить, и использовать в скриптах как текстовую строку, срок жизни такого токена 1 год, после чего пакет не сможет автоматически его заменить, как это происходит при использовании функции yadirGetAuth.

ВАЖНО никому не передавайте полученные с помощью пакета ryandexdirect авторизационные токены, т.к. передав токен вы предоставите доступ к управлению вашеми рекламными матеариалами, при этом доступ к аккаунту вы в любом случае не потеряете, но ваши объявления сможет редактировать человек завладевший токеном.

Сами токены храняться на стороне сервера oauth.yandex.ru и они недоступны человеку зарегистрировшему приложение, подробно о том как проходит авторизация на стороне Яндекса можно узнать из официальной документации в разделе “Что такое OAuth-авторизация и OAuth-токен”.

Весь код пакета ryandexdirect открыт, и перед его использованием вы можете ознакомиться с ним на GitHub.

Запись вебинара “Как маркетологу избавиться от рутины с помощью языка R”

Первые 28 минут вебинара полностью посвящены демонстрации работы с API Яндекс.Директ с помощью пакета ryandexdirect.

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

Получение токена

Для генерации токена в пакете есть две функции, yadirAuth и yadirGetToken. Получить токен можно с помощью любой из этих функций, но я рекомендую использовать yadirAuth, функция yadirGetToken считается устарвшей начиная с ryandexdirect 3.0.0.

Разница между ними состоит в том, что yadirGetToken просто генерирует токен и перенаправляет вас на страницу где вы можете его скопировать, а yadirAuth первый раз направляет вас на старницу где будет сгенерирован код для получения токена, после чего сама запрашивает токен и сохраняет в файл, в дальнейшем сама его обновляет и работает с сохранённым файлом.

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

В версии 3.5.0 в пакет была добавлена новая функция для прохождения аутентификации в API yadirAuth, но отдельно вызывать её для получения токена больше не требуется, при любом обращении к API если вы в используемой функции явно не указываете никакой токен, любая функция пакета сначала будет искать файл с сохранёнными учётными данными в рабочей директории, или в папке которую вы укажите в аргументе AgencyAccount, если файл найден то учётные данные будут загружены из него, если файл не был найден то будет открыт браузер и вам потребуется разрешить приложению ryandexdirect доступ к своему рекламному аккауну, далее будет сформирован код авторизации, который вам необходимо вставить в R консоль в ответ на запрос “Enter authorize code:”, после чего функция сама сохранит учётные данные в файл с именем login.yadirAuth.RData, где вместо login будет подставлен логин аккаунта к которому вы предоставили доступ, это необходимо для сохранения токенов полученных для разных аккаунтов. При следующих обращениях, все функции пакета будут запрашивать токен из сохранённого файла.

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

aut <- yadirAuth(Login = "Ваш логин в яндексе", NewUser = TRUE, TokenPath = "token_yandex")

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

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

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

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

Авторизация с помощью функции yadirGetToken()

Функция для получения токена для доступа к API Яндекс.Директ с помощью упрощённой одноэтапной аутентификации. Полученый токен используется во всех остальных функциях. Перед запуском функции необходимо авторизироваться в яндексе под логином через который есть доступ к аккаунту Яндекс.Директ, далее запустить функции, в окне браузера подтвердить разрешение на доступ к данным.

Как получить токен доступа к API Яндекс Директ

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

Можно получить токен воспользовавшись кнопкой

Ещё один способ получить токен, скопировать его, и использовать во всех остальных функциях как обычную текстовую строку.

Получить токен доступа к API!

Если у вас не отображается кнопка перейдите на страницу официальной документации ryandexdirect по этой ссылке.

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

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

Работа с обычным рекламным аккаунтом

Таким образом при работе с обычным рекламным аккаунтом вам необходимо передавать логин этого аккаунта в аргументе Login или Logins. При запуске любой функции в первую очередь будет запущен процесс поиска учётных данных для заданного логина в папке, название или путь к которой указан в аргументе TokenPath. Если файл с учётными данными для заданного логина был найден то работа функции будет продолжена без вашего вмешательства, если учётные данные для данного логина ещё не были получены, или были получены но вы не указали путь к папке в которой данный файл был сохранён то автоматически будет запущен веб браузер и вам потребуется пройти авторизацию и разрешить доступ пакету ryandexdirect к вашему рекламному аккаунту, учётные данные при этом будут сохранены в локальный файл и при дальнейшей работе будут загружаться именно из файла.

Работа с агентским аккаунтом

Для получения статистики по рекламным аккаунтам прикреплённым к агентскому аккаунту необходимо использовать аргумент AgencyAccount, в который необходимо передать логин или почту для вашего агентского аккаунта, а в аргумент Login / Logins передавать логин клиента, или вектор содержащий логины клиентов данного агентского аккаунта, по которым вы хотите запросить какие либо данные или совершить ещё какие либо действия.

Авторизация в данном случае будет проходить по агентскому аккаунту.

функции входящие в пакет ryandexdirect.


Функции для загрузки статистики из аккаунтов Яндекс Директ

Загрузка статистики из рекламных и агентских аккаунтов Яндкс Директс помощью сервиса Reports

yadirGetReport(ReportType = "CAMPAIGN_PERFORMANCE_REPORT", DateRangeType = "LAST_MONTH", DateFrom = NULL, DateTo = NULL, FieldNames = c("CampaignName","Impressions","Clicks","Cost"), FilterList = NULL, IncludeVAT = "NO", IncludeDiscount = "NO", Login = NULL, Token = NULL)

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

Аргументы:

ReportType - Тип отчёта, принимает на вход строку с одним из возможных значений:

Тип отчетаОписаниеДобавляется группировка данныхНе допускаются поля
ACCOUNT_PERFORMANCE_REPORTСтатистика по аккаунту рекламодателяСм. раздел Допустимые поля(https://tech.yandex.ru/direct/doc/reports/fields-list-docpage/)
CAMPAIGN_PERFORMANCE_REPORTСтатистика по кампаниямCampaignIdСм. раздел Допустимые поля(https://tech.yandex.ru/direct/doc/reports/fields-list-docpage/)
ADGROUP_PERFORMANCE_REPORTСтатистика по группам объявленийAdGroupIdСм. раздел Допустимые поля(https://tech.yandex.ru/direct/doc/reports/fields-list-docpage/)
AD_PERFORMANCE_REPORTСтатистика по объявлениямAdIdAudienceTargetId, Criteria, CriteriaId, DynamicTextAdTargetId, ImpressionShare, Keyword, Query, RlAdjustmentId, SmartBannerFilterId
CRITERIA_PERFORMANCE_REPORTСтатистика по условиям показаAdGroupId, CriteriaId, CriteriaTypeAdFormat, AdId, Placement, Query
CUSTOM_REPORTСтатистика с произвольными группировкамиImpressionShare, Query
SEARCH_QUERY_PERFORMANCE_REPORTСтатистика по поисковым запросамAdGroupId, QueryСм. раздел Допустимые поля(https://tech.yandex.ru/direct/doc/reports/fields-list-docpage/)

DateRangeType - Тип периода отчёта, принимает на вход строку с одним из следующих значений.

DateFrom и DateTo - Начальная и конечная дата отчётного периода, необходимо указывать только в случае если в аргументе DateRangeType вы указали CUSTOM_DATE.

FieldNames - Строковый вектор содержащий названия полей которые вы хотите в результате получить, список доступных всех полей находится тут, при этом не все поля и типы отчётов совместимы между собой, если в результате запроса вы получили ошибку 400 проверьте все ли поля в вашем запросе между собой совместимы с помощью этой таблицы

Подробное описание всех полей можно посмотреть по этой ссылке.

FilterList - Строковый вектор с описанием всех фильтров которые вы хотите применить к своим данным, пример FilterList = c(“Clicks GREATER_THAN 99”,”Impressions LESS_THAN 1000”), в данном случае вы получите таблицу агрегированные значения в которых имеют более 99 кликов и при этом менее 1000 показов, все перечисленные условия имеют между собой логическую связь “И”.

Goals - Идентификаторы целей Яндекс.Метрики, по которым требуется получить статистику (см. раздел Что такое цели. Типы целей помощи Яндекс.Метрики). Не более 10 элементов в массиве. Если параметр указан, то в отчете вместо полей ConversionRate, Conversions, CostPerConversion, GoalsRoi и Revenue с агрегированными данными по всем целям будут выведены аналогичные поля с именами вида *<поле>\_\_<модель\_атрибуции>* и данными по каждой цели в отдельности.

AttributionModels - Модели атрибуции, используемые при расчете данных по целям Яндекс.Метрики (см. раздел Модели атрибуции помощи Директа). Указывается вектором, прим c(“LC”, “FC”). Возможные значения:

IncludeVAT - Включать ли НДС в денежные суммы в отчете. Если рекламодатель работает в у. е. Директа, допускается только значение YES. Принимает значения “YES” и “NO”.

IncludeDiscount - Учитывать ли скидку для денежных сумм в отчете. Если рекламодатель работает в у. е. Директа, допускается только значение NO. Принимает значения “YES” и “NO”.

Login - Строковое вектор содержащий логины на Яндексе по которым необходимо получить данные.

Token - Токен дотупа к API, необязательный аргумент, можно передать токен в виде строки (пример “abcdef1234567”), можно передавать объект полученный с помощью функции yadirAuth, можно опустить этот аргумент, в таком случае сначала будет запущен поиск файла с учётными данными в рабочей директории или в папке путь к которой указан в аргументе “TokenPath”, если файл был найден то токен будет загружен из него, если файл не найден то будет открыт браузер и вам необходимо будет пройти аутентификацию.

TokenPath - Путь к папке в которой хранятся все файлы с учётными данными, по умолчанию все функции пакета пытаются найти нужный файл с хранящимися учётными данными в текущей рабочей директории, но вы можете указывать абсолютный или условный путь к совершенно любой папке на вашем ПК, в которой вы хотите хранить все учётные данные ваших аккаунтов Яндекс Директ. Пример условного пути TokenPath = “yandex_token”, в таком случае в рабочей директории будет создана папка yandex_token в которую и будут сохраняться все учётные данные, указав этот путь во всех функциях пакета вам не понадобится повторно запрашивать токены.

Функции для загрузки основных объектов из рекламных аккаунтов Яндекс Директ

Загрузка списка рекламных кампаний из аккаунта яндекс директ

yadirGetCampaign(Logins = NULL, States = c("OFF","ON","SUSPENDED","ENDED","CONVERTED","ARCHIVED"),Types = c("TEXT_CAMPAIGN","MOBILE_APP_CAMPAIGN","DYNAMIC_TEXT_CAMPAIGN"), Statuses = c("ACCEPTED","DRAFT","MODERATION","REJECTED"), StatusesPayment = c("DISALLOWED","ALLOWED"), Token = NULL)

Функция возвращает дата фрейм со списком рекламных кампаний и некоторых их параметров по логину.

Аргументы:

Login - Вектор с логинами на Яндексе

States - На вход принимает текстовый вектор, используется для для фильтрации кампаний в указанных состояниях. Описание состояний см. в разделе Статус и состояние кампании., допустимые значения ( “ARCHIVED” | “CONVERTED” | “ENDED” | “OFF” | “ON” | “SUSPENDED” ), пример использования (c(“ON”,”SUSPENDED”,”CONVERTED”))

Types - На вход принимает текстовый вектор, используется для фильтрации кампаний по типам, См. Тип кампании.

Statuses - На вход принимает текстовый вектор, используется для фильтрации кампаний по указанными статусами. Описание статусов см. в разделе Статус и состояние кампании.*

StatusesPayment - На вход принимает текстовый вектор, используется для фильтрации кампаний по указанным статусам оплаты. Описание статусов см. в разделе Статус и состояние кампании..*

Token - Токен дотупа к API, необязательный аргумент, можно передать токен в виде строки (пример “abcdef1234567”), можно передавать объект полученный с помощью функции yadirAuth, можно опустить этот аргумент, в таком случае сначала будет запущен поиск файла с учётными данными в рабочей директории или в папке путь к которой указан в аргументе “TokenPath”, если файл был найден то токен будет загружен из него, если файл не найден то будет открыт браузер и вам необходимо будет пройти аутентификацию.

Структура возвращаемого функцией yadirGetCampaign дата фрейма:

Поле
Тип данных
Описание
IdchrИдентификатор кампании.
NamechrНазвание кампании.
TypeFactorТип кампании ("TEXT_CAMPAIGN" | "MOBILE_APP_CAMPAIGN" | "DYNAMIC_TEXT_CAMPAIGN" | "UNKNOWN").
StatusFactorСтатус кампании ( "ACCEPTED" | "DRAFT" | "MODERATION" | "REJECTED" | "UNKNOWN" ).
StateFactorСостояние кампании ( "ARCHIVED" | "CONVERTED" | "ENDED" | "OFF" | "ON" | "SUSPENDED" | "UNKNOWN" ).
DailyBudgetAmountnumДневной бюджет кампании в валюте рекламодателя.
DailyBudgetModechrDISTRIBUTED — распределять дневной бюджет равномерно на весь день. STANDARD — дневной бюджет может исчерпаться, а показы завершиться ранее окончания дня.
CurrencyFactorВалюта кампании. Совпадает с валютой рекламодателя для всех кампаний.
StartDateDateДата начала показов объявлений.
ImpressionsintКоличество показов за время существования кампании.
ClicksintКоличество кликов за время существования кампании.
ClientInfochrНазвание клиента. Значение по умолчанию — наименование из настроек рекламодателя.
LoginchrЛогин пользователя на Яндексе.
SearchBidStrategyTypechrСтратегия показа объявлений в поисковой сети Яндекса
NetworkBidStrategyTypechrСтратегия показа объявлений в рекламной сети Яндекса

Загрузка списка групп объявлений агентского из рекламного аккаунта яндекс директ

yadirGetAdGroups(CampaignIds = NULL,Login = NULL, Token = NULL)

Функция возвращает дата фрейм со списком групп объявлений и некоторых их параметров по логину.

Аргументы:

CampaignIds - Вектор с ID рекламных кампаний, по которым необходимо загрузить список групп объявлений

Ids - ID групп объявлений которые необходимо получить

Types - Текстовый вектор, фильто по типу групп объявлений, пример: c("TEXT_AD_GROUP" ,"MOBILE_APP_AD_GROUP" ,"DYNAMIC_TEXT_AD_GROUP"), подробно о каждом типе групп можно узнать по ссылке

Statuses - Текстовый вектор, фильтр по статусу группы объявлений, пример c( "ACCEPTED", "DRAFT", "MODERATION", "PREACCEPTED", "REJECTED"), описание каждого статуса можно посмотреть по ссылке

Login - Логин на Яндексе

Token - Токен дотупа к API, необязательный аргумент, можно передать токен в виде строки (пример “abcdef1234567”), можно передавать объект полученный с помощью функции yadirAuth, можно опустить этот аргумент, в таком случае сначала будет запущен поиск файла с учётными данными в рабочей директории или в папке путь к которой указан в аргументе “TokenPath”, если файл был найден то токен будет загружен из него, если файл не найден то будет открыт браузер и вам необходимо будет пройти аутентификацию.

Структура возвращаемого функцией yadirGetAdGroups дата фрейма:

Поле
Тип данных
Описание
IdnumИдентификатор группы объявлений.
NameFactorНазвание группы.
CampaignIdintИдентификатор кампании.
TypeFactorТип группы объявлений. См. Тип группы.
SubtypeFactorПодтип группы объявлений. Для групп с типом, отличным от DYNAMIC_TEXT_AD_GROUP, возвращается значение NONE.
StatusFactorСтатус группы. См. Статус группы.
ServingStatusFactorСтатус возможности показов группы. См. Статус возможности показов группы.
NegativeKeywordschrМинус-фразы, общие для всех ключевых фраз группы объявлений.
TrackingParamsFactorET-параметры для отслеживания источников переходов на сайт, которые добавляются в ссылку всех объявлений группы (не более 1024 символов). Могут содержать подстановочные переменные. Например: from=direct&ad={ad_id} Параметр можно указать для группы любого типа, однако в настоящее время он используется только для групп динамических объявлений. Для других типов групп указанные GET-параметры в ссылку не добавляются.
RegionIdsFactorИдентификаторы регионов, для которых показы включены или выключены. Идентификатор 0 — показывать во всех регионах. Минус перед идентификатором региона — выключить показы в данном регионе. Например [1,-219] — показывать для Москвы и Московской области, кроме Черноголовки.
RestrictedRegionIdschrИдентификаторы регионов, в которых объявления не будут показаны в связи с законодательными ограничениями.
MobileAppAdGroupStoreUrlchrСсылка на приложение в магазине приложений AppStore или Google Play (не более 1024 символов). Должна содержать протокол. Недоступна для изменения.
MobileAppAdGroupTargetDeviceTypechr На каких устройствах показывать объявления: DEVICE_TYPE_MOBILE — смартфоны; DEVICE_TYPE_TABLET — планшеты.
MobileAppAdGroupTargetCarrierchrПо каким типам подключения к интернету показывать объявления: WI_FI_ONLY — только по Wi-FI; WI_FI_AND_CELLULAR — по мобильной связи и Wi-Fi.
MobileAppAdGroupTargetOperatingSystemVersionchrМинимальная версия операционной системы, на которой может быть показано объявление. Например, 2.3. Примечание. Если минимальная версия ОС в магазине приложений выше, чем заданная в параметре, то объявления будут показаны только для версий ОС как в магазине приложений или выше.
MobileAppAdGroupAppIconModerationStatuschrРезультат модерации иконки мобильного приложения: ACCEPTED — принята модерацией; MODERATION — находится на модерации; REJECTED — отклонена.
MobileAppAdGroupAppIconModerationStatusClarificationchrТекстовое пояснение к статусу и/или причины отклонения на модерации.
MobileAppAdGroupAppOperatingSystemTypechrТип операционной системы (определяется автоматически на основании данных из магазина приложений): IOS — iOS; ANDROID — Android; OS_TYPE_UNKNOWN — данные из магазина приложений еще не получены.
MobileAppAdGroupAppAvailabilityStatuschrДоступно ли приложение в магазине приложений: AVAILABLE — доступно; NOT_AVAILABLE — недоступно; UNPROCESSED — данные из магазина приложений еще не получены.
DynamicTextAdGroupDomainUrlchrДоменное имя сайта, для которого требуется сгенерировать динамические объявления (не более 100 символов). Протокол указывать не нужно.
DynamicTextAdGroupDomainUrlProcessingStatuschrСтатус генерации динамических объявлений: UNPROCESSED — генерация объявлений не завершена; PROCESSED — объявления созданы; EMPTY_RESULT — не удалось создать ни одного объявления.
DynamicTextFeedAdGroupSourcechrИдентификатор фида.
DynamicTextFeedAdGroupSourceTypechrТип источника данных. В настоящее время доступно только значение RETAIL_FEED. фида.
DynamicTextFeedAdGroupSourceProcessingStatuschrСтатус генерации динамических объявлений: UNPROCESSED — генерация объявлений не завершена; PROCESSED — объявления созданы; EMPTY_RESULT — не удалось создать ни одного объявления.

Пример кода для получения списка групп объявлений:

#Подключаем пакет
library(ryandexdirect)
#Получаем данные по группам объявлений
my_adgroups <- yadirGetAdGroups(Login = "ВАШ ЛОГИН")

Загрузка списка ключевых слов из рекламного аккаунта Яндекс Директ

yadirGetKeyWords(CampaignIds = c(1,2,3), WithStats = T, Login = NULL, Token = NULL)

Функция возвращает дата фрейм со списком групп объявлений и некоторых их параметров по логину.

Аргументы:

Необходимо использовать только 1 из аргументов CampaignIds, AdGroupIds, Ids.

CampaignIds - Вектор с ID рекламных кампаний, по которым необходимо загрузить список групп объявлений

AdGroupIds - Вектор с ID групп объявлений, по которым необходимо загрузить список групп объявлений

Ids - Вектор из Id ключевых слов которые необхоимо загрузить

States - Текстовый вектор, фильтр по состоянию объявлений, пример c("OFF","ON","SUSPENDED"). Подробнее о каждом состоянии можно узнать тут.

WithStats - Логическое TRUE или FALSE, аргумент отвечает за загрузку статистики по показам и кликам, в случае если вы установите значение TRUE время работы функции будет значительно дольше.

Login - Логин на Яндексе

Token - Токен дотупа к API, необязательный аргумент, можно передать токен в виде строки (пример “abcdef1234567”), можно передавать объект полученный с помощью функции yadirAuth, можно опустить этот аргумент, в таком случае сначала будет запущен поиск файла с учётными данными в рабочей директории или в папке путь к которой указан в аргументе “TokenPath”, если файл был найден то токен будет загружен из него, если файл не найден то будет открыт браузер и вам необходимо будет пройти аутентификацию.

Структура возвращаемого функцией yadirGetKeyWords дата фрейма:

Поле
Тип данных
Описание
IdnumИдентификатор ключевой фразы.
KeywordFactorКлючевая фраза. Может содержать минус-слова.
AdGroupIdnumИдентификатор группы объявлений, к которой относится ключевая фраза.
CampaignIdintИдентификатор кампании, к которой относится ключевая фраза.
ServingStatusFactorСтатус возможности показов группы объявлений. Описание статусов см. в разделе Статус возможности показов группы.
StateFactorСостояние ключевой фразы. Описание состояний см. в разделе Статус и состояние фразы.
StatusFactorСтатус ключевой фразы. Описание статусов см. в разделе Статус и состояние фразы.
StrategyPriorityFactorПриоритет фразы: LOW, NORMAL или HIGH.
StatisticsSearchImpressionsintКоличество показов всех объявлений группы в поиске по данной фразе. Рассчитывается за 28 дней от текущей даты. Для расчета отбираются дни, в течение которых был хотя бы один показ объявления по данной фразе.
StatisticsSearchClicks intКоличество кликов по всем объявлениям группы в поиске, показанным по данной фразе. Рассчитывается за 28 дней от текущей даты. Для расчета отбираются дни, в течение которых был хотя бы один клик по объявлению.
StatisticsNetworkImpressionsintКоличество показов всех объявлений группы по данной фразе в сетях. Рассчитывается за 28 дней от текущей даты. Для расчета отбираются дни, в течение которых был хотя бы один показ объявления по данной фразе.
StatisticsNetworkClicksintКоличество кликов по всем объявлениям группы, показанным по данной фразе в сетях. Рассчитывается за 28 дней от текущей даты. Для расчета отбираются дни, в течение которых был хотя бы один клик по объявлению.
UserParam1FactorЗначение подстановочной переменной {param1}. Не более 255 символов.
UserParam2FactorЗначение подстановочной переменной {param2}. Не более 255 символов.
ProductivityValuenumЗначение продуктивности фразы (до 1 знака после запятой).
ProductivityReferencesFactorМассив номеров рекомендаций для данной фразы. Справочник рекомендаций можно получить с помощью функции yadirGetDictionary, указав в качестве параметра DictionaryName "ProductivityAssertions".
BidnumСтавка на поиске.
ContextBidnumСтавка в сетях.

Пример кода для получения списка ключевых слов:

#Подключаем пакет
library(ryandexdirect)
#Получаем данные по ключевым словам
my_keywords <- yadirGetKeyWords(CampaignIds = my_campaign$Id, 
                                WithStats = F,
                                Login = "ВАШ ЛОГИН")

Загрузка списка объявлений из рекламного аккаунта Яндекс Директ

yadirGetAds(CampaignIds = c(1,2,3), Login = NULL, Token = NULL)

Функция возвращает дата фрейм со списком групп объявлений и некоторых их параметров по логину.

Аргументы:

Необходимо испольовать только один из аргументов CampaignIds, AdGroupIds, Ids CampaignIds - Вектор с ID рекламных кампаний, по которым необходимо загрузить список групп объявлений

AdGroupIds - Вектор с ID групп объявлений, по которым необходимо загрузить список групп объявлений

Ids - Вектор из Id объявлений, данные по которым надо получить

States - Ветор, фильтрация по состоянию объявления, пример c("OFF","ON","SUSPENDED","OFF_BY_MONITORING","ARCHIVED"). Подробнее о состоянии объявления можно узнать по ссылке.

Login - Логин на Яндексе

Token - Токен дотупа к API, необязательный аргумент, можно передать токен в виде строки (пример “abcdef1234567”), можно передавать объект полученный с помощью функции yadirAuth, можно опустить этот аргумент, в таком случае сначала будет запущен поиск файла с учётными данными в рабочей директории или в папке путь к которой указан в аргументе “TokenPath”, если файл был найден то токен будет загружен из него, если файл не найден то будет открыт браузер и вам необходимо будет пройти аутентификацию.

Структура возвращаемого функцией yadirGetAds дата фрейма:

Поле
Тип данных
Описание
IdnumИдентификатор объявления.
AdGroupIdnumИдентификатор группы объявлений, к которой относится объявление.
CampaignIdintИдентификатор кампании, к которой относится объявление.
TypeFactorТип объявления. См. Тип объявления.
SubtypeFactorодтип объявления. Для объявлений с типом, отличным от IMAGE_AD, возвращается значение NONE.
StatusFactorСтатус объявления. Описание статусов см. в разделе Статус и состояние объявления.
AgeLabelchrВозрастная метка.
StateintСостояние объявления. Описание состояний см. в разделе Статус и состояние объявления.
TextAdTitleFactorЗаголовок 1. Не более 35 символов без учета «узких» плюс не более 15 «узких» символов. Каждое слово не более 22 символов. В случае использования шаблона символы # не учитываются в длине).
TextAdTitle2chrЗаголовок 2. Не более 30 символов без учета «узких» плюс не более 15 «узких» символов. Каждое слово не более 22 символов. В случае использования шаблона символы # не учитываются в длине).
TextAdTextFactorТекст объявления. Не более 81 символа без учета «узких» плюс не более 15 «узких» символов. Каждое слово не более 23 символов. В случае использования шаблона символы # не учитываются в длине).
TextAdHrefFactorСсылка на сайт рекламодателя.
TextAdDisplayDomainFactorРекламируемый домен. Определяется автоматически на основе ссылки объявления.
TextAdMobileFactorПризнак того, что объявление является мобильным: YES или NO.
TextImageAdHrefchrХэш изображения. Для текстово-графических объявлений подходят только изображения с типом REGULAR и WIDE.

Пример кода для получения списка ключевых слов:

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

#Получаем данные по ключевым словам
my_ads <- yadirGetAds(CampaignIds = my_campaign$Id, 
                      Login = "ВАШ ЛОГИН")

Загрузка параметров общих счетов из аккаунтов Яндекс Директ.

yadirGetBalance(Logins = NULL, Token = NULL)

Функция предназначена для загрузки остатка средств из общего счёта аккаунта рекламодателя, либо аккаунта клиента агентства со всеми доступными параметрами общего счёта.

Аргументы:

Logins - Текстовый вектор содердащий Логин аккаунта рекламодателя на Яндексе, либо логин клиента агентсва.

Token - Токен дотупа к API, необязательный аргумент, можно передать токен в виде строки (пример “abcdef1234567”), можно передавать объект полученный с помощью функции yadirAuth, можно опустить этот аргумент, в таком случае сначала будет запущен поиск файла с учётными данными в рабочей директории или в папке путь к которой указан в аргументе “TokenPath”, если файл был найден то токен будет загружен из него, если файл не найден то будет открыт браузер и вам необходимо будет пройти аутентификацию.

Структура возвращаемого функцией yadirGetBalance дата фрейма:

Поле
Тип данных
Описание
AmountchrТекущий баланс общего счета (в валюте общего счета, указанной в параметре Currency).
AccountIDintИдентификатор общего счета.
DiscountintТекущая скидка рекламодателя (в процентах). В настоящее время не применяется.
LoginchrЛогин рекламодателя — владельца общего счета.
AmountAvailableForTransferchrСумма, доступная для перевода с помощью операции TransferMoney (в валюте, указанной в параметре Currency).
CurrencychrВалюта общего счета. Возможные значения: RUB, CHF, EUR, KZT, TRY, UAH, USD, BYN. Если параметр отсутствует или равен NULL, подразумеваются условные единицы (у. е.).
AgencyNamechrНазвание рекламного агентства, обслуживающего счет. Для счетов, обслуживаемых рекламодателем самостоятельно, параметр отсутствует или равен NULL
SmsNotification.MoneyInSmschrСообщать об зачислении средств на общий счет — Yes/No.
SmsNotification.SmsTimeTochrВремя, до которого разрешено отправлять SMS о событиях, связанных с общим счетом. Указывается в формате HH:MM, минуты задают кратно 15 (0, 15, 30, 45).
SmsNotification.SmsTimeFromchrВремя, начиная с которого разрешено отправлять SMS о событиях, связанных с общим счетом. Указывается в формате HH:MM, минуты задают кратно 15 (0, 15, 30, 45).
SmsNotification.MoneyOutSmschrСообщать об исчерпании средств на общем счете — Yes/No.
EmailNotification.MoneyWarningValueintМинимальный баланс, при уменьшении до которого отправляется уведомление. Задается в процентах от суммы последнего платежа. Предустановленное значение — 20.
EmailNotification.SendWarnlogiОтправлять оповещение на почту о том что закончились средства на основном счёте.
EmailNotification.EmailchrАдрес электронной почты для отправки уведомлений, связанных с общим счетом.

Пример кода для получения остатка средств с аккаунтов яндекс директ:

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

#Получаем остаток средств общего счёта для аккаунта рекламодателя
my_balance <- yadirGetBalance(Logins = "vasya")

#Получаем список клиентских аккаунтов
my_client <- yadirGetClientList(AgencyAccount = "agency_account_login")
#Получаем остатки средств на общих счетах всех клиентов агентского аккаунта
my_clients_balance <- yadirGetBalance(Logins = my_client$Login,
                                      AgencyAccount = "agency_account_login")

Загрузка списка быстрых ссылок из аккаунтов Яндекс Директа

yadirGetSiteLinks(Login, Token)

Функция для загрузки списка быстрых ссылок и их параметров, Id, текста, адресса и описания.

Аргументы

Login - Строковое вектор содержащий логины на Яндексе по которым необходимо получить данные.

Ids - Вектор из Id быстрых ссылок.

Token - Токен дотупа к API, необязательный аргумент, можно передать токен в виде строки (пример “abcdef1234567”), можно передавать объект полученный с помощью функции yadirAuth, можно опустить этот аргумент, в таком случае сначала будет запущен поиск файла с учётными данными в рабочей директории или в папке путь к которой указан в аргументе “TokenPath”, если файл был найден то токен будет загружен из него, если файл не найден то будет открыт браузер и вам необходимо будет пройти аутентификацию.

Пример загрузки быстрых ссылок

library(ryandexdirect)
ya_token <- yadirAuth(Login = "Ваш Логин в Директе")
my_links <- yadirGetSiteLinks(Login = "Ваш Логин в Директе", Token = ya_token)

Функции для загрузки списка клиентов из агентского аккаунта Яндекс Директ

Загрузка списка клиентов из агентского аккаунта яндекс директ

yadirGetClientList(AgencyAccount = NULL, Token = NULL, TokenPath = getwd())

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

Структура возвращаемого функцией yadirGetClientList дата фрейма:

Поле
Тип данных
Описание
LoginchrЛогин пользователя на Яндексе
FIOchrФамилия Имя Отчество указанные в аккаунте клиентом
StatusArchFactorУчетная запись пользователя помещена в архив — Yes/No
DateCreatePOSIXctДата регистрации пользователя, YYYY-MM-DD.
RoleFactorРоль в Яндекс.Директе: Client — клиент рекламного агентства, или прямой рекламодатель, или представитель прямого рекламодателя; Agency — рекламное агентство или представитель агентства.
EmailchrАдрес электронной почты клиента
PhonechrКонтактный телефон в произвольном формате.

Загрузка параметров клиентов из агентского аккаунта яндекс директ

yadirGetClientParam(Language = "ru", Login = NULL, Token = NULL)

Функция возврщает Data frame с основными параметрами аккаунта Яндекс Директ.

Аргументы:

Language - Язык ответа

Login - Логин на Яндексе

Token - Токен дотупа к API, необязательный аргумент, можно передать токен в виде строки (пример “abcdef1234567”), можно передавать объект полученный с помощью функции yadirAuth, можно опустить этот аргумент, в таком случае сначала будет запущен поиск файла с учётными данными в рабочей директории или в папке путь к которой указан в аргументе “TokenPath”, если файл был найден то токен будет загружен из него, если файл не найден то будет открыт браузер и вам необходимо будет пройти аутентификацию.

Структура возвращаемого функцией yadirGetClientParam дата фрейма:

Поле
Тип данных
Описание
LoginchrЛогин пользователя Директа.
ClientIdintИдентификатор рекламодателя.
CountryIdintИдентификатор страны рекламодателя из справочника регионов. Справочник регионов можно получить с помощью функции yadirGetDictionary.
CurrencychrВалюта рекламодателя. Справочник валют можно получить с помощью функции yadirGetDictionary.
CreatedAtchrДата регистрации пользователя в Директе, в формате YYYY-MM-DD.
ClientInfochrФИО пользователя Директа.
AccountQualitynumПоказатель качества аккаунта.
CampaignsTotalPerClientintМаксимальное количество кампаний у рекламодателя.
CampaignsUnarchivePerClientintмаксимальное количество кампаний, не находящихся в архиве.
APIPointsintСуточный лимит баллов API.

Функции для загрузки справочной информации Яндекс Директ

Загрузка справочников из API Яндекс Директ

yadirGetDictionary(DictionaryName = "GeoRegions", Language = "ru", Login = NULL, Token = NULL)

Функция для загрузки справочников из API v.5. Яндекс Директ.

Аргументы

DictionaryName - Название справочника, принимает одно из следующих значений в текстовом виде.

DictionaryNameОписание
AdCategoriesОсобые категории рекламируемых товаров и услуг.
ConstantsОграничения на значения параметров.
CurrenciesКурсы валют, валютные параметры и ограничения.
GeoRegionsРегионы.
MetroStationsСтанции метрополитена (только для Москвы, Санкт-Петербурга и Киева).
OperationSystemVersionsмобильных приложений.
ProductivityAssertionsРекомендации по повышению продуктивности.
TimeZonesЧасовые пояса.
SupplySidePlatformsВнешние сети (SSP).
InterestsИнтересы к категориям мобильных приложений.

Language - Язык предупреждений и сообщеий (не обязательный аргумент)

Login - Строковое значение, ваш логин на Яндексе.

Token - Токен дотупа к API, необязательный аргумент, можно передать токен в виде строки (пример “abcdef1234567”), можно передавать объект полученный с помощью функции yadirAuth, можно опустить этот аргумент, в таком случае сначала будет запущен поиск файла с учётными данными в рабочей директории или в папке путь к которой указан в аргументе “TokenPath”, если файл был найден то токен будет загружен из него, если файл не найден то будет открыт браузер и вам необходимо будет пройти аутентификацию.

Функции для управления показами реклмных объявлений в аккаунтах Яндекс Директа

Остановка и возобновление показов объявлений в аккаунтах Яндекс Директ на уровне объявлений

yadirStartAds(Login = NULL, Ids = NULL, Token = NULL)

Функция возобновляет показ по объявлениям и возвращает вектор с Id объявлений, по котором не удалось возобновить показы.

Аргументы

Ids - Числовой или текстовый вектор, содержащий Id объявлений по которым необходимо возобновить показ объявлений.

Login - Строковое значение, ваш логин на Яндексе.

Token - Токен дотупа к API, необязательный аргумент, можно передать токен в виде строки (пример “abcdef1234567”), можно передавать объект полученный с помощью функции yadirAuth, можно опустить этот аргумент, в таком случае сначала будет запущен поиск файла с учётными данными в рабочей директории или в папке путь к которой указан в аргументе “TokenPath”, если файл был найден то токен будет загружен из него, если файл не найден то будет открыт браузер и вам необходимо будет пройти аутентификацию.

Пример кода для возобновления показа объявлений

#Получаем токен
yadirAuth(Login = "Логин")

#Получаем список рекламных кампаний
my_camp <- yadirGetCampaignList(Login = "Логин")

#Получаем список остановленных и выключенных объявлений
my_ads <- yadirGetAds(Login = "Логин", States = c("SUSPENDED","OFF"))

#Возобнолвям показы объявлений
err <- yadirStartAds(Login = "Логин", Ids = my_ads$Id) 

yadirStopAds(Login = NULL, Ids = NULL, Token = NULL)

Функция останавливает показ по объявлениям и возвращает вектор с Id объявлений, по котором не удалось возобновить показы.

Аргументы

Ids - Числовой или текстовый вектор, содержащий Id объявлений по которым необходимо остановить показ.

Login - Строковое значение, ваш логин на Яндексе.

Token - Токен дотупа к API, необязательный аргумент, можно передать токен в виде строки (пример “abcdef1234567”), можно передавать объект полученный с помощью функции yadirAuth, можно опустить этот аргумент, в таком случае сначала будет запущен поиск файла с учётными данными в рабочей директории или в папке путь к которой указан в аргументе “TokenPath”, если файл был найден то токен будет загружен из него, если файл не найден то будет открыт браузер и вам необходимо будет пройти аутентификацию.

Пример кода для остановки показа объявлений

#Получаем список рекламных кампаний
my_camp <- yadirGetCampaignList(Login = "Логин")

#Получаем список остановленных и выключенных объявлений
my_ads <- yadirGetAds(Login = "Логин", States = "ON")

#Останавливаем показы объявлений
err <- yadirStopAds(Login = "Логин", Ids = my_ads$Id) 

Остановка и возобновление показов объявлений в аккаунтах Яндекс Директ на уровне реклмных кампаний

yadirStartCampaigns(Login = NULL, Ids = NULL, Token = NULL)

Функция возобновляет показ по объявлениям по рекламным кампаниям и возвращает вектор с Id рекламных кампаний, по котором не удалось возобновить показы.

Аргументы

Ids - Числовой или текстовый вектор, содержащий Id рекламных кампаний по которым необходимо возобновить показ объявлений.

Login - Строковое значение, ваш логин на Яндексе.

Token - Токен дотупа к API, необязательный аргумент, можно передать токен в виде строки (пример “abcdef1234567”), можно передавать объект полученный с помощью функции yadirAuth, можно опустить этот аргумент, в таком случае сначала будет запущен поиск файла с учётными данными в рабочей директории или в папке путь к которой указан в аргументе “TokenPath”, если файл был найден то токен будет загружен из него, если файл не найден то будет открыт браузер и вам необходимо будет пройти аутентификацию.

Пример кода для возобновления показа объявлений по рекламым кампаниям

#Получаем список рекламных кампаний
my_camp <- yadirGetCampaignList(Login = "Логин")

#Возобнолвям показы объявлений
err <- yadirStartCampaigns(Login = "Логин", Ids = my_camp$Id) 

yadirStopCampaigns(Login = NULL, Ids = NULL, Token = NULL)

Функция останавливает показ по объявлениям по рекламным кампаниям и возвращает вектор с Id рекламных кампаний, по котором не удалось возобновить показы.

Аргументы

Ids - Числовой или текстовый вектор, содержащий Id рекламных кампаний по которым необходимо остановить показ объявлений.

Login - Строковое значение, ваш логин на Яндексе.

Token - Токен дотупа к API, необязательный аргумент, можно передать токен в виде строки (пример “abcdef1234567”), можно передавать объект полученный с помощью функции yadirAuth, можно опустить этот аргумент, в таком случае сначала будет запущен поиск файла с учётными данными в рабочей директории или в папке путь к которой указан в аргументе “TokenPath”, если файл был найден то токен будет загружен из него, если файл не найден то будет открыт браузер и вам необходимо будет пройти аутентификацию.

Пример кода для остановки показа объявлений по рекламным кампаниям

#Получаем список рекламных кампаний
my_camp <- yadirGetCampaignList(Login = "Логин")

#Останавливаем показы объявлений
err <- yadirStopCampaigns(Login = "LOGIN", Ids = my_camp$Id) 

Остановка и возобновление показов объявлений в аккаунтах Яндекс Директ на уровне ключевых слов

yadirStartKeyWords(Login = NULL, Ids = NULL, Token = NULL)

Функция возобновляет показ объявлений по ключевым словам и возвращает вектор с Id ключевых слов, по котором не удалось возобновить показы.

Аргументы

Ids - Числовой или текстовый вектор, содержащий Id ключевых словй по которым необходимо возобновить показ объявлений.

Login - Строковое значение, ваш логин на Яндексе.

Token - Токен дотупа к API, необязательный аргумент, можно передать токен в виде строки (пример “abcdef1234567”), можно передавать объект полученный с помощью функции yadirAuth, можно опустить этот аргумент, в таком случае сначала будет запущен поиск файла с учётными данными в рабочей директории или в папке путь к которой указан в аргументе “TokenPath”, если файл был найден то токен будет загружен из него, если файл не найден то будет открыт браузер и вам необходимо будет пройти аутентификацию.

Пример кода для возобновления показа объявлений по ключевым словам

#Получаем список рекламных кампаний
my_camp <- yadirGetCampaignList(Login = "Логин")

#Получаем список ключевых слов
my_kw <- yadirGetKeyWords(Login = "Логин",CampaignIds = my_camp$Id[1:10])

#Возобнолвям показы объявлений
err <- yadirStartCampaigns(Login = "Логин", Ids = my_kw$Id) 

yadirStopKeyWords(Login = NULL, Ids = NULL, Token = NULL)

Функция останавливает показ объявлениям по ключевым словам и возвращает вектор с Id ключевых слов, по котором не удалось возобновить показы.

Аргументы

Ids - Числовой или текстовый вектор, содержащий Id ключевых слов по которым необходимо остановить показ объявлений.

Login - Строковое значение, ваш логин на Яндексе.

Token - Токен дотупа к API, необязательный аргумент, можно передать токен в виде строки (пример “abcdef1234567”), можно передавать объект полученный с помощью функции yadirAuth, можно опустить этот аргумент, в таком случае сначала будет запущен поиск файла с учётными данными в рабочей директории или в папке путь к которой указан в аргументе “TokenPath”, если файл был найден то токен будет загружен из него, если файл не найден то будет открыт браузер и вам необходимо будет пройти аутентификацию.

Пример кода для остановки показа объявлений по ключевым словам

#Получаем токен
yadirAuth(Login = "Логин")

#Получаем список рекламных кампаний
my_camp <- yadirGetCampaignList(Login = "Логин")

#Получаем список ключевых слов
my_kw <- yadirGetKeyWords(Login = "Логин", CampaignIds = my_camp$Id[1:10])

#Останавливаем показы объявлений
err <- yadirStopKeyWords(Login = "Логин", Ids = my_kw$Id) 

Функции для управления ставками ключевых слов и автотаргетингов

Загрузка данных о ставках ключевых слов

yadirGetKeyWordsBids(KeywordIds = NULL, AdGroupIds = NULL, CampaignIds = NULL, AuctionBids = NA, Login = NULL, Token = NULL)

Функция возвращает ставки и приоритеты для ключевых фраз и автотаргетингов, отвечающих заданным критериям, а также данные торгов: ставки и списываемые цены для различных объемов трафика на поиске и ставки для охвата различных долей аудитории в сетях.

Аргументы

KeywordIds - Идентификатор ключевой фразы или автотаргетинга.

AdGroupIds - Идентификатор группы объявлений, к которой относится ключевая фраза или автотаргетинг.

CampaignIds - Идентификатор кампании, к которой относится ключевая фраза или автотаргетинг.

AuctionBids - Тип аукционов данные о торгах на которым вы хотите получить, возможные значения. Возможные значения NA, search и network.

Пример кода получения ставок ключевых слов

# запрашиваем список ключевых слов
kw <- yadirGetKeyWords()
                       
# запрашиваем ставки
bids  <- yadirGetKeyWordsBids(kw$Id)

# запрашиваем ставки и данные торго на поиске
bids_search <- yadirGetKeyWordsBids(kw$Id,
                                    AuctionBids = "search")
                                    
# запрашиваем ставки и данные торго в сетях
network_bids <- yadirGetKeyWordsBids(kw$Id,
                                     AuctionBids = "network")

Назначить фиксированные ставки и приоритеты для ключевых фраз и автотаргетингов.

yadirSetKeyWordsBids(KeywordIds = NULL, AdGroupIds = NULL, CampaignIds = NULL, AuctionBids = NA, Login = NULL, Token = NULL)

Аргументы

KeywordIds - Идентификатор ключевой фразы или автотаргетинга;

AdGroupIds - Идентификатор группы объявлений, к которой относится ключевая фраза или автотаргетинг;

CampaignIds - Идентификатор кампании, к которой относится ключевая фраза или автотаргетинг;

StrategyPriority - Приоритет фразы: LOW, NORMAL или HIGH. Только для автоматической стратегии.

SearchBid - Ставка на поиске. Только для ручной стратегии. Указывается в валюте рекламодателя.

NteworkBid - Ставка в сетях. Только для ручной стратегии с независимым управлением ставками в сетях. Указывается в валюте рекламодателя.

Пример кода назначения ставок ключевых слов

# запрашиваем список рекламных кампаний
camp <- yadirGetCampaign()

# меняем ставки
setbid     <- yadirSetKeyWordsBids(CampaignIds = camp$Id[1],
                                   SearchBid   = 9)

Назначить для фраз ставки на поиске в зависимости от желаемого объема трафика или ставки в сетях в зависимости от желаемой частоты показа

yadirSetAutoKeyWordsBids(KeywordIds = NULL, AdGroupIds = NULL, CampaignIds = NULL, TargetTrafficVolume = NA,SearchIncreasePercent = NULL, SearchBidCeiling = NULL, TargetCoverage = NULL, NetworkIncreasePercent = NULL, NetworkBidCeiling = NULL, Login = NULL, Token = NULL)

KeywordIds - Идентификатор ключевой фразы или автотаргетинга;

AdGroupIds - Идентификатор группы объявлений, к которой относится ключевая фраза или автотаргетинг;

CampaignIds - Идентификатор кампании, к которой относится ключевая фраза или автотаргетинг;

TargetTrafficVolume - Желаемый объем трафика на поиске. Указывается в процентах от 5 до 100. К ставке, соответствующей выбранному объему трафика, прибавляется надбавка (см. аргумент SearchIncreasePercent).

SearchIncreasePercent - Процент надбавки от 0 до 1000. Если не задан, надбавка не рассчитывается.

SearchBidCeiling - Ограничение на ставку. Целое число. Указывается в валюте рекламодателя.

TargetCoverage - Желаемая частота показа (доля аудитории) в сетях. Указывается в процентах от 1 до 100. К ставке, соответствующей выбранной частоте показа, прибавляется надбавка (см. параметр NetworkIncreasePercent).

NetworkIncreasePercent - Процент надбавки от 0 до 1000. Если не задан, надбавка не рассчитывается.

NetworkBidCeiling - Ограничение на ставку, умноженное на 1 000 000. Целое число. Указывается в валюте рекламодателя.

Пример кода автоматического назначения ставок ключевых слов

# запрашиваем список ключевых слов
kw <- yadirGetKeyWords()

# меняем ставки
autosetbids <- yadirSetAutoKeyWordsBids(KeywordIds = kw$Id,
                                        TargetTrafficVolume = 50)

Функции для получения прогноза бюджета и подбора фраз

Подробную справку по данному функционалу вы можете получить из соответствующей виньетки или данного видео обзора.

Получить отчет о статистике поисковых запросов из сервиса WordStat

ydirGetWordStatReport

Аргументы

Phrases - Вектор ключевых фраз, по которым требуется получить статистику поисковых запросов (не более 10 фраз в кодировке UTF-8). Ключевые фразы могут содержать минус-фразы. Минус-фразу из нескольких слов следует заключить в скобки, например: холодильник -морозильник -(морозильная камера) -ремонт;

GeoID - Вектор идентификаторов регионов. Позволяет получать статистику поисковых запросов, сделанных только в указанных регионах. Чтобы исключить регион, перед его идентификатором ставят минус, например [1,-219] — получить статистику для Москвы и Московской области, кроме Черноголовки. Статистика выдается суммарно по всем плюс-регионам, из которых исключены все минус-регионы. Получить справочник регионов можно с помощью функции yadirGetDictionary();

Пример кода для запроса отчётов из сервиса WordStat

s_ws_rep <- yadirGetWordStatReport(c('купить смартфон',
                                     'купить сотовый телефон',
                                     'купить мобильный',
                                     'samsung -(серого цвета)'),
                                   Login = "selesnow")

Получить отчет о прогнозируемом количестве показов и кликов, затратах на кампанию.

ydirGetForecast

Аргументы

Phrases - Вектор ключевых фраз, для которых требуется получить прогноз (не более 100 фраз);

GeoID - Вектор, содержащий идентификаторы регионов для составления прогноза. Если не задан, прогноз составляется по всем регионам.;

Currency - Валюта, в которой должны быть выражены цены клика и суммарные затраты в отчете. Возможные значения: RUB, CHF, EUR, KZT, TRY, UAH, USD, BYN.;

AuctionBids - Выводить ли в отчете результаты торгов — Yes/No или TRUE / FALSE. Если не задано, подразумевается No.;

Пример кода для запроса прогноза

library(dplyr)
# запрашиваем справочник регионов
regions <- yadirGetDictionary(Login = "selesnow")
# получаем идентификатор России
regions <- regions %>%
  filter(GeoRegionName %in% c("Россия"))
# получаем идентификатор минус регионов и помечаем их минусом
minus_regions <- regions %>%
  filter(GeoRegionName %in% c("Москва",
                              "Санкт-Петербург",
                              "Екатеринбург",
                              "Владивосток")) %>%
  mutate(GeoRegionId = paste0("-", GeoRegionId))
# запрашиваем прогноз с результататми торгов
forecast <- yadirGetForecast2(Phrases = c('купить смартфон -xiaomi', 
                                         'купить xiaomi',
                                         'самсунг -(серого цвета)'),
                             GeoID   = c(regions$GeoRegionId, minus_regions$GeoRegionId),
                             AuctionBids = 'Yes',
                             Login   = "selesnow")

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

Пример кода для работы с пакетом ryandexdirect для агентских аккаунтов

Перед запуском кода замените логин агентского аккаунта на логин, под которым вы входите в ваш агентский аккаунт.

# подключение пакета
library(ryandexdirect)

# авторизация под агентским аккаунтом
yadirAuth(Login = "логин агентского аккаунта")

# список клиентов из агентского аккаунта
clientList <- yadirGetClientList(AgencyAccount = "логин агентского аккаунта")

# запрос списка рекламных кампаний из клиентских аккаунтов привязанных к агентскому аккаунту
campaignList <- yadirGetCampaignList(Logins = clientList$Login, 
                                     AgencyAccount = "логин агентского аккаунта")

# загрузка статистики из рекламных аккаунтов привязанных к агентскому аккаунту
stat <- yadirGetReport(ReportType = "ACCOUNT_PERFORMANCE_REPORT", 
                            DateRangeType = "CUSTOM_DATE", 
                            DateFrom = "2018-01-01", 
                            DateTo = "2018-05-10", 
                            FieldNames = c("AdNetworkType",
                                           "Impressions",
                                           "Clicks",
                                           "Cost"), 
			    AgencyAccount = "логин агентского аккаунта",
                            Login = clientList$Login)

Пример кода для работы с пакетом ryandexdirect для обычного рекламного аккаунтов

Перед запуском кода замените значение “yandex_login”, передаваемое в аргумент Login функции yadirGetReport на логин под которым вы авторизуетесь в рекламном аккаунте Яндекс Директ.

library(ryandexdirect)
statistic <- yadirGetReport(ReportType = "ACCOUNT_PERFORMANCE_REPORT", 
                            DateRangeType = "CUSTOM_DATE", 
                            DateFrom = "2018-01-01", 
                            DateTo = "2018-05-10", 
                            FieldNames = c("AdNetworkType",
                                           "Impressions",
                                           "Clicks",
                                           "Cost"), 
                            Login = "yandex_login", 
                            TokenPath = "token_yandex")

Загрузка данных из агентского рекламного аккаунта Яндекс Директ.


# Пример работы с агентским рекламным аккаунтом
library(ryandexdirect)

# Задаём переменную с логином агентского аккаунта

agency_login <- "YourLogin"

# Загрузка списка клиентов
clients <- yadirGetClientList(AgencyAccount = "netpeak.kz", 
                              TokenPath = agency_login )

# Загрузка статистики по всем клиентам агентского аккаунта
agancy_stats <- yadirGetReport(ReportType = "ACCOUNT_PERFORMANCE_REPORT", 
                               DateRangeType = "CUSTOM_DATE", 
                               DateFrom = "2018-01-01", 
                               DateTo = "2018-05-10", 
                               FieldNames = c("AdNetworkType",
                                              "Impressions",
                                              "Clicks",
                                              "Cost"), 
                               Login = clients$Login, 
                               AgencyAccount = agency_login ,
                               TokenPath = "token_yandex")

Вместо YourLogin подставьте в виде строки ваш логин на Яндексе, для примеры работы с фильтрами данный запрос вернёт рекламные кампании по которым за выбранный период было более 49 кликов и менее 1001 показа.

Данные в отчете можно агрегировать по различным периодам. Для этого укажите в аргументе FieldNames одно из значений Date, Week, Month, Quarter или Year.

Аргумент Login является векторизирован с версии 2.4.1 и может принимать на вход вектор логинов.

Подключаем пакет ryandexdirect

library(ryandexdirect)

Получаем токен для доступа к API

myToken <- yadirAuth(Login = "Ваш Логин на Яндексе")

После запуска функции автоматически будет открыт браузер, на странице с выданным вам токеном, скопируйте его и вставьте в консоль R.

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

Далее в случае если у вас агетский аккаунт получаем список всех клиентов:

clientList <- yadirGetClientList(myToken)

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

campaignList <- yadirGetCampaignList(logins = clientList$Login, token = myToken)

Для того, что бы получить дата фрейм со статиской по кампаниям в разрезе дней осталось воспользоваться функцией yadirGetSummaryStat

stat <- yadirGetSummaryStat(campaignIDS = campaigns$Id],
                            dateStart = "2016-01-01",
                            dateEnd = "2016-06-30",
                            currency = "USD",
                            token = myToken)

пример работы с функцией yadirGetDictionary для загрузки справочников из API v.5. Яндекс Директ.

library(ryandexdirect)
myToken <- yadirGetToken()
Regions <- yadirGetDictionary(DictionaryName = "GeoRegions", 
                              Language = "ru", 
                              login = <YourLogin>, 
                              token = myToken

Вместо YourLogin подставьте в виде строки ваш логин на Яндексе, данный запрос загрузит в R справочник регионов Яндекс Директ.

как обратиться к API сервисов Яндекс.Директ и Яндекс.Метрика с помощью proxy сервера, необходимо в случае блокировки доступа к сервисам.

Для обхода блокировки API сервиса Яндекс.Директ, и Яндекс.Метрика необходимо сделать следующие действия:

library(ryandexdirect)
Sys.setenv(https_proxy="http://104.37.212.5:3128")
My_report <- yadirGetReport(ReportType = "CAMPAIGN_PERFORMANCE_REPORT", 
                            DateRangeType = "CUSTOM_DATE", 
                            DateFrom = '2017-01-01', 
                            DateTo = '2017-01-31', 
                            FieldNames = c("CampaignName","Impressions","Clicks"), 
                            FilterList = c("Clicks GREATER_THAN 49","Impressions LESS_THAN 1001"), 
                            Login = <YourLogin>, 
                            Token = "897rn4jfk3jhfyb9ufjhkjdhks3390uui")
Sys.unsetenv("https_proxy")           

подборка статей с примерами работы с пакетом ryandexdirect.


Автор пакета: Алексей Селезнёв, Head of Analytics Dept. at Netpeak

Контакты
email: selesnow@gmail.com
skype: selesnow
telegram: @AlexeySeleznev
Facebook Vkontakte Linkedin Blog GitHub Stepic