PHPackages                             devkornev/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. devkornev/yandex-metrika

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

devkornev/yandex-metrika
========================

Laravel - Yandex Metrika

v11.0(1y ago)064MITPHPPHP ^8.1

Since Jun 30Pushed 1y agoCompare

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

READMEChangelog (1)Dependencies (1)Versions (2)Used By (0)

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

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

[![Latest Stable Version](https://camo.githubusercontent.com/6ad520293daa230bb6598c9dd7b81973ceb1046fa7f1f1bf1a6373f599c0d469/68747470733a2f2f706f7365722e707567782e6f72672f6465766b6f726e65762f79616e6465782d6d657472696b612f762f737461626c65)](https://packagist.org/packages/devkornev/yandex-metrika)[![Total Downloads](https://camo.githubusercontent.com/ce0bbc900461865796c0c52e553d48b8ccffd9ce975c1804adc3e7ba84593e5a/68747470733a2f2f706f7365722e707567782e6f72672f6465766b6f726e65762f79616e6465782d6d657472696b612f646f776e6c6f616473)](https://packagist.org/packages/devkornev/yandex-metrika)[![Latest Unstable Version](https://camo.githubusercontent.com/c86e52ed998d53517446454579f0c8c77296e9a06f526fe0159edeacb0919210/68747470733a2f2f706f7365722e707567782e6f72672f6465766b6f726e65762f79616e6465782d6d657472696b612f762f756e737461626c65)](https://packagist.org/packages/devkornev/yandex-metrika)[![License](https://camo.githubusercontent.com/62e1d66ac3d027782b747ab4d66db707810657bfdb562b91a65b43b241ec2f17/68747470733a2f2f706f7365722e707567782e6f72672f6465766b6f726e65762f79616e6465782d6d657472696b612f6c6963656e7365)](https://packagist.org/packages/devkornev/yandex-metrika)

Пакет предназначен для получения данных статистики Яндекс Метрики. [Оригинальный пакет](https://github.com/alexusmai/yandex-metrika). Цель данного форка - совместимость с новыми версиями Laravel, мелкие фиксы.

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

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

С помощью Composer

```
composer require devkornev/yandex-metrika
```

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

```
php artisan vendor:publish --provider="Devkornev\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

28

—

LowBetter than 54% of packages

Maintenance34

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 63.3% 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.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

678d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/d62189e3189b102b5b8715937cd7cb0b03c32bb5e246bb391b38e170021d2736?d=identicon)[devkornev](/maintainers/devkornev)

---

Top Contributors

[![alexusmai](https://avatars.githubusercontent.com/u/7473505?v=4)](https://github.com/alexusmai "alexusmai (19 commits)")[![devkornev](https://avatars.githubusercontent.com/u/20462581?v=4)](https://github.com/devkornev "devkornev (7 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)")

---

Tags

laravelyandexmetrika

### Embed Badge

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

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

###  Alternatives

[gehrisandro/tailwind-merge-laravel

TailwindMerge for Laravel merges multiple Tailwind CSS classes by automatically resolving conflicts between them

341682.2k18](/packages/gehrisandro-tailwind-merge-laravel)[arcanedev/seo-helper

SEO Helper is a framework agnostic package that provides tools &amp; helpers for SEO (Laravel supported).

332467.0k4](/packages/arcanedev-seo-helper)[backpack/basset

Dead-simple way to load CSS or JS assets only once per page, when using Laravel 10+.

202832.4k6](/packages/backpack-basset)[alexusmai/yandex-metrika

Laravel - Yandex Metrika

4436.7k](/packages/alexusmai-yandex-metrika)[firefly-iii/data-importer

Firefly III Data Import Tool.

7545.8k](/packages/firefly-iii-data-importer)[bensampo/laravel-embed

Painless responsive embeds for videos, slideshows and more.

142146.8k](/packages/bensampo-laravel-embed)

PHPackages © 2026

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