alexspi / yandex-metrika
Laravel - Yandex Metrika
1.0.1
2023-03-28 22:18 UTC
Requires
- php: >=7.4.0
- guzzlehttp/guzzle: ^7.2
- illuminate/support: ^5.0|^6.0|^7.0|^8.0|^9.0
This package is auto-updated.
Last update: 2024-08-29 01:29:29 UTC
README
本包用于获取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"
配置
Metrika使用OAuth协议,该协议允许通过在Yandex上注册的应用程序代表Yandex用户处理Yandex数据。首先需要注册新的应用程序并获取token。
- 进入页面
https://oauth.yandex.ru/
- 点击“注册新应用”
- 填写“名称”字段
- 在权限部分选择“Yandex.Метрика”,并在“获取统计信息,读取自己及信任的计数器参数”项旁勾选
- 在“回调URL”字段下选择“开发中使用的URL”
- 保存
- 复制应用程序ID,并使用将作为应用程序工作账户的Yandex登录名登录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) //За указанный период //Обработка полученных данных для построения графика 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()方法。
对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);