Как работать с 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 для интернет-маркетинга». Полученные знания помогут вам автоматизировать большую часть рутинной, повседневной работы интернет-маркетологов и веб-аналитиков.
Комментарии:
Панельная дискуссия, на которой специалисты представляют нестандартные идеи для привлечения трафика, продвижения проектов. Всё, что можно применить на деле. Читать!...
01 04 2026 22:18:54
О том, как рассчитать коэффициент ROI (ROMI) для выявления эффективности и прибыльности рекламных кампаний...
31 03 2026 15:20:27
Из нового исследования вы узнаете, сколько стоил клик в Google Ads и Яндекс.Директ в Казахстане в третьем квартале 2018 года...
30 03 2026 14:30:35
Блиц-инструкция и рекомендации по созданию эффективных описаний для мобильных приложений...
29 03 2026 2:35:45
Образец рассылки от создателе Replyapp.io Олег Белозор, на которую ответили самые влиятельные эксперты в мире в2в продаж...
28 03 2026 2:14:57
Что делать, когда код электронной торговли в одной валюте, а аккаунты Google ***ytics/Google Ads — в другой. И нужной валюты нет в списке возможных....
27 03 2026 12:56:53
Как сформировать правильную стратегию продвижения и сфокусировать внимание на получении прибыли...
26 03 2026 8:10:22
Особенности продвижения в нише аренды автомобилей по материалам кейсов наших коллег...
25 03 2026 10:59:52
Для продвижения интернет-магазина женского нижнего белья мы решили попробовать новый источник привлечения клиентов....
24 03 2026 5:17:56
Время, потраченное на исправление ошибок, допущенных на этапе подготовки и создания сайта, убивает потенциал роста видимости ресурса....
23 03 2026 8:11:38
SEOmoz создал систему, которая определяет релевантность страницы поисковому запросу....
22 03 2026 4:22:49
Начинаем работать с облачным сервисом хранения Google BigQuery...
21 03 2026 16:19:35
Как диагностировать Google Panda, понять, что нужно изменить на своем сайте и сделать пользователей счастливыми....
20 03 2026 12:32:36
В статье рассказываем, какие бывают push-уведомления, когда их используют, даем чек-лист и пошаговую инструкцию по созданию успешной push-рассылки....
19 03 2026 4:37:16
Рассказывайте о развитии фирмы, ее достижениях, масштабах деятельности — это то, что нужно вашим потенциальным клиентам. Так вы повысите их лояльность. Узнать больше!...
18 03 2026 3:28:22
И как с ними справиться. Рабочие инструкции для Chief Executive Office и менеджеров в целом. Давайте управлять комaндой и собой более эффективно и без выгорания. Узнать больше!...
17 03 2026 13:45:21
Терялись ли вы некогда в лабиринте Википедии из внутренних ссылок и побочных статей? Представьте, насколько непредсказуемым он может стать через несколько десятилетий....
16 03 2026 18:15:28
Как грамотно раскрутить пиццерию. Сняли фильтр и достигли хороших результатов....
15 03 2026 19:26:59
Миссия компании: делимся опытом создания и реализации в компании с 300 сотрудниками...
14 03 2026 8:41:44
Крупным брендам не избежать негатива в сети. Но с ним можно и нужно работать. Читайте успешный кейс для DOM.RIA....
13 03 2026 12:29:53
Расширения, горячие клавиши и мгновенный перевод слов на другой язык — минимум лайфаков, которые можно использовать для удобства пользователей Google Chrome...
12 03 2026 17:27:22
Альтернатива классическому SQL — обработка запросов из множества таблиц с помощью функций подстановки в Google BigQuery....
11 03 2026 16:26:35
Идеи, кейсы и советы от экспертов. Читайте и находите что-то для продвижения своего бизнеса. Нетривиальные идеи от признанных экспертов-пpaктиков! Рекомендуем каждому, что развивает или планирует свой бизнес в интернете!...
10 03 2026 16:33:59
Чек-лист для РРС-специалистов. Всегда быстрее учиться на опыте других людей, а не набивать шишки самостоятельно. А также советы, как исправить рекламные кампании. Обо всем читайте в этой статье!...
09 03 2026 23:44:35
Несложные рекомендации, как увеличить продажи с сайта и его мобильной версии с помощью инструментов Google: ***ytics, Tag Manager, Optimizer и форм-опросов. UX-специалисты Турум-бурум рекомендуют их для проверки сайта и используют в своей работе....
08 03 2026 22:18:24
На вопрос «как все успеть?» хочется ответить что-то вроде «никак». Особенно, если дело касается задач, связанных с творчеством. Но можно и не срывать дедлайны. Читать дальше....
07 03 2026 3:20:17
Если маркетер хочет привлечь к бренд-контенту дополнительное внимание, стоит воспользоваться опцией Promote post....
06 03 2026 12:49:32
Netpeak Checker – это мультифункциональный инструмент для массового анализа и сравнения сайтов, который помогает выполнять самые разнообразные задачи в области интернет-маркетинга....
05 03 2026 9:33:12
Многие не догадываются о том, что в КМС Google можно разместить и редактировать графические объявления онлайн...
04 03 2026 8:18:50
Клиентам не нужно ориентироваться на попадание к поисковым топам выдачи...
03 03 2026 1:42:43
Баннерная реклама в фейсбуке. Обзор семи новых рекламных инструментов...
02 03 2026 11:40:22
Компании и продукты, социальные инициативы, главные проекты и миссия группы. Разложили все о Netpeak Group по полочкам в новом посте....
01 03 2026 5:24:44
Если вы автор телеграм-канала, то стоит задуматься об альтернативных контент-платформах. Мнение...
28 02 2026 16:29:38
В третьем квартале Netpeak внедрил множество крутых улучшений. Мы подробно расскажем о семи самых интересных новостях....
27 02 2026 15:19:49
Многие специалисты недооценивают эффективность отчетов Яндекс.Метрики. Очень зря. Вот чем они могут быть полезны....
26 02 2026 2:39:42
Реклама будет не настолько персонализирована, как сейчас....
25 02 2026 5:31:54
Сет по контекстной рекламе в тематике «разработка программного обеспечения»: снижение стоимости клика на 89%....
24 02 2026 6:47:59
Готовы ли вы доверить основные настройки кампании автоматическим алгоритмам?...
23 02 2026 12:54:47
Создатель студии рисованных видео Денис Довгаль — о тактике видеомаркетинга и жизни в стиле «цифровых кочевников»....
22 02 2026 22:53:43
SMM для агентства перформанс-маркетинга. Как уйти от сухих текстов и стандартных баннеров для бизнес-страницы....
21 02 2026 22:12:18
Создаем фид товаров, настравиваем код и списки динамического ремаркетинга для интернет-магазинов в странах, где отсутствует Google Merchant Center....
20 02 2026 18:46:19
Что делать, если вы столкнулись со спамом в отчетах Google ***ytics? Значит ли это, что кто-то имеет доступ к вашему аккаунту, или что кто-то специально влияет на данные сайта в GA? Как они это делают? И как исключить подобные данные из отчетов?...
19 02 2026 12:23:43
Представляем Netpeak Journal — новый этап развития блога Netpeak...
18 02 2026 10:13:52
Грабберы — программы, позволяющие автоматизировать процесс сбора и публикации контента. С помощью грабберов, помимо парсинга контента, осуществляют перевод и уникализацию текстов....
17 02 2026 22:37:38
Мария Гoлyб устала отвечать на вопрос «Какие преимущества PPC-отдела в Netpeak?» и решила написать об этом пост....
16 02 2026 6:54:13
Настроенная бизнес-страница компании в Instagram и на Facebook помогает в продвижении товаров и услуг в интернете. Поэтому так важно сделать их seo-friendly. Читать!...
15 02 2026 6:56:41
На этой картинке изображены два предмета. Один из них называется «буба», а второй «кики»....
14 02 2026 10:12:48
Правильная постановка целей, задач и дедлайна — основа успешной работы...
13 02 2026 8:54:52
Многие недооценивают триггерное письмо после оформления покупки, а зря. И вот почему....
12 02 2026 3:50:11
Делайте анализ ссылочной массы хотя бы раз в месяц — и будет вам счастье....
11 02 2026 2:22:42
Еще:
понять и запомнить -1 :: понять и запомнить -2 :: понять и запомнить -3 :: понять и запомнить -4 :: понять и запомнить -5 :: понять и запомнить -6 :: понять и запомнить -7 ::