--- title: "rym: API управления Яндекс.Метрики" author: "Alexey Seleznev" date: "`r Sys.Date()`" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{rym: API управления Яндекс.Метрики} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r setup, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ``` # Работа с API управления Для работы с API управления в `rym` вам доступны следующие функции: * `rym_get_counters()` — список доступных счётчиков Яндекс.Метрики; * `rym_get_filters()` — список настроенных фильтров в счётчике; * `rym_get_segments()` — список настроенных сегмнтов в счётчике Яндекс.Метрики; * `rym_get_goals()` — список настроенных целей в Яндекс.Метрике; * `rym_get_direct_clients()` - данные о клиентах Яндекс.Директа, к кампаниям которых есть доступ у владельца счетчика Метрики; * `rym_users_grants()` — список пользователей, у которых есть доступ к счётчику Яндекс.Метрики, с указанием уровня доступа. * `rym_add_goal()` - создать цель в Яндекс Метрике. * `rym_add_segment()` - создать сегмент в API Яндекс Метрики. Набор аргументов для всех перечисленных выше функций одинаков: * **counter** — Id счётчика Яндекс.Метрики; * **login** — имя пользователя, под которым доступен нужный счётчик Яндекс.Метрики. Используется при авторизации и при поиске файла, в котором хранятся учётные данные пользователя; * **token.path** — путь к папке, в которой хранится файл с учётными данными. ### Описание полей возвращаемых функциями API управления #### Списоок полей возвращаемых функцией `rym_get_counters` * *id* - Номер счётчика Яндекс.Метрики. * *status* - Статус счетчика. Active — Счетчик активен, Deleted — Счетчик удален. * *owner_login* - Логин владельца счетчика. * *name* - Наименование счетчика. * *code_status* - Статус установки кода счетчика. Возможные значения: * CS_ERR_INFECTED — не удалось проверить (сайт, на котором установлен счетчик или одно из его зеркал находится в списке зараженных сайтов). * CS_NOT_FOUND — Не установлен. * CS_ERR_OTHER_HTML_CODE — установлен другой счетчик. * CS_ERR_CONNECT — не удалось проверить (ошибка соединения). * CS_ERR_TIMEOUT — не удалось проверить (превышено время ожидания). * CS_OK — Корректно установлен. * *site* - Полный домен сайта. * *permission* - Уровень доступа к счетчику. Возможные значения: * view — гостевой счетчик с уровнем доступа «только просмотр»; * edit — гостевой счетчик с уровнем доступа «полный доступ»; * own — счетчик, принадлежащий пользователю. * *type* - Тип информера. Возможные значения: * ext — расширенный (по умолчанию). * simple — простой; * *gdpr_agreement_accepted* - Принято соглашение gdpr. #### Списоок полей возвращаемых функцией `rym_get_filters` * *id* - Идентификатор фильтра. * *attr* - Тип данных, к которым применяется фильтр. Возможные значения: * referer — реферер; * uniq_id — специальный атрибут для фильтра «не учитывать мои визиты»; * client_ip — IP-адрес; * title — заголовок страницы; * url — URL страницы. * *type* - Отношение или действие для фильтра. Возможные значения: * equal — равно; * contain — содержит; * me — мои посещения, используется только с типом данных attr = uniq_id; * start — начинается с; * interval — в интервале, используется только с типом данных «IP-адрес» (attr = client_ip); * only_mirrors — только сайт и зеркала, используется только для типа данных «URL страницы» (attr = url) и типа фильтра «оставить только трафик» (action = include), а также при условии, что для счетчика заданы зеркала. * *value* - Значение фильтра. * *action* - Тип фильтра. include — оставить только трафик, exclude — исключить трафик. * *status* - Статус фильтра. Возможные значения: * active — фильтр используется; * disabled — фильтр отключен (без удаления). * *with_subdomains* - Фильтровать по поддоменам. * *start_ip* - Первый IP-адрес диапазона. * *end_ip* - Последний IP-адрес диапазона. #### Списоок полей возвращаемых функцией `rym_get_segments` * *id* - Идентификатор сегмента. * *counter_id* - Идентификатор счетчика. * *name* - Название сегмента. * *expression* - Выражение, которое соответствует [значению параметра filters](https://yandex.ru/dev/metrika/doc/api2/api_v1/segmentation-docpage). * *is_retargeting* - Является ли данный сегмент ретаргетинговым * *segment_source* - Источник сегмента. Указывает на способ его создания. Принимает значение api — используются сегменты, созданные с помощью API. #### Списоок полей возвращаемых функцией `rym_get_goals` * *id* - Идентификатор цели. * *name* - Наименование цели. * *type* - Тип цели. Возможные значения. * number — просмотр N страниц; * action — цель типа событие. * step — составная цель; * url — совпадение по URL страницы; * *is_retargeting* - Является ли цель ретаргетинговой. * *conditions* - Cписок структур с условиями цели. Состоит из параметров *type* и *url*: * *type* - Тип условия. Возможные значения: * regexp — удовлетворяет регулярному выражению; * contain — содержит; * start — начинается с; * exact — совпадает; * action — специальный тип условия для целей типа action. * *url* - Адрес страницы или части страницы для условия. #### Списоок полей возвращаемых функцией `rym_get_direct_clients` * *id* - Идентификатор клиента Директа. * *name* - Имя клиента, указанное в настройках Директа. * *chief_login* - Логин главного представителя клиента в Директе. Может использоваться для формирования отчета Директ-расходы. #### Списоок полей возвращаемых функцией `rym_users_grants` * *user_login* - Логин пользователя, которому выдано разрешение на управление счетчиком. Параметр содержит пустую строку, если к статистике счетчика предоставлен публичный доступ (perm = public_stat) * *perm* - Уровень доступа. Возможные значения: * view — только просмотр; * edit — полный доступ; * public_stat — публичный доступ к статистике. * *created_at* - Дата предоставления доступа в формате YYYY-MM-DD'T'hh:mm:ssZ. * *comment* - Произвольный комментарий. Количество символов не должно превышать 255. * *partner_data_access* - Является и доступ партнёрским. ### Пример работы с API управления *При использовании приведённого нже примера замените *"ваш логин"* на логин пользователя Яндекса, под которым есть доступ к нужному вам счётчику Яндекс.Метрики, вместо *000000000* введите номер нужного вам счётчика.* ```{r eval=FALSE} library(rym) # список доступных счётчиков my_counters <- rym_get_counters(login = "ваш логин", token.path = "metrica_token") # список целей my_goals <- rym_get_goals(counter = 000000000, login = "ваш логин", token.path = "metrica_token") # список фильтров my_filter <- rym_get_filters(counter = 000000000, login = "ваш логин", token.path = "metrica_token") # список сегментов my_segments <- rym_get_segments(counter = 000000000, login = "ваш логин", token.path = "metrica_token") # список клиентов Яндекс Директ my_clients <- rym_get_direct_clients(counters="000000000,111111111", login = "my_login", token.path = "metrica_token") # список пользователей users <- rym_users_grants(counter = 000000000, login = "ваш логин", token.path = "metrica_token") ``` ## Создание целей в Яндекс Метрике Для создания цели в Яндекс Метрике используйте функцию `rym_add_goal()`. ### Аргументы * name - Наименование цели. * type - Тип цели. * Возможные значения * number — просмотр N страниц; * action — цель типа событие. * step — составная цель; * url — совпадение по URL страницы; * is.retargeting - Является ли цель ретаргетинговой * flag - Тип цели для клиентов Яндекс.Маркета. * Возможные значения * basket — «корзина», страница посещения корзины; * order — «заказ», страница подтверждения заказа. * conditions - Cписок структур с условиями цели. * type - Тип условия. * regexp — удовлетворяет регулярному выражению; * contain — содержит; * start — начинается с; * exact — совпадает; * action — специальный тип условия для целей типа action. * url - Адрес страницы или части страницы для условия. ```{r eval=FALSE} rym_add_goal(123456789, name = 'first_goal', type = 'action', conditions = list(type = 'exact', url = 'rym-first-goal'), login = 'your_login') ``` ## Создание сегментов в Яндекс Метрике Сегмент можно создать с помощью функции `rym_add_segment()`. Созданный с помощью API сегмент не отображается в веб-интерфейсе Яндекс.Метрики. ### Аргументы * name - Название сегмента * expression - Выражение, которое соответствует значению параметра [filters](https://yandex.ru/dev/metrika/doc/api2/api_v1/segmentation-docpage/). ```{r eval=FALSE} rym_add_segment( counter = 123456789, name = "my_segment", expression = "ym:s:trafficSource=='organic' AND ym:s:isNewUser=='Yes'", login = "your_login") ```