educare/analytics

从Google Analytics获取您想要的所有数据。

dev-main 2023-01-09 12:03 UTC

This package is not auto-updated.

Last update: 2024-10-01 17:52:35 UTC


README

此包帮助PHP开发者以方便的方式使用Google Analytics API V4。代码整洁,并遵循良好的OOP实践。任何有助于改进此包的帮助都将受到赞赏。

此包与Laravel框架兼容。

安装

通过Composer安装包

composer require educare/analytics

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

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

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

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

使用命令复制分析配置文件

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

对于那些拥有Google Analytics API凭证的用户,请继续此处,否则请参阅如何使用Google Analytics API创建凭证

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

将视图ID添加到.env文件

GOOGLE_ANALYTICS_VIEW_ID=324235464

用法

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

Educare\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接受三个参数。第一个参数获取要过滤分析数据的维度名称。第二个参数获取您想要的操作符(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方法接受三个参数。第一个参数获取要排序的数据的名称。第二个获取OrderType,通常是VALUE。第三个获取SortOrder,通常是ASCENDINGDESCENDING

使用Analytics契约获取数据

Educare\Analytics\Contracts\Analytics

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

use Educare\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,然后转到谷歌分析管理面板,选择用户管理,并添加您复制的帐户,并设置您想要的权限。
  • 您的新公钥/私钥对已生成并下载到您的机器上;它是此密钥的唯一副本。您负责安全存储。
  • json文件重命名为service-account-credentials.json
  • 要获取视图ID,您可以使用帐户浏览器或从谷歌分析的视图设置(在管理面板中)获取。