Библиотека для удобного взаимодействия с Yandex Metrika API
Изменил минимальную версию php с 8.0 на 7.4
Старт
Использование
Ответ
Автор
Лицензия
$ composer require axp-dev/ya-metrika
Переходим на страницу oauth.yandex.ru
Нажимаем "Зарегистрировать новое приложение"
Вписываем название и выбираем "Получение статистики, чтение параметров своих и доверенных счетчиков"
Выбираем "Подставить URL для разработки"
Копируем ID
Переходим по ссылке: https://oauth.yandex.ru/authorize?response_type=token&client_id=ВАШ ID
Подтверждаем запрос
$ token = getenv('TOKEN' );
$ counterId = getenv('COUNTER_ID' );
$ client = new Client ($ token , $ counterId );
$ metrika = new YaMetrika ($ client );
Будут получены данные: визитов, просмотров, уникальных посетителей по дням.
public function getVisitors(int $ days = 30 ): Response
Название
Тип
Описание
$days
integer
Кол-во дней. По умолчанию 30
public function getVisitorsForPeriod(DateTime $ startDate , DateTime $ endDate ): Response
Название
Тип
Описание
$startDate
DateTime
Начальная дата
$endDate
DateTime
Конечная дата
Самые просматриваемые страницы
public function getMostViewedPages(int $ days = 30 , int $ limit = 10 ): Response
Название
Тип
Описание
$days
integer
Кол-во дней. По умолчанию 30
$limit
integer
Лимит записей. По умолчанию 10
public function getMostViewedPagesForPeriod(DateTime $ startDate , DateTime $ endDate , int $ limit = 10 ): Response
Название
Тип
Описание
$startDate
DateTime
Начальная дата
$endDate
DateTime
Конечная дата
$limit
integer
Лимит записей. По умолчанию 10
public function getBrowsers(int $ days = 30 , int $ limit = 10 ): Response
Название
Тип
Описание
$days
integer
Кол-во дней. По умолчанию 30
$limit
integer
Лимит записей. По умолчанию 10
public function getBrowsersForPeriod(DateTime $ startDate , DateTime $ endDate , int $ limit = 10 ): Response
Название
Тип
Описание
$startDate
DateTime
Начальная дата
$endDate
DateTime
Конечная дата
$limit
integer
Лимит записей. По умолчанию 10
Пользователи из поисковых систем
public function getUsersSearchEngine(int $ days = 30 , int $ limit = 10 ): Response
Название
Тип
Описание
$days
integer
Кол-во дней. По умолчанию 30
$limit
integer
Лимит записей. По умолчанию 10
public function getUsersSearchEngineForPeriod(DateTime $ startDate , DateTime $ endDate , int $ limit = 10 ): Response
Название
Тип
Описание
$startDate
DateTime
Начальная дата
$endDate
DateTime
Конечная дата
$limit
integer
Лимит записей. По умолчанию 10
Пользователи по странам и регионам
public function getGeo($ days = 7 , $ limit = 20 ): Response
Название
Тип
Описание
$days
integer
Кол-во дней. По умолчанию 7
$limit
integer
Лимит записей. По умолчанию 20
public function getGeoForPeriod(DateTime $ startDate , DateTime $ endDate , int $ limit = 20 ): Response
Название
Тип
Описание
$startDate
DateTime
Начальная дата
$endDate
DateTime
Конечная дата
$limit
integer
Лимит записей. По умолчанию 20
Пол и возраст пользователей
public function getAgeGender($ days = 30 , $ limit = 20 ): Response
Название
Тип
Описание
$days
integer
Кол-во дней. По умолчанию 30
$limit
integer
Лимит записей. По умолчанию 20
public function getAgeGenderForPeriod(DateTime $ startDate , DateTime $ endDate , int $ limit = 20 ): Response
Название
Тип
Описание
$startDate
DateTime
Начальная дата
$endDate
DateTime
Конечная дата
$limit
integer
Лимит записей. По умолчанию 20
public function getSearchPhrases($ days = 30 , $ limit = 20 ): Response
Название
Тип
Описание
$days
integer
Кол-во дней. По умолчанию 30
$limit
integer
Лимит записей. По умолчанию 20
public function getSearchPhrasesForPeriod(DateTime $ startDate , DateTime $ endDate , int $ limit = 20 ): Response
Название
Тип
Описание
$startDate
DateTime
Начальная дата
$endDate
DateTime
Конечная дата
$limit
integer
Лимит записей. По умолчанию 20
Шаблоны (preset) автоматически задают метрики и группировки, которые необходимы для того или иного отчета.
Список всех шаблонов доступен по ссылке - tech.yandex.ru/metrika/../presets-docpage .
public function getPreset(string $ preset , int $ days = 30 , int $ limit = 10 ): Response
Название
Тип
Описание
$preset
string
Название шаблона
$days
integer
Кол-во дней. По умолчанию 30
$limit
integer
Лимит записей. По умолчанию 10
public function getPresetForPeriod(string $ preset , DateTime $ startDate , DateTime $ endDate , int $ limit = 10 ): Response
Название
Тип
Описание
$preset
string
Название шаблона
$startDate
DateTime
Начальная дата
$endDate
DateTime
Конечная дата
$limit
integer
Лимит записей. По умолчанию 10
Параметры ids
и oauth_token
передавать не нужно.
public function customQuery(array $ params ): Response
Название
Тип
Описание
$params
array
Параметры запроса
Возвращает исходные данные, которые были получены напрямую из api.
public function rawData(): array
Возвращает отформатированные данные. Будут переименованы поля, удалены ненужные префиксы.
public function formatData(): array
Возвращает отформатированные данные. Будут переименованы поля, удалены ненужные префиксы.
public function customFormat(callable $ callback ): array
Alexander Pushkarev , e-mail: axp-dev@yandex.com
Основой Yandex Metrika API являет открытый исходный код, в соответствии MIT license