---
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_data`. На данный момент `rym_get_data` принимает следующие аргументы:

* **direct.client.logins** - Логины клиентов Яндекс.Директа, через запятую. 
* **counters** - Идентификаторы счетчиков, через запятую. 
* **metrics** - Список метрик, разделенных запятой. Лимит: 20 метрик в запросе. Актуальный список поддерживаемых метрик можно найти в [официальной документации](https://yandex.ru/dev/metrika/doc/api2/api_v1/metrics/visits/basic.html).
* **dimensions** - Список группировок, разделенных запятой. Лимит: 10 группировок в запросе. Актуальный список поддерживаемых группировок можно найти в [официальной документации](https://yandex.ru/dev/metrika/doc/api2/api_v1/attributes/visits/source-docpage).
* **filters** - [Фильтр сегментации](https://yandex.ru/dev/metrika/doc/api2/api_v1/segmentation.html), при фильтрации вы можете сочетать фильтры с помощью логических выражений AND и OR, а так же задавать приоритет выражений с помощью скобок пример: ` "ym:s:regionCityName=='Киев'"`, `ym:s:regionCityName=='Москва' OR ym:s:regionCityName=='Санкт-Петербург'`, `(ym:s:regionCityName=='Москва' OR ym:s:regionCityName=='Санкт-Петербург') AND ym:s:lastTrafficSource=='Переходы по рекламе'`.
* **sort** - Список группировок и метрик, разделенных запятой, по которым осуществляется сортировка.
* **date.from** - Дата начала периода выборки в формате YYYY-MM-DD. Также используйте значения: today, yesterday, ndaysAgo.
* **date.to** - Дата окончания периода выборки в формате YYYY-MM-DD. Также используйте значения: today, yesterday, ndaysAgo.
* **accuracy** - Точность вычисления результата. Позволяет управлять [семплированием](https://yandex.ru/dev/metrika/doc/api2/api_v1/sampling-docpage) (количеством визитов, использованных при расчете итогового значения). Возможные значения:
	* low — возвращает быстрый результат на основе сокращенной выборки данных.
	* medium — возвращает результат на основе выборки, сочетающей скорость и точность данных.
	* high — возвращает наиболее точное значение, используя наибольшую выборку данных. Этот режим может потребовать дополнительное время и замедлить обработку запроса.
	* full — возвращает все данные.
	* 1 — отсутствует семплирование (соответствует значению full).
	* 0.1 или 0.01 — доля возвращаемых данных (10%, 1%). Любое значение (например, 0.42) будет округляться до ближайшей степени числа 10.
* **include_undefined** - Включает в ответ строки, для которых значения группировок не определены. 
* **lang** - Язык, по умолчанию 'ru'.
* **timezone** - Часовой пояс в формате ±hh:mm в диапазоне [-23:59; +23:59] (знак плюса нужно нужно передавать как %2B), в котором будут расчитан период выборки запроса, а также связанные с датой и временем группировки. 
* **pretty** - Задает форматирование результата.
* **login** - Логин пользователя Яндекс.Метрики.
* **token.path** - Путь к директории в которой хранится файлс с учётными данными, для текущего пользователя Яндекс.Метрики, указанного в аргументе *login*.

### Пример работы с API управления

```r
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")
```

*Необходимо указать номера своиз счётчиков, логин и путь к папке для хранения файла с учётными данными.*
