(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-58RGS9P'); window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-114798296-1'); ul.nm_ul { list-style: none; /*убираем маркеры списка*/ margin: 0; /*убираем отступы*/ padding-left: 0; /*убираем отступы*/ margin-top:25px; /*делаем отступ сверху*/ background:#DCDCDC; /*добавляем фон всему меню*/ height: 30px; /*задаем высоту*/ } a.nm_a { text-decoration: none; /*убираем подчеркивание текста ссылок*/ background:#696969; /*добавляем фон к пункту меню*/ color:#fff; /*меняем цвет ссылок*/ padding:0px 7px; /*добавляем отступ*/ font-family: arial; /*меняем шрифт*/ line-height:30px; /*ровняем меню по вертикали*/ display: block; border-right: 1px solid #677B27; /*добавляем бордюр справа*/ -moz-transition: all 0.3s 0.01s ease; /*делаем плавный переход*/ -o-transition: all 0.3s 0.01s ease; -webkit-transition: all 0.3s 0.01s ease; } a.nm_a:hover { background:#FF8C00;/*добавляем эффект при наведении*/ } li.nm_li { float:left; /*Размещаем список горизонтально для реализации меню*/ position:relative; /*задаем позицию для позиционирования*/ } /*Стили для скрытого выпадающего меню*/ li.nm_li > ul.nm_ul { position:absolute; top:5px; display:none; } /*Делаем скрытую часть видимой*/ li.nm_li:hover > ul.nm_ul { display:block; width:280px; /*Задаем ширину выпадающего меню*/ } li.nm_li:hover > ul.nm_ul > li.nm_li { float:none; /*Убираем горизонтальное позиционирование*/ }
Ссылка на страницу пакета на CRAN
Пакет ryandexdirect предназначен для загрузки данных из Яндекс Директ и Яндекс Метрики в R, с помощью функций данного пакета вы можете работать с перечисленными ниже сервисами и службами API Яндекса с помощью готовых функций, не углубляясь при этом в документацию по работе с этими API сервисами.
Наиболее простой и распространённый способ установки из резитория 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")
Наиболее подробно этот вопрос я осветил в статье "Насколько безопасно использовать R пакеты для работы с API рекламных систем", которую опубликовал на Хабре.
Авторизация в API Яндекс.Директ осуществляется по протоколу OAuth2, если коротко этот протокол позволяет вам использовать стороние приложения для управления своими рекламными материалами не передавая свои учётные данные, логин и пароль орт входа в аккаунт.
В пакете ryandexdirect для авторизации есть 2 функци:
yadirAuth
- двухэтапная авторизацияyadirGetToken
- одноэтапная авторизацияПри использовании функции 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.
Первые 28 минут вебинара полностью посвящены демонстрации работы с API Яндекс.Директ с помощью пакета ryandexdirect
.
Для генерации токена в пакете есть две функции, 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 дней токен автоматически будет обновлён, и файл с учётными данными перезаписан.
Ещё раз обращаю внимание на то, что хоть вы в любой момент при желании можете пройти аутентификацию в API Яндекс Директ с помощью функции yadirAuth, но это действие не является обязательным, т.к. при использовании любой функции пакета будет запущен поиск файла с учётными данными, и если файл не будет найден, то автоматически будет запущен процесс авторизации и запроса токена.
yadirGetToken()
Функция для получения токена для доступа к API Яндекс.Директ с помощью упрощённой одноэтапной аутентификации. Полученый токен используется во всех остальных функциях. Перед запуском функции необходимо авторизироваться в яндексе под логином через который есть доступ к аккаунту Яндекс.Директ, далее запустить функции, в окне браузера подтвердить разрешение на доступ к данным.
Полученный токен необходимо скопировать с сайта и ввести в консоль R, далее вам будет предложено сохранить полученный токен в файл, рекомендуется отвечать y
, в таком случае вам не придётся проходить авторизации при старте новой R сессии.
Ещё один способ получить токен, скопировать его, и использовать во всех остальных функциях как обычную текстовую строку.
Если у вас не отображается кнопка перейдите на страницу официальной документации ryandexdirect по этой ссылке.
Во всех функции пакета существуют общие аргументы, в дальнейшем эти аргументы рассматриваться в описании функций не будут. + Login / Logins - Логин или вектор содержащий логины клиентов агентского аккаунта, в этот аргумент необходимо указывать логин в случае если вы запрашиваете данные из обычного рекламного аккаунта Яндекс Директ, или же логин клиентского аккаунта привязаного к вашему агентскому аккаунту, в таком случае в рабочей директории будет создан отдельный файл под каждый рекламный аккаунт, в котором будут хранится нужные для работы учётные данные. + Token - С версии 3.0.0 этот аргумент больше не является обязательным, вы по прежнему можете передавать в него токены в виде строки, полученные с помощью функции yadirGetToken, так же можете передавать объекты учётных данных полученные с помощью новой функции yadirAuth, либо просто опустить данный агрумент. + AgencyAccount - В случае если вы работаете с агентского аккаунта в этот аргумент необходимо передавать логин вашего агентского аккаунта, для каждого агентского аккаунта с которым вы работаете так же будет создан отдельный файл для хранения учётных данных. + TokenPath - Путь к папке в которой хранятся все файлы с учётными данными, по умолчанию все функции пакета пытаются найти нужный файл с хранящимися учётными данными в текущей рабочей директории, но вы можете указывать абсолютный или условный путь к совершенно любой папке на вашем ПК, в которой вы хотите хранить все учётные данные ваших аккаунтов Яндекс Директ. Пример условного пути TokenPath = "yandex_token", в таком случае в рабочей директории будет создана папка yandex_token в которую и будут сохраняться все учётные данные, указав этот путь во всех функциях пакета вам не понадобится повторно запрашивать токены.
Таким образом при работе с обычным рекламным аккаунтом вам необходимо передавать логин этого аккаунта в аргументе Login или Logins. При запуске любой функции в первую очередь будет запущен процесс поиска учётных данных для заданного логина в папке, название или путь к которой указан в аргументе TokenPath. Если файл с учётными данными для заданного логина был найден то работа функции будет продолжена без вашего вмешательства, если учётные данные для данного логина ещё не были получены, или были получены но вы не указали путь к папке в которой данный файл был сохранён то автоматически будет запущен веб браузер и вам потребуется пройти авторизацию и разрешить доступ пакету ryandexdirect к вашему рекламному аккаунту, учётные данные при этом будут сохранены в локальный файл и при дальнейшей работе будут загружаться именно из файла.
Для получения статистики по рекламным аккаунтам прикреплённым к агентскому аккаунту необходимо использовать аргумент AgencyAccount, в который необходимо передать логин или почту для вашего агентского аккаунта, а в аргумент Login / Logins передавать логин клиента, или вектор содержащий логины клиентов данного агентского аккаунта, по которым вы хотите запросить какие либо данные или совершить ещё какие либо действия.
Авторизация в данном случае будет проходить по агентскому аккаунту.
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 - Тип периода отчёта, принимает на вход строку с одним из следующих значений.
LAST_BUSINESS_WEEK — прошлая рабочая неделя с понедельника по пятницу; На схеме:
LAST_WEEK_SUN_SAT — прошлая неделя с воскресенья по субботу;
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")) + Допустимые значения: ARCHIVED, CONVERTED, ENDED, OFF, ONSUSPENDED + Пример использования: States = c("ON","SUSPENDED","CONVERTED")
Types - На вход принимает текстовый вектор, используется для фильтрации кампаний по типам, См. Тип кампании. + Допустимые значения: TEXT_CAMPAIGN, MOBILE_APP_CAMPAIGN, DYNAMIC_TEXT_CAMPAIGN + Пример использования: Types = c("TEXT_CAMPAIGN", "DYNAMIC_TEXT_CAMPAIGN")
Statuses - На вход принимает текстовый вектор, используется для фильтрации кампаний по указанными статусами. Описание статусов см. в разделе Статус и состояние кампании.* + Допустимые значения: ACCEPTED, DRAFT, MODERATION, REJECTED + Пример использования: Statuses = c("DRAFT", "REJECTED")
StatusesPayment - На вход принимает текстовый вектор, используется для фильтрации кампаний по указанным статусам оплаты. Описание статусов см. в разделе Статус и состояние кампании..* + Допустимые значения: DISALLOWED, ALLOWED + Пример использования: Statuses = c("DISALLOWED", "ALLOWED")
Token - Токен дотупа к API, необязательный аргумент, можно передать токен в виде строки (пример "abcdef1234567"), можно передавать объект полученный с помощью функции yadirAuth
, можно опустить этот аргумент, в таком случае сначала будет запущен поиск файла с учётными данными в рабочей директории или в папке путь к которой указан в аргументе "TokenPath", если файл был найден то токен будет загружен из него, если файл не найден то будет открыт браузер и вам необходимо будет пройти аутентификацию.
yadirGetCampaign
дата фрейма: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
дата фрейма:#Подключаем пакет
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
дата фрейма:#Подключаем пакет
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
дата фрейма:#Подключаем пакет
library(ryandexdirect)
#Получаем данные по ключевым словам
my_ads <- yadirGetAds(CampaignIds = my_campaign$Id,
Login = "ВАШ ЛОГИН")
yadirGetBalance(Logins = NULL, Token = NULL)
Функция предназначена для загрузки остатка средств из общего счёта аккаунта рекламодателя, либо аккаунта клиента агентства со всеми доступными параметрами общего счёта.
Logins - Текстовый вектор содердащий Логин аккаунта рекламодателя на Яндексе, либо логин клиента агентсва.
Token - Токен дотупа к API, необязательный аргумент, можно передать токен в виде строки (пример "abcdef1234567"), можно передавать объект полученный с помощью функции yadirAuth
, можно опустить этот аргумент, в таком случае сначала будет запущен поиск файла с учётными данными в рабочей директории или в папке путь к которой указан в аргументе "TokenPath", если файл был найден то токен будет загружен из него, если файл не найден то будет открыт браузер и вам необходимо будет пройти аутентификацию.
yadirGetBalance
дата фрейма:#Подключаем пакет
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
дата фрейма:yadirGetClientParam(Language = "ru", Login = NULL, Token = NULL)
Функция возврщает Data frame с основными параметрами аккаунта Яндекс Директ.
Language - Язык ответа
Login - Логин на Яндексе
Token - Токен дотупа к API, необязательный аргумент, можно передать токен в виде строки (пример "abcdef1234567"), можно передавать объект полученный с помощью функции yadirAuth
, можно опустить этот аргумент, в таком случае сначала будет запущен поиск файла с учётными данными в рабочей директории или в папке путь к которой указан в аргументе "TokenPath", если файл был найден то токен будет загружен из него, если файл не найден то будет открыт браузер и вам необходимо будет пройти аутентификацию.
yadirGetClientParam
дата фрейма: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)
Перед запуском кода замените логин агентского аккаунта на логин, под которым вы входите в ваш агентский аккаунт.
# подключение пакета
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)
Перед запуском кода замените значение "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 и может принимать на вход вектор логинов.
library(ryandexdirect)
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)
library(ryandexdirect)
myToken <- yadirGetToken()
Regions <- yadirGetDictionary(DictionaryName = "GeoRegions",
Language = "ru",
login = <YourLogin>,
token = myToken
Вместо YourLogin подставьте в виде строки ваш логин на Яндексе, данный запрос загрузит в R справочник регионов Яндекс Директ.
Для обхода блокировки API сервиса Яндекс.Директ, и Яндекс.Метрика необходимо сделать следующие действия: Найти любой сервис генерирующий списки доступных прокси например этот Выбрать в фильтре тип прокси поддерживающий HTTPS. Сформировать список доступных прокси серверов.
Далее нам понадобятся только IP адрес и порт прокси сервера (я обычно использую сервера с портом 3128):
В данном случае в качестве примера возьмём американский сервер который находится в третей строке списка IP 104.37.212.5 порт 3128, далее в код R перед функцией обращения к API необходимо направить интернет соединение через прокси сервер добавив в код строку
Sys.setenv(https_proxy="http://104.37.212.5:3128")
После пишем обычный код обращения к API.
После чего добавляем строку для отклчения интернет соединения от прокси сервера с помощью строки.
Sys.unsetenv("https_proxy")
В случае если прокси сервер требует прохождения аутентификации вы можете указать имя пользователя и пароль:
Sys.setenv(https_proxy="http://user:password@proxy_server:port")
* Проверить установилась ли необходимая настройка соединения можно с помощью команды:
Sys.getenv("https_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")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.