PHPackages                             entense/yandex-metrika - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. entense/yandex-metrika

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

entense/yandex-metrika
======================

Laravel - Yandex Metrika

0591PHP

Since Aug 19Pushed 2y agoCompare

[ Source](https://github.com/entense/yandex-metrika)[ Packagist](https://packagist.org/packages/entense/yandex-metrika)[ RSS](/packages/entense-yandex-metrika/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Yandex Metrika Laravel 5 Package
================================

[](#yandex-metrika-laravel-5-package)

[![Latest Stable Version](https://camo.githubusercontent.com/9783a1a903f36ded25dd4bd3cf15baf7e3ff181492314ab73a95677ba811b6f7/68747470733a2f2f706f7365722e707567782e6f72672f616c657875736d61692f79616e6465782d6d657472696b612f762f737461626c65)](https://packagist.org/packages/alexusmai/yandex-metrika)[![Total Downloads](https://camo.githubusercontent.com/ea3c8cce59466bdccdbd66b612d49a1b4a1d47813588601956cdb6bb35ba4ea3/68747470733a2f2f706f7365722e707567782e6f72672f616c657875736d61692f79616e6465782d6d657472696b612f646f776e6c6f616473)](https://packagist.org/packages/alexusmai/yandex-metrika)[![Latest Unstable Version](https://camo.githubusercontent.com/c06d46c4b5c610ed39a95fe94a605f3aa43910170202d1a90bbc36dbf3fc1ff3/68747470733a2f2f706f7365722e707567782e6f72672f616c657875736d61692f79616e6465782d6d657472696b612f762f756e737461626c65)](https://packagist.org/packages/alexusmai/yandex-metrika)[![License](https://camo.githubusercontent.com/09d98cab72faf4ee59dc1ce254a9e144d3a6c207168e5c3d8c3e52c9dc37f31b/68747470733a2f2f706f7365722e707567782e6f72672f616c657875736d61692f79616e6465782d6d657472696b612f6c6963656e7365)](https://packagist.org/packages/alexusmai/yandex-metrika)

Пакет предназначен для получения данных статистики Яндекс Метрики.

**В связи с последними изменениями, token перенесен в HTTP заголовок - установите v1.0**

```
 Передача авторизационного токена в параметрах URL перестанет работать
13 февраля 2019 года. Чтобы продолжить работу с API Метрики,
настройте авторизацию по токену в HTTP-заголовке.

```

Установка
---------

[](#установка)

С помощью Composer

```
composer require alexusmai/yandex-metrika
```

Если у вас установлен Laravel 5.4 или более ранней версии, то в app/config/app.php нужно добавить провайдера,

```
Alexusmai\YandexMetrika\YandexMetrikaServiceProvider::class,
```

и добавить алиас.

```
'YandexMetrika' => Alexusmai\YandexMetrika\YandexMetrikaFacade::class,
```

Публикуем файл настроек

```
php artisan vendor:publish --provider="Alexusmai\YandexMetrika\YandexMetrikaServiceProvider" --tag="yandex-metrika"
```

Настройка
---------

[](#настройка)

Метрика использует протокол OAuth, этот протокол позволяет работать с данными Яндекса от лица пользователя Яндекса через приложение, зарегистрированное на Яндексе. Для начала нужно зарегистрировать новое приложение, и получить token

- Заходим на страницу

```
https://oauth.yandex.ru/

```

- Нажимаем «Зарегистрировать новое приложение»
- Запоняем поле «Название»
- Выбираем в разделе права пункт - Яндекс.Метрика и ставим галочку напротив пункта «Получение статистики, чтение параметров своих и доверенных счетчиков»
- Выбираем «Подставить URL для разработки» под полем «Callback URL»
- Сохраняем
- Копируем ID приложения и заходим на Яндекс под той учетной записью, от имени которой будет работать приложение
- Переходим по URL:

```
https://oauth.yandex.ru/authorize?response_type=token&client_id=подставим сюда идентификатор приложения

```

- Приложение запросит разрешение на доступ, нажимаем «Разрешить»
- Заносим полученный токен в файл конфигурации пакета.

Использование
-------------

[](#использование)

Большинтсво запросов взято из документации API Яндекс Метрики

Результат запроса - объект.

```
YandexMetrika {#464 ▼
  #url: "https://api-metrika.yandex.net/stat/v1/data"
  #counter_id: "12345678"
  #getMethodName: "getVisitsViewsUsers"
  #adaptMethodName: "adaptVisitsViewsUsers"
  +data: array:12 [▼
    "query" => array:14 [▶]
    "data" => array:31 [▶]
    "total_rows" => 31
    "total_rows_rounded" => false
    "sampled" => false
    "sample_share" => 1.0
    "sample_size" => 350
    "sample_space" => 350
    "data_lag" => 100
    "totals" => array:3 [▶]
    "min" => array:3 [▶]
    "max" => array:3 [▶]
  ]
  +adaptData: null
}

```

Если данные не получены - null. Ошибки возникающие при запросе данных пишутся в лог с названием Yandex Metrika:

Все запросы кэшируются, время жизни кэша указывается в конфигурационном файле.

Для обработки полученных данных есть дополнительные методы, которые делают данные более удобными для применения. Для их спользования используйте метод adapt() Не у всех методов для получения данных есть метод для обработки. У getRequestToApi() - нету

### Использование нескольких счетчиков.

[](#использование-нескольких-счетчиков)

Если вам нужно получать данные от разных счетчиков

```
YandexMetrika::setCounter($token, $counterId, $cache)->тут имя метода;

// Например
YandexMetrika::setCounter($token, $counterId, $cache)->getVisitsViewsUsers();

// $token и $counterId - нужно передавать обязательно, параметр $cache - необязательно(если не передан то будет использоваться из настроек)
```

### Получаем кол-во: визитов, просмотров, уникальных посетителей по дням

[](#получаем-кол-во-визитов-просмотров-уникальных-посетителей-по-дням)

```
YandexMetrika::getVisitsViewsUsers();   //По умолчанию - за последние 30 дней
//Пример
YandexMetrika::getVisitsViewsUsers(10); //За последние 10 дней
//За период
YandexMetrika::getVisitsViewsUsersForPeriod(DateTime $startDate, DateTime $endDate) //За указанный период
//Обработка полученных данных для построения графика Highcharts › Basic line
YandexMetrika::getVisitsViewsUsers()->adapt();
```

### Самые просматриваемые страницы

[](#самые-просматриваемые-страницы)

```
YandexMetrika::getTopPageViews();       //По умолчанию за последние 30 дней, количество результатов - 10
//Пример
YandexMetrika::getTopPageViews(10, 50); //За последние 10 дней, максимум 50 результатов
//За период
YandexMetrika::getTopPageViewsForPeriod(DateTime $startDate, DateTime $endDate, $maxResults = 10)   //По умолчанию максимум 10 результатов
//Обработка полученных данных
YandexMetrika::getTopPageViews()->adapt();
```

### Отчет "Источники - Сводка"

[](#отчет-источники---сводка)

```
YandexMetrika::getSourceSummary();      //По умолчанию за последние 30 дней
//Пример
YandexMetrika::getSourceSummary(7);     //За последние 10 дней
//За период
YandexMetrika::getSourcesSummaryForPeriod(DateTime $startDate, DateTime $endDate)
//Обработка полученных данных
YandexMetrika::getSourcesSummary()->adapt();
```

### Отчет "Источники - Поисковые фразы"

[](#отчет-источники---поисковые-фразы)

```
YandexMetrika::getSourcesSearchPhrases();       //По умолчанию за последние 30 дней, количество результатов - 10
//Пример
YandexMetrika::getSourcesSearchPhrases(15, 20); //За последние 15 дней, максимум 20 результатов
//За период
YandexMetrika::getSourcesSearchPhrasesForPeriod(DateTime $startDate, DateTime $endDate, $maxResult = 10)    //По максимум - 10 результатов
//Обработка полученных данных
YandexMetrika::getSourcesSearchPhrases()->adapt();
```

### Отчет "Технологии - Браузеры"

[](#отчет-технологии---браузеры)

```
YandexMetrika::getTechPlatforms();      //По умолчанию за последние 30 дней, макс количество результатов - 10
//Пример
YandexMetrika::getTechPlatforms(12, 5); //За последние 12 дней, максимум 5 результатов
//За период
YandexMetrika::getTechPlatformsForPeriod(DateTime $startDate, DateTime $endDate, $maxResult = 10)   //По умолчанию максимум 10 результатов
//Обработка полученных данных
YandexMetrika::getTechPlatforms()->adapt();
```

### Количество визитов и посетителей с учетом поисковых систем

[](#количество-визитов-и-посетителей-с-учетом-поисковых-систем)

```
YandexMetrika::getVisitsUsersSearchEngine();    //По умолчанию за последние 30 дней, макс количество результатов - 10
//Пример
YandexMetrika::getVisitsUsersSearchEngine(24, 60);  //За последние 24 дня, максимум 60 результатов
//За период
YandexMetrika::getVisitsUsersSearchEngineForPeriod(DateTime $startDate, DateTime $endDate, $maxResult = 10) //По умолчанию максимум 10 результатов
//Обработка полученных данных
YandexMetrika::getVisitsUsersSearchEngine()->adapt();
```

### Количество визитов с заданной глубиной просмотра

[](#количество-визитов-с-заданной-глубиной-просмотра)

```
YandexMetrika::getVisitsViewsPageDepth();       //По умолчанию за последние 30 дней, количество просмотренных страниц - 5
//Пример
YandexMetrika::getVisitsViewsPageDepth(14, 30);   //За последние 14 дней, макс количество результатов - 30
//За период
YandexMetrika::getVisitsViewsPageDepthForPeriod(DateTime $startDate, DateTime $endDate, $pages = 5) //По умолчанию - 5 страниц
//Обработка полученных данных
YandexMetrika::getVisitsViewsPageDepth()->adapt();
```

### Отчеты о посещаемости сайта с распределением по странам и регионам

[](#отчеты-о-посещаемости-сайта-с-распределением-по-странам-и-регионам)

```
YandexMetrika::getGeoCountry();   //По умолчанию за последние 7 дней, макс количество результатов - 100
//Пример
YandexMetrika::getGeoCountry(12, 30);   //За последние 12 дней, макс количество результатов - 30
//За период
YandexMetrika::getGeoCountryForPeriod(DateTime $startDate, DateTime $endDate, $maxResult = 100) //По умолчанию максимум 100 результатов
//Обработка полученных данных для построения графика Highcharts.js > Pie with drilldown
YandexMetrika::getGeoCountry()->adapt()();
```

### Отчеты о посещаемости сайта с распределением по областям и городам

[](#отчеты-о-посещаемости-сайта-с-распределением-по-областям-и-городам)

```
YandexMetrika::getGeoArea();   //По умолчанию за последние 7 дней, макс количество результатов - 100, Страна - Россия (id-225)
//Пример
YandexMetrika::getGeoArea(12, 30, 187);   //За последние 12 дней, макс количество результатов - 30, страна - Украина
//За период
YandexMetrika::getGeoAreaForPeriod(DateTime $startDate, DateTime $endDate, $maxResult = 100, $countryId = 225)
//Обработка полученных данных для построения графика Highcharts.js > Pie with drilldown
YandexMetrika::getGeoArea()->adapt()();
```

Для методов getGeoCountry() и getGeoArea() - метод обработки данных общий - adaptGeoPie()

### Произвольный запрос к Api Yandex Metrika

[](#произвольный-запрос-к-api-yandex-metrika)

```
//Параметры запроса
$urlParams = [
            'ids'           => '123456',                        //id счетчика
            'date1'         => Carbon::today()->subDays(10),    //Начальная дата
            'date2'         => Carbon::today(),                 //Конечная дата
            'metrics'       => 'ym:s:visits',
            'filters'       => 'ym:s:pageViews>5'
        ];
//Запрос
YandexMetrika::getRequestToApi($urlParams);
```

###  Health Score

17

—

LowBetter than 6% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity21

Early-stage or recently created project

 Bus Factor1

Top contributor holds 73.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/9099b234bd4713374af10ca69068d87ba22461d12f38f226335e7eacd302c6c3?d=identicon)[entense](/maintainers/entense)

---

Top Contributors

[![alexusmai](https://avatars.githubusercontent.com/u/7473505?v=4)](https://github.com/alexusmai "alexusmai (19 commits)")[![entense](https://avatars.githubusercontent.com/u/76127644?v=4)](https://github.com/entense "entense (3 commits)")[![chelout](https://avatars.githubusercontent.com/u/9196257?v=4)](https://github.com/chelout "chelout (2 commits)")[![devourersouls](https://avatars.githubusercontent.com/u/12913043?v=4)](https://github.com/devourersouls "devourersouls (1 commits)")[![n7olkachev](https://avatars.githubusercontent.com/u/3993345?v=4)](https://github.com/n7olkachev "n7olkachev (1 commits)")

### Embed Badge

![Health badge](/badges/entense-yandex-metrika/health.svg)

```
[![Health](https://phpackages.com/badges/entense-yandex-metrika/health.svg)](https://phpackages.com/packages/entense-yandex-metrika)
```

###  Alternatives

[dnadesign/silverstripe-advanceddropdowns

DropdownField and GroupedDropdownField that allows the use of data-attributes on each option tag

1717.3k](/packages/dnadesign-silverstripe-advanceddropdowns)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
