Как работать с API Яндекс.Метрики с помощью языка R
Такие платформы, как Google ***ytics и Яндекс.Метрика — инструменты, которые ежедневно используют в своей работе тысячи интернет-маркетологов и веб-аналитиков. Если вы продвигаете пару тройку-сайтов, думаю, достаточно веб-интерфейса этих сервисов. Когда же речь идёт о десятке сайтов, то для оперативной реакции на изменение поведенческих или других качественных показателей недостаточно функций и возможностей интерфейсов. К тому же приходится тратить много времени на переход из одного аккаунта в другой.
Наиболее эффективный способ организации работы с большим количеством аккаунтов предоставляет API — интерфейс прикладного программирования.
Как получить данные из Google ***ytics в R и загрузить в Power BI Около года назад я уже рассказывал о том,
Какой софт понадобится?
Для работы с API Яндекс.Метрики вы можете использовать любой язык программирования, который поддерживает работу с HTTP-запросами. Но так как сейчас мы говорим о языке R, вам необходимо его скачать и установить.
Для комфортной работы с R рекомендую также установить бесплатную среду разработки RStudio.
Что такое Яндекс.Метрика?
Яндекс.Метрика — это инструмент веб-аналитики, который помогает получать наглядные отчеты, видеозаписи действий посетителей, отслеживать источники трафика и оценивать эффективность онлайн- и офлайн-рекламы.
Информация из официальной справки Яндекс.Метрики.
API-интерфейсы Яндекс.Метрики
У Яндекс.Метрики несколько API-интерфейсов:
- API управления. Предназначен для работы со счётчиками, фильтрами, сегментами, доступами и другими объектами аккаунта Яндекс.Метрики.
- API отчётов. Позволяет получать информацию о статистике посещений сайта и другие данные, не используя интерфейс Яндекс.Метрики.
- API, совместимый с Core API Google ***ytics v3. По смыслу и функционалу схож с «API отчётов», но при формирования запроса вы можете использовать такое же название полей, как и при работе с COre API Google ***ytics.
- Logs API. Интерфейс для загрузки сырых, не сгруппированных данных о посещениях сайта.
Как начать работу?
Для работы с API Яндекс.Метрики я написал пакет «rym», в контексте R. Пакет — это расширение, которое содержит функции и наборы данных, не доступные в базовой версии R. Cуществует более 10 000 таких пакетов. В основном, репозитории CRAN (Comprehensive R Archive Network), более 80 000 пакетов доступны на GitHub.
Есть официальная русскоязычная документация по работе с пакетом «rym». Также можно найти описание функций на английском.
Чтобы установить пакеты из основного репозитория CRAN, необходимо использовать базовую функцию install.packages:
install.packages(\"rym\")
Также вы можете установить dev-версию пакета из GitHub. Для этого сначала необходимо установить пакет «devtools» и потом с его помощью — «rym». Используйте для этих действий код:
install.packages(\"devtools\")devtools::install_github(\"selesnow/rym\")
Пакет достаточно установить один раз, но подключать нужно каждый раз при запуске нового сеанса работы с R. Для подключения используйте функцию library.
library(rym)
Теперь вы можете приступить к работе с API Яндекс.Метрики.
Авторизация в API
Процесс авторизации в API Яндекс.Метрики, как и в большинстве других популярных веб-сервисов, осуществляется по протоколу OAuth 2.0.
Для авторизации в Яндекс.Метрики с помощью «rym» вы можете использовать функцию rym_auth, которая принимает следующий набор аргументов:
- login — логин пользователя, под которым вам доступен счётчик Яндекс.Метрики, из которого вы будете запрашивать данные;
- new.user — признак того, что у пользователя обязательно нужно запросить разрешение на доступ к аккаунту (даже если пользователь уже разрешил доступ данному приложению). Получив этот параметр, Яндекс.OAuth предложит пользователю разрешить доступ приложению и выбрать нужный аккаунт Яндекса;
- token.path — путь к папке, в которой будет создан файл для хранения ваших учётных данных для работы с API Яндекс.Метрики.
Процесс авторизации в пакете «rym» происходит следующим образом:
- При запуске любой функции пакета, изначально осуществляется поиск файла с учётными данными в папке, указанной в аргументе token.path. Имя файла состоит из login.rymAuth.RData, где login — значение, указанное в одноимённом аргументе. Таким образом, в ходе одной R-сессии вы можете работать со счётчиками, доступными под любым количеством пользовательских аккаунтов.
- Если ранее вы уже прошли процесс авторизации и дали разрешение на запись полученных учётных данных в локальный файл, то учётные данные подгрузятся оттуда.
- Если вы впервые проходите авторизацию или в аргументе token.path указали папку, в которой ранее не был сохранён файл с учётными данными, вас перенаправит в браузер, в котором необходимо разрешить доступ к данным вашего аккаунта. После этого вы перейдете на страницу, где будет сгенерирован семизначный код для подтверждения авторизации. Скопируйте и вставьте его в R-консоль в ответ на запрос «Enter authorize code:».
- Далее у вас запросят разрешение на создание полученных учётных данных в локальный файл «Do you want save API credential in local file token.path/login.rymAuth.RData for use it between R sessions?». На запрос необходимо ответить одним из таких значений: yes, ok или save.
- После чего в папке, указанной в аргументе token.path, сохранится файл login.rymAuth.RData и при следующих обращениях к API, в случае если вы укажите ту же папку в аргументе token.path, учётные данные для обращения к API будут загружены из файла login.rymAuth.RData.
Как вы уже поняли поняли, не обязательно проходить авторизацию отдельно через функцию rym_auth. Данный процесс запустится при использовании любой из функций пакета «rym».
Работа с API управления
В пакете «rym» для работы с «API управления» созданы функции:
- rym_get_counters — список доступных счётчиков Яндекс.Метрики;
- rym_get_filters — список настроенных фильтров в счётчике;
- rym_get_segments — список настроенных сегментов в счётчике Яндекс.Метрики;
- rym_get_goals — список настроенных целей в Яндекс.Метрике;
- rym_users_grants — список пользователей, у которых есть доступ к счётчику Яндекс.Метрики, с указанием уровня доступа.
Все эти функции принимают одинаковый набор аргументов:
- counter — Id счётчика Яндекс.Метрики;
- login — имя пользователя, под которым доступен нужный счётчик Яндекс.Метрики. Используется при авторизации и при поиске файла, в котором хранятся учётные данные пользователя;
- token.path — путь к папке, в которой хранится файл с учётными данными.
Пример работы с API управления:
При использования кода, замените «логин» на логин пользователя в Яндексе, у которого есть доступ к нужному вам счётчику, а «0000000» — на Id нужного вам счётчика.
library(rym)# получить список счётчиковselesnow.counters <- rym_get_counters(login = \"<логин>\", token.path = \"metrica_token\")# получить список целейmy_goals <- rym_get_goals(counter = <0000000>, login = \"<логин>\", token.path = \"metrica_token\")# получить список фильровmy_filter <- rym_get_filters(counter = <0000000>, login = \"<логин>\", token.path = \"metrica_token\")# получить список сегментовmy_segments <- rym_get_segments(counter = <0000000>, login = \"<логин>\", token.path = \"metrica_token\")# получить список пользователей счётчикаusers <- rym_users_grants(counter = <0000000>, login = \"<логин>\", token.path = \"metrica_token\")
Работа с API отчётов
С помощью этого API-интерфейса вы можете запрашивать из счётчика Яндекс.Метрики любые статистические данные о посещении ваших сайтов.
Для работы с «API отчётов» в «rym» предназначена функция rym_get_data. А вот аргументы, которые она принимает:
- direct.client.logins — логины клиентов Яндекс.Директа, через запятую. Могут использоваться для формирования отчета «Директ-расходы».
- counters — идентификаторы счетчиков, через запятую.
- metrics — список метрик, разделенных запятой. Лимит: 20 метрик в запросе. Актуальный список доступных метрик есть в официальной справке.
- dimensions — список группировок, разделенных запятой. Лимит: 10 группировок в запросе. Актуальный список группировок можно посмотреть в официальной справке.
- filters — фильтрация данных. Лимит: количество уникальных группировок и метрик — до 10; количество отдельных фильтров — до 20; длина строки в фильтре — до 10 000 символов.
- sort — поля, по которым будут отсортированы данные.
- date.from и date.to — период отчёта можно задавать статическими датами в формате ГГГГ-ММ-ДД или относительными значениями: today, yesterday, ndaysAgo.
- accuracy — точность вычисления результата. Позволяет управлять семплированием (количеством визитов, использованных при расчете итогового значения). Этот параметр может принимать несколько значений:
- low — возвращает быстрый результат на основе сокращенной выборки данных;
- medium — возвращает результат на основе выборки, сочетающей скорость и точность данных;
- high — возвращает наиболее точное значение, используя наибольшую выборку данных. Этот режим может потребовать дополнительное время и замедлить обработку запроса;
- full — возвращает все данные.
Также этот параметр может принимать числовое значение из полуинтервала (0,1]:
- 1 — отсутствует семплирование (соответствует значению full) ;
- 0,1 или 0,01 — доля возвращаемых данных (10%, 1%). Любое значение (например, 0,42) будет округляться до ближайшей степени числа 10.
- include_undefined — включает в ответ строки, для которых значения группировок не определены. Влияет только на первую группировку. По умолчанию выключено.
- lang — язык, на котором будет представлен отчёт, по умолчанию «ru».
- timezone — часовой пояс в формате ±hh:mm в диапазоне [-23:59; +23:59] (знак плюса нужно передавать как %2B), в котором будет рассчитан период выборки запроса и связанные с датой и временем группировки. По умолчанию используется часовой пояс счетчика.
- pretty — задает форматирование результата. Чтобы использовать форматирование, укажите значение true.
- login — имя пользователя, под которым доступен нужный счётчик Яндекс.Метрики. Используется при авторизации и поиске файла, в котором хранятся учётные данные данного пользователя.
- token.path — путь к папке, в которой хранится файл с учётными данными.
Пример работы с интерфейсом «API отчётов»:
reporting.api.stat <- rym_get_data(counters = \"00000000,11111111\", 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\", sort = \"-ym:s:date\", login = \"<логин>\", token.path = \"metrica_token\", lang = \"en\")
Работа с Logs API
Logs API позволяет получать неагрегированные данные, собираемые Яндекс.Метрикой. API предназначен для пользователей сервиса, которые хотят самостоятельно обpaбатывать статистические данные и использовать их для решения уникальных аналитических задач.
Информация из официальной справки API Яндекс.Метрики.
Данные из Logs API можно получить по просмотрам («хитам») и визитам («сессиям»).
При работе с пакетом «rym» неагрегированные данные можно запрашивать с помощью функции rym_get_logs, которая принимает следующие параметры:
- counter — Id счётчика Яндекс.Метрики;
- date.from и date.to — период отчёта, даты в формате YYYY-MM-DD. Дата окончания не может быть сегодняшним днём;
- source — источник логов. Допустимые значения: «hits» и «visits»;
- fields — список полей через запятую, актуальный список полей можно получить из официальной справки. Для визитов и просмотров поля отличаются;
- login — имя пользователя, под которым доступен нужный счётчик Яндекс.Метрики. Используется при авторизации и при поиске файла, в котором хранятся учётные данные пользователя;
- token.path — путь к папке, в которой хранится файл с учётными данными.
Пример работы с «Logs API»:
logs.api.stat <- rym_get_logs(counter = 00000000, date.from = \"2018-08-01\", date.to = \"2018-08-05\", fields = \"ym:s:date, ym:s:lastTrafficSource, ym:s:referer\", source = \"visits\", login = \"<логин>\", token.path = \"metrica_token\")
Работа с API, совместимым с Core API Google ***ytics
API совместим с Google ***ytics Core Reporting API (v3) и позволяет выполнять такие операции:
- получать информацию о посещаемости сайта и другие данные;
- интегрировать данные Яндекс.Метрики с приложениями, разработанными с учетом особенностей Google ***ytics Core Reporting API(v3) ;
- использовать привычные параметры запросов при сборе статистики, если ранее вы работали с Google ***ytics Core Reporting API (v3).
Информация из официальной справки API Яндекс.Метрики.
Отсюда вывод — API будет удобен тем, кто привык работать с Core API Google ***ytics. В пакете «rym» для этого предназначена функция rym_get_ga.
Аргументы функции rym_get_ga:
- start.date и end.date — отчётный период. Вы можете указывать даты в формате YYYY-MM-DD или использовать относительные временные значения: today, yesterday, NdaysAgo.
- counter — номер счетчика, данные которого необходимо получить. В отличие от предыдущих функций, в данном случае перед номером счетчика необходимо указать префикс ga:.
- dimensions — группировки объединяют данные по критериям. Если по указанной группировке данные не были получены, возвращается значение «not set» для тех категорий, которые не определились. В состав одного запроса может входить не более семи группировок.
- metrics — метрики позволяют получать данные о статистике посещаемости и активности пользователей сайта. В состав одного запроса может входить не более десяти метрик.
- sampling.level — используйте параметр для указания уровня семплирования (количества визитов, использованных при расчете итогового значения). Допустимые значения:
- HIGHER_PRECISION — возвращает максимально точное значение, используя наибольшую выборку данных. Этот режим может потребовать дополнительное время и замедлить обработку запроса;
- FASTER — возвращает быстрый результат на основе сокращенной выборки данных;
- DEFAULT — возвращает результат на основе выборки, сочетающей скорость и точность данных;
- login — имя пользователя, под которым доступен нужный счётчик Яндекс.Метрики. Используется при авторизации и при поиске файла, в котором хранятся учётные данные пользователя;
- token.path — путь к папке, в которой хранится файл с учётными данными.
Пример работы с API Яндекс.Метрики, совместимым с Core API Google ***ytics (v3):
ga.api.stat <- rym_get_ga(counter = \"ga:0000000\", dimensions = \"ga:date,ga:source\", metrics = \"ga:sessions,ga:users\", start.date = \"2018-08-01\", end.date = \"2018-08-05\", sort = \"-ga:date\", login = \"<логин>\", token.path = \"metrica_token\")
Выводы
Мы рассмотрели работу со всеми API, доступными на данный момент в Яндекс.Метрике, а также познакомились со всеми функциями пакета «rym» — интерфейсом взаимодействия между R и Яндекс.Метрикой. С помощью этих инструментов вы можете эффективно организовать работу даже, если одновременно продвигаете десятки сайтов.
Язык R в интернет-маркетинге — дайджест полезных публикаций Если хотите узнать о том, как работать с API таких систем как Яндекс.Директ, Facebook, MyTarget и множества других рекламных сервисов и платформ веб-аналитики, вам будет полезна
Напомню, что 1 ноября этого года стартует мой авторский онлайн-курс «R для интернет-маркетинга». Полученные знания помогут вам автоматизировать большую часть рутинной, повседневной работы интернет-маркетологов и веб-аналитиков.
Комментарии:
Как и зачем отслеживать конверсии с тегом Google Рекламы...
26 04 2024 3:46:48
О тенденциях на рынке ecommerce и переходе Хорошоп на удалёнку....
25 04 2024 18:56:13
Отрывок из книги «Статистика: базовый курс в комиксах» Грейди Клейн и Алана Дебни...
24 04 2024 2:42:43
На этой картинке изображены два предмета. Один из них называется «буба», а второй «кики»....
23 04 2024 2:58:49
Отныне мы можем настраивать показы рекламы на мужчин и женщин определенной возрастной группы....
22 04 2024 9:24:51
Личный опыт маркетинг-директора Serpstat. Внутренняя перелинковка, работа с контентом, настройка email-рассылок и построение качественного комьюнити помогли нам получить стабильный поток читателей и новых пользователей. Обо всем читайте дальше!...
21 04 2024 6:30:13
Динамический ремаркетинг — один из самых эффективных способов продаж для любой группы товаров. В этой статье мы поделимся тонкостями технической подготовки к запуску динамического ремаркетинга в Facebook....
20 04 2024 6:10:39
Как делать большие деньги даже, когда случаются кассовые разрывы и каким образом строить процессы внутри компании, чтобы сотрудники горели своим (вашим) делом? Узнать!...
19 04 2024 11:34:20
Убираем человеческий фактор при сборе отчетов по контекстной рекламе...
18 04 2024 9:17:53
Первая часть иллюстрированного руководства, в котором мы взяли 20 самых важных фактора ранжирования представлены с краткими иллюстрированными примерами. В этом тексте вы найдете первые 10. Узнать больше!...
17 04 2024 22:56:19
Заработок в четверть миллиона. Как многофункциональная SEO-платформа Serpstat из Netpeak Group стала самым продаваемым продуктом на AppSumo — пошаговая история-инструкция...
16 04 2024 18:31:32
Девять свежих советов для продвижения интернет-магазинов...
15 04 2024 7:56:43
Рассказываем о приемах, которые помогут вам заинтересовать читателей рассылки....
14 04 2024 11:21:38
Как контролировать множество сайтов — полезные сервисы и советы для вебмастеров. Одно дело — несколько десятков сайтов, а что если сотни или тысячи? Как раз это подробно и разберем....
13 04 2024 15:50:50
Чтобы увеличить количество заявок и получить волну новых заказов, нужен комплексный подход...
12 04 2024 11:50:29
Информация для бизнесменов, интернет-маркетологов и всех, кто интересуется продвижением бизнеса в интернете....
11 04 2024 2:57:36
Проверенные лайфхаки по платному трафику от спикеров и участников конференции 8P 2018...
10 04 2024 18:52:59
На что обращает внимание система и менеджеры Google при проверке сайта и аккаунта....
09 04 2024 18:12:48
В арсенале Google Рекламы есть очень ценный инструмент — отслеживание конверсий....
08 04 2024 5:26:11
Фишка, которую можно позволить себе даже когда портал продает всего несколько товаров или услуг...
07 04 2024 10:23:30
Как добиться эффективности и самоорганизации. Читайте о системе тимлида Netpeak Андрея Коваля....
06 04 2024 6:36:27
Каким правилам нужно следовать, чтобы создать эффективный рекламный ролик?...
05 04 2024 19:46:42
4 кейса с шагами, рекомендациями и результатами, которые помогут грамотно распределить средства на рекламу....
04 04 2024 0:22:48
Охват и средняя цена за клик в самых популярных тематиках....
03 04 2024 17:57:48
Инструмент позволяет создавать ролики длительностью от 6 до 16 секунд. Созданные видеоматериалы можно размещать не только в рекламных кампаниях, но и на сайте или в email-рассылке. ...
02 04 2024 12:26:15
Система почтового маркетинга. Как удержать доверия подписчиков одним приветственным письмом...
01 04 2024 7:31:19
Настраиваем автоматическое получение отчетов по потерянным конверсиям для оптимизации рекламных кампаний....
31 03 2024 9:36:31
Как начать продавать и увеличить продажи, наращивая бесплатные ссылки...
30 03 2024 5:22:15
Нужно ли начинать работу с Google Marketing Platform, и если да, то на каком этапе развития бизнеса?...
29 03 2024 10:41:15
Анализ содержимого сайта показывает: Url разные, а контент страниц одинаковый. Думаете, ничего страшного? Но одинаковый контент может попасть под фильтры поисковых систем. Чтобы этого не произошло, надо знать, как избавляться от внутренних дублей...
28 03 2024 18:41:37
зеркальные нейроны и сознание. как они влияют на наше поведение?...
27 03 2024 9:43:28
Пора принять решение! Разберитесь с регулярными выражениями для более продуктивной работы с Google ***ytics или Google Tag Manager...
26 03 2024 10:12:50
Узкие специализированные ниши и широкие, которые, как правило, уже заняты лидерами рынка — в каждой найдется место для онлайн-издания с полезным контентом. Узнать больше!...
25 03 2024 9:24:54
Как построить самостоятельную комaнду и научиться спокойно делегировать...
24 03 2024 9:49:27
Расскажу, как подобрать картинку на рабочий стол объявления в Рекламной сети Яндекса, и приведу небольшой кейс о том, как это делали мы для агентства путешествий...
23 03 2024 6:27:27
На украинском рынке услуг велик выбор качественных платформ. Главное понимать, как правильно проводить миграцию....
22 03 2024 23:51:48
Как говорится, люди делятся на тех, кто делит других на типы и тех, кто не делит. В этом посте — про желтых, синих, красных и зеленых людей....
21 03 2024 7:12:31
Когда email-маркетинг становится точкой роста. Кейс интернет-магазина книг Book24....
20 03 2024 10:52:46
Какие шаги стоит сделать, чтобы обойти ямы профессионального влогинга и как заработать на его вершинах...
19 03 2024 1:47:16
Минимизация пропущенных звонков и ускорение обработки заявок с наглядными примерами из сервиса...
18 03 2024 22:45:22
Проверка структурированных данных поисковыми роботами нуждается в нашей поддержке...
17 03 2024 13:55:39
Отмена видео-сниппетов в выдаче Google, удаление страницы с тегами и инструмента подсказки ключевых слов в YouTube — все события последних месяцев свидетельствуют: Google всерьёз взялся за видеохостинги и решил изменить правила игры для видеомаркетинга в...
16 03 2024 8:39:30
Сортировка мусора, использование велосипедов вместо автомобилей, озеленение города... В Украине, как правило, так представляют экофрендли бизнес. Зарубежные компании идут дальше....
15 03 2024 11:35:53
SMM — сфера с доступным обучением и большими деньгами, а хороших специалистов разбирают, как горячие пирожки. SMMщики работают с крупными брендами и создают свой бизнес всего через пару лет после старта....
14 03 2024 17:41:24
Каким образом бизнес-модель маркетплейса может помочь увеличить трафик интернет-магазина в целом....
13 03 2024 4:53:24
Список рекомендаций для SMM-специалистов. Статья будет полезна SMM-менеджерам, проектным менеджерам, а также владельцам бизнеса, которые предпочитают самостоятельно ставить комaнде задачи и отслеживать выполнение целей....
12 03 2024 8:17:35
Бесплатно, быстро и безопасно. Но есть и минусы. Узнать больше!...
11 03 2024 1:30:35
Новая инструкция, которую можно применять к любым задачам в Google Таблицах....
10 03 2024 23:17:30
Что делать перед составлением рекламного бюджета — инструкция для предпринимателей...
09 03 2024 9:17:12
«Настольная» методичка для предпринимателей и маркетологов....
08 03 2024 18:24:18
Еще:
понять и запомнить -1 :: понять и запомнить -2 :: понять и запомнить -3 :: понять и запомнить -4 :: понять и запомнить -5 :: понять и запомнить -6 :: понять и запомнить -7 ::