panakour/analytics

从 Google Analytics 获取您所需的数据。

v1.0.4 2019-08-23 13:49 UTC

This package is auto-updated.

Last update: 2024-08-30 01:26:03 UTC


README

StyleCI Latest Stable Version Total Downloads License

使用 Laravel PHP 框架轻松获取 Google Analytics API V4 中的任何数据。

此包帮助 PHP 开发者以方便的方式使用 Google Analytics API V4。代码清晰,并遵循良好的面向对象编程实践。任何改进此包的帮助都将受到赞赏。

该包与 Laravel 框架兼容。

安装

通过 composer 安装包

composer require panakour/analytics

要在 Laravel 中使用它,请将 GoogleAnalyticsServiceProvider 添加到 config/app.php

'providers' => [
...
Panakour\Analytics\GoogleAnalyticsServiceProvider::class
]

如果想要使用包的 facade,请将其添加到 config/app.php

'aliases' => [
...
'Analytics' => Panakour\Analytics\Facades\Analytics::class
]

使用以下命令复制 analytics 配置文件

php artisan vendor:publish --provider="Panakour\Analytics\GoogleAnalyticsServiceProvider"

如果您有 Google Analytics API 的凭据,请继续此处,否则请参阅 如何使用 Google Analytics API 创建凭据

请确保在 storage\app\google-analytics\ 中有 service-account-credentials.json 文件。

将视图 ID 添加到 .env 文件

GOOGLE_ANALYTICS_VIEW_ID=324235464

用法

您可以使用 facade 简单地获取分析数据

Panakour\Analytics\Facades\Analytics

要获取上周的所有会话

Analytics::get();

要获取特定日期范围内的所有会话
Analytics::setDateRange('2016-10-01', '2016-11-25');
Analytics::get();
要获取您所需的数据
Analytics::setDateRange('2016-10-01', '2016-11-25');
Analytics::setMaxResults(20);
Analytics::setMetrics(['ga:entrances', 'ga:pageviews', 'ga:bounceRate']);
Analytics::setDimension(['ga:pagePath', 'ga:pageTitle']);
Analytics::setDimensionFilter('ga:pagePath', 'REGEXP', '/i-want-to-get-all-data-that-has-this-page-path');
Analytics::setOrder('ga:pageviews', 'VALUE', 'DESCENDING');
return Analytics::get();

setMetricssetDimension 方法接受一个包含所需指标和维度的数组。可用的 指标和维度

setDimensionFilter 接受 3 个参数。第一个参数获取您想要过滤分析数据的维度名称。第二个参数获取您想要的 运算符(REGEXP、BEGINS_WITH、ENDS_WITH 等)。第三个参数获取表达式。例如,如果您想获取包含 playsimple 词汇的所有分析数据,可以使用: Analytics::setDimensionFilter('ga:pagePath', 'REGEXP', '(\/play\/|\/simple\/)');

如果您想在单个请求中获取多个页面的分析数据(通过其精确路径),可以使用 'IN_LIST' 运算符并将路径数组作为第三个参数传递。例如:Analytics::setDimensionFilter('ga:pagePath', 'IN_LIST', ['/i-want-data-for-this-path', '/and/this-path-too']);

setOrder 方法接受 3 个参数。第一个参数获取您想要排序的数据名称。第二个获取 OrderType,通常是 VALUE。第三个获取 SortOrder,通常是 ASCENDINGDESCENDING

使用 Analytics 接口获取数据

Panakour\Analytics\Contracts\Analytics

您可以使用 Analytics 接口获取分析数据,而不是使用 facade

use Panakour\Analytics\Contracts\Analytics;

class GoogleAnalyticsController
{
    //inject analytics interface
    public function get(Analytics $analytics)
    {
        $analytics->setDateRange('2016-12-01', '2016-12-20');
        $analytics->setMaxResults(11);
        $analytics->setMetrics(['ga:pageviews', 'ga:uniquePageviews', 'ga:avgTimeOnPage', 'ga:entrances', 'ga:bounceRate']);
        $analytics->setDimension(['ga:pagePath', 'ga:pageTitle']);
        $analytics->setDimensionFilter('ga:pagePath', 'REGEXP', '(\/this-value-in-path\/|\/or-this-value-in-path\/)');
        $analytics->setOrder('ga:pageviews', 'VALUE', 'DESCENDING');
        return $analytics->get();
    }
}    

使用 Google Analytics API V4 创建凭据

Google Analytics API V4 指南: https://developers.google.com/analytics/devguides/reporting/core/v4/quickstart/service-php

  • 使用 Google API Console 创建项目
  • 打开服务账户页面。如有提示,选择您已创建的项目并点击打开。
  • 点击创建服务账户
  • 在创建服务账户窗口中,为服务账户输入名称,并选择“提供新的私有密钥”。在密钥类型中选择“JSON”,然后点击创建。如果您想授予G Suite域范围权限给服务账户,也请选择“启用G Suite域范围委托”。
  • 复制您创建的服务账户ID,然后前往Google分析管理面板,选择用户管理,并添加您复制的账户,并赋予您想要的权限。
  • 您的新公钥/私钥对已生成并下载到您的计算机上;这是此密钥的唯一副本。您负责安全存储。
  • json文件重命名为service-account-credentials.json
  • 要获取视图ID,您可以使用账户探索器,或从管理面板的Google分析视图设置中获取。