Библиотека для удобного взаимодействия с Yandex Metrika API
$ composer require axp-dev/ya-metrika
- Переходим на страницу oauth.yandex.ru
- Нажимаем "Зарегистрировать новое приложение"
- Вписываем название и выбираем "Получение статистики, чтение параметров своих и доверенных счетчиков"
- Выбираем "Подставить URL для разработки"
- Копируем ID
- Переходим по ссылке:
https://oauth.yandex.ru/authorize?response_type=token&client_id=ВАШ ID
- Подтверждаем запрос
$token = '';
$counter_id = '';
$YaMetrika = new YaMetrika($token, $counter_id);
// Пример использования без форматирвоания
$traffic = $YaMetrika->getPreset('traffic')
->data;
// Пример использования с форматированием
$traffic = $YaMetrika->getPreset('traffic', 30, 15)
->format()
->formatData;
// Пример произвольного запроса
$data = [
'date1' => Carbon::yesterday()->format('Y-m-d'),
'date2' => Carbon::today()->format('Y-m-d'),
'metrics' => 'ym:s:visits',
];
$visits = $YaMetrika->customQuery($data)
->data;
Для форматирования данных необходимо вызвать format()
. Для произвольных запросов данный метод также работает.
Будут получены данные: визитов, просмотров, уникальных посетителей по дням.
public function getVisitors($days = 30) : self
Название | Тип | Описание |
---|---|---|
$days | integer | Кол-во дней. По умолчанию 30 |
public function getVisitorsForPeriod(DateTime $startDate, DateTime $endDate) : self
Название | Тип | Описание |
---|---|---|
$startDate | DateTime | Начальная дата |
$endDate | DateTime | Конечная дата |
public function getMostViewedPages($days = 30, $limit = 10) : self
Название | Тип | Описание |
---|---|---|
$days | integer | Кол-во дней. По умолчанию 30 |
$limit | integer | Лимит записей. По умолчанию 10 |
public function getMostViewedPagesForPeriod(DateTime $startDate, DateTime $endDate, $limit = 10) : self
Название | Тип | Описание |
---|---|---|
$startDate | DateTime | Начальная дата |
$endDate | DateTime | Конечная дата |
$limit | integer | Лимит записей. По умолчанию 10 |
public function getBrowsers($days = 30, $limit = 10) : self
Название | Тип | Описание |
---|---|---|
$days | integer | Кол-во дней. По умолчанию 30 |
$limit | integer | Лимит записей. По умолчанию 10 |
public function getBrowsersForPeriod(DateTime $startDate, DateTime $endDate, $limit = 10) : self
Название | Тип | Описание |
---|---|---|
$startDate | DateTime | Начальная дата |
$endDate | DateTime | Конечная дата |
$limit | integer | Лимит записей. По умолчанию 10 |
public function getUsersSearchEngine($days = 30, $limit = 10) : self
Название | Тип | Описание |
---|---|---|
$days | integer | Кол-во дней. По умолчанию 30 |
$limit | integer | Лимит записей. По умолчанию 10 |
public function getUsersSearchEngineForPeriod(DateTime $startDate, DateTime $endDate, $limit = 10) : self
Название | Тип | Описание |
---|---|---|
$startDate | DateTime | Начальная дата |
$endDate | DateTime | Конечная дата |
$limit | integer | Лимит записей. По умолчанию 10 |
public function getGeo($days = 7, $limit = 20) : self
Название | Тип | Описание |
---|---|---|
$days | integer | Кол-во дней. По умолчанию 7 |
$limit | integer | Лимит записей. По умолчанию 20 |
public function getGeoForPeriod(DateTime $startDate, DateTime $endDate, $limit = 20) : self
Название | Тип | Описание |
---|---|---|
$startDate | DateTime | Начальная дата |
$endDate | DateTime | Конечная дата |
$limit | integer | Лимит записей. По умолчанию 20 |
public function getAgeGender($days = 30, $limit = 20) : self
Название | Тип | Описание |
---|---|---|
$days | integer | Кол-во дней. По умолчанию 30 |
$limit | integer | Лимит записей. По умолчанию 20 |
public function getAgeGenderForPeriod(DateTime $startDate, DateTime $endDate, $limit = 20) : self
Название | Тип | Описание |
---|---|---|
$startDate | DateTime | Начальная дата |
$endDate | DateTime | Конечная дата |
$limit | integer | Лимит записей. По умолчанию 20 |
Шаблоны (preset) автоматически задают метрики и группировки, которые необходимы для того или иного отчета. Список всех шаблонов доступен по ссылке - tech.yandex.ru/metrika/../presets-docpage.
public function getPreset($template, $days = 30, $limit = 10) : self
Название | Тип | Описание |
---|---|---|
$template | string | Название шаблона |
$days | integer | Кол-во дней. По умолчанию 30 |
$limit | integer | Лимит записей. По умолчанию 10 |
public function getPresetForPeriod($template, DateTime $startDate, DateTime $endDate, $limit = 10) : self
Название | Тип | Описание |
---|---|---|
$template | string | Название шаблона |
$startDate | DateTime | Начальная дата |
$endDate | DateTime | Конечная дата |
$limit | integer | Лимит записей. По умолчанию 10 |
Параметры ids
и oauth_token
передавать не нужно.
public function customQuery($params) : self
Название | Тип | Описание |
---|---|---|
$params | array | Параметры запроса |
Alexander Pushkarev, e-mail: axp-dev@yandex.com
Основой Yandex Metrika API являет открытый исходный код, в соответствии MIT license