- PVSM.RU - https://www.pvsm.ru -
Всем привет, если вы занимаетесь интернет маркетингом наверняка вам ежедневно приходится сталкиваться со множеством рекламных сервисов и как минимум одной платформой веб аналитики, если вам требуется хотя бы раз в месяц, или может быть даже раз в неделю руками сводить данные о расходах, и прочую статистическую информацию из всех источников то это чревато не только большими временными затратами, но и вероятность ошибки при консолидации данных из множества источников в ручном режиме достаточно велика. В этой статье я подскажу готовые расширения (пакеты) для языка R, с помощью которых вы можете автоматизировать процесс сбора данных из большинства популярных рекламных систем и платформ веб аналитики.
Т.к. в данной статье мы говорим про язык R, то вам потребуется сам R [1] и среда разработки RStudio [2].
И язык R, и RStudio являются бесплатным, свободно распространяемым программным обеспечением, поэтому вы свободно можете скачивать их из официальных сайтов.
Ничего сложного для начала работы с R пакетами нет, осуществляется это следующим образом:
install.packages;library или require. Разница между library и require заключается только в том, что library выдаст ошибку в случае попытки подключения пакета, который у вас не установлен, а require в этом же случае просто покажет предупреждение, при этом выполнение скрипта будет продолжено.
Для установки приведённых в статье пакетов с GitHub вам предварительно необходимо установить пакет devtools, для этого выполните команду install.packages("devtools").
В ходе чтения данной статьи у вас возможно возникнет вопрос из какого репозитория лучше устанавливать тот, или иной пакет, на самом деле на GitHub как правило лежат наиболее актуальные dev версии пакетов от разработчиков, т.е. в них есть все новые функции которых возможно нет в версии пакета которая доступна на CRAN, но соответственно dev версия может быть на момент загрузки не достаточно протестирована и содержать ошибки.
Версия на CRAN перед загрузкой тщательно проверяется командой специалистов, и должна соответствовать всем требованиям политики данного репозитория [3], в случае загрузки пакета с CRAN вы можете быть уверены, что он никак не навредит вашим данным, не будет создать без вашего разрешения какие либо непонятные файлы на вашем ПК и т.д.
На самом деле от вас потребуется только понимание предметной области интернет маркетинга, никаких навыков программирования в данном случае не требуется, т.к. речь буде идти о готовых пакетах, используя функции из которых вы сможете автоматизировать руинную часть своей работы.
В статье не будет подробного описание по работе с каждой функцией рассматриваемых пакетов, т.к. такая статья была бы слишком длинной, но я опишу возможности каждого пакета, дам список основных функций которые вам потребуется, а так же дам ссылку на официальную документацию, с помощью которой вы уже сможете наиболее подробно разобраться со всеми доступными в том, или ином пакете функциями. К тому же к каждому пакету я приведу небольшой пример кода, что бы вам был более понятен синтаксис.
Установка пакета с GitHub: devtools::install_github("selesnow/ryandexdirect")
Официальная документация: ссылка [4]
Данный пакет предназначен для работы с API одной из наиболее популярных рекламных площадок в СНГ — Яндекс.Директ.
Основные функции доступные в 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 [4] или Яндекс.Директ API Reports сервис [5].
Установка пакета с CRAN: install.packages("RAdwords")
Установка пакета с GitHub: devtools::install_github("jburkhardt/RAdwords")
Официальная документация: ссылка [7]
Основная возможность данного пакета — авторизация в API Google Ads и загрузка статистики из всех доступных в данном интерфейсе отчётов.
На самом деле пакет в принципе содержит не особо много функций, но я за всё время пользовался всего тремя:
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 отчётов, и полей вы можете найти по ссылке [8] в официальной справке.
Установка пакета с CRAN: install.packages("adwordsR")
Установка пакета с GitHub: devtools::install_github("cran/adwordsR")
Пакет adwordsR по смыслу схож с RAdwords, но он более новый, и имеет гораздо больший набор функций.
Помимо описанных выше возможностей пакета RAdwords, adwordsR даёт вам широкие возможности по работе с TargetingIdeaService, службе с помощью которой можно получать варианты таргетинга прямо из инструмента или платформы, что помогает автоматизировать оптимизацию аккаунта.
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)
Установка пакета с CRAN: install.packages("rfacebookstat")
Установка пакета с GitHub: devtools::install_github("selesnow/rfacebookstat")
Официальная документация: ссылка [11]
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)
Установка пакета с GitHub: devtools::install_github("selesnow/rvkstat")
Официальная документация: ссылка [12]
Достаточно мощный и многофункциольный пакет для работы с API социальной сети Вконтакте.
Пакет 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)
Установка пакета с CRAN: install.packages("rmytarget")
Установка пакета с GitHub: devtools::install_github("selesnow/rmytarget")
Официальная документация: ссылка [14]
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 = "ваш логин")
Установка пакета с CRAN: install.packages("rym")
Установка пакета с GitHub: devtools::install_github("selesnow/rym")
Официальная документация: ссылка [16]
Пакет rym позволяет вам работать со всеми доступными в Яндекс.Метрики API интерфейсами:
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")
Итак с помощью приведённых в этой статье пакетов вы вполне можете автоматизировать сбор данных из таких источников как Яндекс.Директ, Google Ads, Facebook, Вконтакте, MyTarget и Яндекс.Метрика. Конечно это далеко не исчерпывающий список сервисов которые используются интрент маркетологами, но уместить все инструменты в одну статью достаточно проблематично, поэтому если данная статья получит положительные отзывы я напишу продолжение.
Далее полученные данные можно преобразовывать с помощью пакета dplyr, и записывать в различные базы данных с помощью DBI интерфейса, но это уже довольно объёмные темы для следующих статей.
Если у вас в арсенале так же есть интересные пакеты, которые могут помочь в автоматизации сбора данных из рекламных источников или веб-аналитических платформ, оставляйте их в комментариях к этой статье.
Автор: selesnow
Источник [21]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/api/294861
Ссылки в тексте:
[1] R: https://cran.r-project.org/bin/windows/base/
[2] RStudio: https://www.rstudio.com/products/rstudio/download/
[3] требованиям политики данного репозитория: https://cran.r-project.org/web/packages/policies.html
[4] ryandexdirect: https://selesnow.github.io/ryandexdirect
[5] сервиса Reports: https://tech.yandex.ru/direct/doc/reports/reports-docpage/
[6] RAdwords: https://www.rdocumentation.org/packages/RAdwords/
[7] ссылка: https://jburkhardt.github.io/RAdwords/
[8] ссылке: https://developers.google.com/adwords/api/docs/appendix/reports
[9] adwordsR: https://www.rdocumentation.org/packages/adwordsR/
[10] rfacebookstat: https://www.rdocumentation.org/packages/rfacebookstat/
[11] ссылка: https://selesnow.github.io/rfacebookstat
[12] rvkstat: https://selesnow.github.io/rvkstat
[13] rmytarget: https://www.rdocumentation.org/packages/rmytarget/
[14] ссылка: https://selesnow.github.io/rmytarget
[15] rym: https://www.rdocumentation.org/packages/rym/
[16] ссылка: https://selesnow.github.io/rym
[17] API управления: https://tech.yandex.ru/metrika/doc/api2/management/intro-docpage/
[18] с API отчётов: https://tech.yandex.ru/metrika/doc/api2/api_v1/intro-docpage/
[19] API совместимым с Core API Google Analytics v3: https://tech.yandex.ru/metrika/doc/api2/ga/intro-docpage/
[20] Logs API: https://tech.yandex.ru/metrika/doc/api2/logs/intro-docpage/
[21] Источник: https://habr.com/post/425425/?utm_campaign=425425
Нажмите здесь для печати.