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

Содержание
Если вы интересуетесь анализом данных возможно вам будут полезны мои telegram и youtube каналы. Большая часть контента которых посвящены языку R.
- Какой софт нам потребуется
- Как начать работу с R пакетами
- CRAN или GitHub
- Какие навыки нужны для работы с R пакетами
- ryandexdirect — загрузка данных из Яндекс.Директ
- Возможности пакета
ryandexdirect - Основные функции
- Пример кода для загрузки статистики с помощью пакета ryandexdirect
- Возможности пакета
- RAdwords — загрузка данных из Google Ads (ex Google AdWords)
- Возможности пакета
RAdwords - Основные функции пакета
RAdwords - Пример работы с пакетом
RAdwords
- Возможности пакета
- adwordsR — более новый и функциональный пакет для загрузка=и данных из Google Ads (ex Google AdWords)
- Возможности пакета adwordsR
- Основные функции пакета adwordsR
- Пример работы с пакетом adwordsR
- rfacebookstat — загрузка данных из рекламных кабинетов Facebook
- Возможности пакета rfacebookstat
- Основные функции пакета rfacebookstat
- Пример кода для работы с rfacebookstat
- rvkstat — загрузка данных из API Вконтакте
- Возможности пакета rvkstat
- Основные функции пакета rvkstat
- Пример кода для работы с пакетом rvkstat
- rmytarget — загрузка данных из API MyTarget
- Возможности пакета rmytarget
- Основные функции пакета rmytarget
- Пример кода для работы с rmytarget
- rym — загрузка данных из API Яндекс.Метрики
- Основные возможности пакета rym
- Основные функции пакета rym
- Пример работы с пакетом rym
- Заключение
Какой софт нам потребуется
Т.к. в данной статье мы говорим про язык R, то вам потребуется сам R и среда разработки RStudio.
И язык R, и RStudio являются бесплатным, свободно распространяемым программным обеспечением, поэтому вы свободно можете скачивать их из официальных сайтов.
Никаких сложностей с устновкой данного ПО у вас не должно возникнуть, но тем не менее, вот ссылка на короткий видео урок по этой теме.
Как начать работу с R пакетами
Ничего сложного для начала работы с R пакетами нет, осуществляется это следующим образом:
- Установка пакета, как правило с помощью базовой команды
install.packages; - Подключение пакета, каждый раз при старте нового сеанса работы с R, данная оперция может быть выполнена с помощью команды
libraryилиrequire.
Разница между library и require заключается только в том, что library выдаст ошибку в случае попытки подключения пакета, который у вас не установлен, а require в этом же случае просто покажет предупреждение, при этом выполнение скрипта будет продолжено.
Для установки приведённых в статье пакетов с GitHub вам предварительно необходимо установить пакет devtools, для этого выполните команду install.packages("devtools").
CRAN или GitHub
В ходе чтения данной статьи у вас возможно возникнет вопрос из какого репозитория лучше устанавливать тот, или иной пакет, на самом деле на GitHub как правило лежат наиболее актуальные dev версии пакетов от разработчиков, т.е. в них есть все новые функции которых возможно нет в версии пакета которая доступна на CRAN, но соответственно dev версия может быть на момент загрузки не достаточно протестирована и содержать ошибки.
Версия на CRAN перед загрузкой тщательно проверяется командой специалистов, и должна соответствовать всем требованиям политики данного репозитория, в случае загрузки пакета с CRAN вы можете быть уверены, что он никак не навредит вашим данным, не будет создать без вашего разрешения какие либо непонятные файлы на вашем ПК и т.д.
Какие навыки нужны для работы с R пакетами
На самом деле от вас потребуется только понимание предметной области интернет маркетинга, никаких навыков программирования в данном случае не требуется, т.к. речь буде идти о готовых пакетах, используя функции из которых вы сможете автоматизировать руинную часть своей работы.
В статье не будет подробного описание по работе с каждой функцией рассматриваемых пакетов, т.к. такая статья была бы слишком длинной, но я опишу возможности каждого пакета, дам список основных функций которые вам потребуется, а так же дам ссылку на официальную документацию, с помощью которой вы уже сможете наиболее подробно разобраться со всеми доступными в том, или ином пакете функциями. К тому же к каждому пакету я приведу небольшой пример кода, что бы вам был более понятен синтаксис.
ryandexdirect — загрузка данных из Яндекс.Директ
Установка пакета с CRAN: install.packages("ryandexdirect")
Установка пакета с GitHub: devtools::install_github("selesnow/ryandexdirect")
Официальная документация: ссылка
Данный пакет предназначен для работы с API одной из наиболее популярных рекламных площадок в СНГ — Яндекс.Директ.
Возможности пакета ryandexdirect
- Авторизация в API Яндекса;
- Загрузка списка рекламных кампаний, ключевых слов, объявлений;
- Загрузка статистических данных из аккаунтов Яндекс.Директ с помощью сервиса Reports.
- Остановка и возобновление показов объявлений на уровне рекламных кампаний, ключевых слов и объявлений.
- Запрос остатка средств и других параметров общего счёта.
- Загрузка справочной информации (курсы валют, географический справочник и т.д.)
Основные функции
Основные функции доступные в ryandexdirect, которые могут вам понадобиться для работы с API Яндекс.Директ:
yadirAuth— Авторизация в API;yadirGetAds,yadirGetCampaignList,yadirGetKeyWords— Загрузка списка объявлений, рекламных кампаний, ключевых слов;yadirGetReport— Загрузка статистики из Яндекс.Директ.yadirGetDictionary— Загрузка справочной информации.yadirStartAds,yadirStartCampaigns,yadirStartKeyWords—
library(ryandexdirect) stat <- yadirGetReport(ReportType = "ACCOUNT_PERFORMANCE_REPORT", DateRangeType = "CUSTOM_DATE", DateFrom = "2018-01-01", DateTo = "2018-05-10", FieldNames = c("AdNetworkType", "Impressions", "Clicks", "Cost"), FilterList = c("CampaignId IN 123456 ,987654","Clicks GREATER_THAN 100"), IncludeVAT = "YES", IncludeDiscount = "NO", Login = "ваш логин", TokenPath = "C:/token_yandex")
Более подробно о каждом аргументе можно узнать из официальной справке ryandexdirect или Яндекс.Директ API Reports сервис.
Так же достаточно подробно пакет ryandexdirect рассмотрен в вебинаре "Как маркетологу избавиться от рутины с помощью языка R и наконец то заняться маркетингом".
RAdwords — загрузка данных из Google Ads (ex Google AdWords)
Установка пакета с CRAN: install.packages("RAdwords")
Установка пакета с GitHub: devtools::install_github("jburkhardt/RAdwords")
Официальная документация: ссылка
Возможности пакета RAdwords
Основная возможность данного пакета — авторизация в API Google Ads и загрузка статистики из всех доступных в данном интерфейсе отчётов.
Основные функции пакета RAdwords
На самом деле пакет в принципе содержит не особо много функций, но я за всё время пользовался всего тремя:
doAuth— Авторизация;statement— Формирование тела запроса к API;getData— Загрузка данных из API.
library(RAdwords) # запрос токена adw_token <- doAyth() # формирование запроса body <- statement(select=c('AccountDescriptiveName', 'ExternalCustomerId', 'AccountCurrencyCode', 'AdNetworkType1', 'RegionCriteriaId', 'CountryCriteriaId', 'CityCriteriaId', 'Device', 'Month', 'Year', 'Impressions', 'Clicks', 'Interactions', 'VideoViews', 'Cost', 'Conversions' ), report="GEO_PERFORMANCE_REPORT", start="2018-09-01", end="2018-09-20") my_data <- getData(clientCustomerId = "000-000-0000", google_auth = adw_token , statement = body, transformation = T)
Список доступных в API Google Ads отчётов, и полей вы можете найти по ссылке в официальной справке.
Этот пакет также рассматривается в вебинаре "Как маркетологу избавиться от рутины с помощью языка R и наконец то заняться маркетингом".
adwordsR — более новый и функциональный пакет для загрузка=и данных из Google Ads (ex Google AdWords)
Установка пакета с CRAN: install.packages("adwordsR")
Установка пакета с GitHub: devtools::install_github("cran/adwordsR")
Пакет adwordsR по смыслу схож с RAdwords, но он более новый, и имеет гораздо больший набор функций.
Возможности пакета adwordsR
Помимо описанных выше возможностей пакета RAdwords, adwordsR даёт вам широкие возможности по работе с TargetingIdeaService, службе с помощью которой можно получать варианты таргетинга прямо из инструмента или платформы, что помогает автоматизировать оптимизацию аккаунта.
Основные функции пакета adwordsR
generateAdwordsToken— Запрос токена для работы с API Google Ads;loadAdwordsToken— Загрузка запрошенного, и сохранённого ранее токена;getReportData— Загрузка статистики из аккаунта Google Ads.
library(adwordsR) # Запрос токена adw_token <- generateAdwordsToken(saveNewToken = TRUE, addGitignore = FALSE) # Загрузка ранее сохранённого токена adw_token <- loadAdwordsToken() # Запрос данных AdWordsData <- getReportData(reportType = "CAMPAIGN_PERFORMANCE_REPORT", startDate = "2018-08-01", endDate = "2018-08-15", clientCustomerId = "000-000-0000", credentials = adw_token, attributes = "CampaignName,CampaignStatus", segment = "Date,AdNetworkType1", metrics = "AverageCost,Clicks,Conversions", includeZeroImpressions = TRUE, useRequestedHeaders = FALSE)
rfacebookstat — загрузка данных из рекламных кабинетов Facebook
Установка пакета с CRAN: install.packages("rfacebookstat")
Установка пакета с GitHub: devtools::install_github("selesnow/rfacebookstat")
Официальная документация: ссылка
Возможности пакета rfacebookstat
- Авторизация в API Facebook
- Загрузка списка доступных вам бизнес-менеджеров;
- Загрузка списка рекламных аккаунтов;
- Загрузка списка рекламных кампаний, групп объявлений, объявлений.
- Загрузка статистики на уровне рекламного аккаунта, рекламных кампаний, групп объявлений и объявлений.
- Загрузка списка пользователей у которых есть доступ к рекламному аккаунту.
- Управление доступами к рекламным аккаунтам.
Основные функции пакета rfacebookstat
fbGetToken— Авторизация в API Facebook;fbGetBusinessManagers— Загрузка списка бизнес менеджера;fbGetAdAccounts— Загрузка списка рекламных аккаунтов;fbGetCampaigns,fbGetAds,fbGetAdSets— Загрузка списка рекламных кампаний, объявлений и групп объявлений;fbGetMarketingStat— Загрузка статистики из рекламных аккаунтов Facebook.
library(rfacebookstat) token <- fbGetToken(app_id = 00000000000000) fb_data <- fbGetMarketingStat(accounts_id = "act_00000000000000", level = "campaign", fields = "campaign_name,actions", action_breakdowns = "action_link_click_destination", date_start = "2017-11-01", date_stop = "2017-11-20", interval = "day", access_token = token)
У пакета rfacebookstat есть официальный плейлист на YouTube с подробными, русскоязычными видео уроками.
rvkstat — загрузка данных из API Вконтакте
Установка пакета с GitHub: devtools::install_github("selesnow/rvkstat")
Официальная документация: ссылка
Достаточно мощный и многофункциольный пакет для работы с API социальной сети Вконтакте.
Возможности пакета rvkstat
- Авторизация в API Вконтакте;
- Загрузка данных из рекламных кабинетов Вконтакте;
- Загрузка справочной информации из Вконтакте;
- Загрузка некоторой информации о пользователе Вконтакте;
- Загрузка статистики из рекламного кабинета Вконтакте;
- Загрузка статистики о посещениях сообществ Вконтакте.
Основные функции пакета rvkstat
Пакет rvkstat на момент написания статьи содержит более 30 функции, вот наиболее полезные из них:
vkAuth— Авторизация;vkGetAdStatistics— Загрузка статистики из рекламного кабинета;vkGetAdCampaigns,vkGetAds— Загрузка списка рекламных кампаний и объявлений;vkGetGroupStat— Загрузка статистики о посещении групп и сообществ Вконтакте.
library(rvkstat) my_tok <- vkAuth(app_id = 111,app_secret = "efbscuyewb7cb4ru4bj") # Список рекламных кампаний camp <- vkGetAdCampaigns(account_id = 1, access_token = my_tok$access_token) # Статистика по рекламным кампаниям vk_stat_by_campaign <- vkGetAdStatistics(account_id = 1, ids_type = "campaign", ids = camp$id , period = "day", date_from = "2010-01-01", date_to = "2017-09-10", access_token = my_tok$access_token)
rmytarget — загрузка данных из API MyTarget
Установка пакета с CRAN: install.packages("rmytarget")
Установка пакета с GitHub: devtools::install_github("selesnow/rmytarget")
Официальная документация: ссылка
Возможности пакета rmytarget
- Авторизация в API MyTarget по схеме Code Grant;
- Загрузка списка рекламных кампаний, объявлений.
- Загрузка статистики на уровне рекламных кампаний и объявлений.
Основные функции пакета rmytarget
myTarAuth— Авторизация;myTarGetAdList,myTarGetCampaignList— Загрузка списка объявлений и рекламных кампаний;myTarGetStats— Загрузка статистики по объявлениям и рекламным кампаниям.
library(rmytarget) # запрос списка объявлений Ads <- myTarGetAdList(login = "ваш логин") # запрос статистики по объявлениям a_stat <- myTarGetStats(date_from = "2016-08-01", date_to = "2016-08-10", object_type = "banners", object_id = Ads$id, stat_type = "day", login = "ваш логин")
rym — загрузка данных из API Яндекс.Метрики
Установка пакета с CRAN: install.packages("rym")
Установка пакета с GitHub: devtools::install_github("selesnow/rym")
Официальная документация: ссылка
Основные возможности пакета rym
Пакет rym позволяет вам работать со всеми доступными в Яндекс.Метрики API интерфейсами:
- Авторизация по протоколу oAuth2;
- Работа с API управления;
- Работа с API отчётов;
- Работа с API совместимым с Core API Google Analytics v3;
- Работа с Logs API.
Основные функции пакета rym
rym_auth— Авторизаця;rym_get_counters— Загрузка списка счётчиков Яндекс.Метрики;rym_get_data— Загрузка данных из API отчётов;rym_get_ga— Загрузка данных из API совместимым с Core API Google Analytics;rym_get_logs— Загрузка сырых данных из Logs API.
reporting.api.stat <- rym_get_data(counters = "00000000,111111111", date.from = "2018-08-01", date.to = "yesterday", dimensions = "ym:s:date,ym:s:lastTrafficSource", metrics = "ym:s:visits,ym:s:pageviews,ym:s:users", filters = "ym:s:trafficSourceName=='Переходы из поисковых систем' AND ym:s:isNewUser=='Yes'", sort = "-ym:s:date", accuracy = "full", login = "ваш логин", token.path = "metrica_token", lang = "ru")
Вебинар Как автоматизировать работу с данными Яндекс.Метрики. С помощью языка R. поможет вам углубиться в функционал пакета rym.
Заключение
Итак с помощью приведённых в этой статье пакетов вы вполне можете автоматизировать сбор данных из таких источников как Яндекс.Директ, Google Ads, Facebook, Вконтакте, MyTarget и Яндекс.Метрика. Конечно это далеко не исчерпывающий список сервисов которые используются интрент маркетологами, но уместить все инструменты в одну статью достаточно проблематично, поэтому если данная статья получит положительные отзывы я напишу продолжение.
Далее полученные данные можно преобразовывать с помощью пакета dplyr, и записывать в различные базы данных с помощью DBI интерфейса, но это уже довольно объёмные темы для следующих статей.
Если у вас в арсенале так же есть интересные пакеты, которые могут помочь в автоматизации сбора данных из рекламных источников или веб-аналитических платформ, оставляйте их в комментариях к этой статье.
Подписывайтесь на мой телеграм и youtube каналы, большая часть контента которых составляют полезные материалы посвящённые языку R.
