devkornev/yandex-metrika

Laravel - Yandex Metrika

v11.0 2024-06-30 10:30 UTC

This package is auto-updated.

Last update: 2024-09-30 11:07:53 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

该包旨在获取Yandex Metrika的统计数据。 原始包。本分支的目标是与Laravel的新版本兼容,并进行一些小修复。

安装

使用Composer

composer require devkornev/yandex-metrika

发布配置文件

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

配置

Metrika使用OAuth协议,该协议允许通过在Yandex上注册的应用程序代表Yandex用户处理Yandex数据。要开始,需要注册一个新应用并获取token。

  • 访问页面
https://oauth.yandex.ru/
  • 点击“注册新应用”
  • 填写“名称”字段
  • 在“权限”部分选择“Yandex.Метрика”,并在“获取统计信息,读取自己的和受信任计数器的参数”旁边勾选复选框
  • 在“回调URL”字段下选择“开发时使用”
  • 保存
  • 复制应用程序ID,并使用将作为应用程序运行的用户名登录Yandex
  • 通过URL进入
https://oauth.yandex.ru/authorize?response_type=token&client_id=подставим сюда идентификатор приложения
  • 应用程序将请求访问权限,点击“允许”
  • 将获得的token记录到包的配置文件中。

使用

大多数请求来自Yandex Metrika API文档 https://tech.yandex.ru/metrika/

请求结果 - 对象。

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) //За указанный период
//Обработка полученных данных для построения графика HighchartsBasic 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()方法

对Yandex Metrika API的任意查询

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