mstroink/cakephp-google-analytics

此包已被废弃且不再维护。未建议替换包。

一个用于检索Google Analytics数据的CakePHP包。从spatie/laravel-analytics分支而来。

安装: 14

依赖项: 0

建议者: 0

安全: 0

星星: 2

关注者: 2

分支: 0

类型:cakephp-plugin

0.0.3 2021-07-28 19:08 UTC

This package is not auto-updated.

Last update: 2023-11-20 19:03:16 UTC


README

Latest Version MIT Licensed Test Status Check & fix styling Total Downloads

这只是对spatie/laravel-analytics包的简单移植,并重新调整为适用于CakePHP ^4.2 (php 8.0)。请注意,此插件使用了新的依赖注入容器。这是一个实验性功能,尚未稳定。

使用此包,您可以轻松检索Google Analytics数据。

以下是提供的一些方法示例

use MStroink\Analytics\Analytics;
use MStroink\Analytics\Period;

// In src/Controller/DashboardController.php
class DashboardController extends AppController
{
    public function view(Analytics $analytics)
    {
        //fetch the most visited pages for today and the past week
        $analytics->fetchMostVisitedPages(Period::days(7));

        //fetch visitors and page views for the past week
        $analytics->fetchVisitorsAndPageViews(Period::days(7));
    }
}

大多数方法将返回一个包含结果的\Cake\Collection\Collection对象。

安装

此包可以通过Composer安装。

composer require mstroink/cakephp-google-analytics

加载插件

bin/cake plugin load MStroink/Analytics 

配置

创建您的配置文件config/analytics.php

return [

    /*
     * The view id of which you want to display data.
     */
    'view_id' => env('ANALYTICS_VIEW_ID'),

    /*
     * Path to the client secret json file. Take a look at the README of this package
     * to learn how to get this file. You can also pass the credentials as an array
     * instead of a file path.
     */
    'service_account_credentials_json' => ROOT . DS . 'config' . DS . 'service-account-credentials.json',

    /*
     * The amount of minutes the Google API responses will be cached.
     * If you set this to zero, the responses won't be cached at all.
     */
    'cache_lifetime_in_minutes' => 60 * 24,

    /*
     * The name of the cache config engine
     */
    'cache' => [
        'analytics' => 'google_analytics',
        'auth' => 'google_auth',
    ],
];

在您的config/app.php中,在Cache键下添加一个名为analytics_results的缓存配置,并添加所需配置。例如:

'analytics_results' => [
    'className' => FileEngine::class,
    'duration' => '+1 year', //note that lifetime is managed by setting cache_lifetime_in_minutes
],

如何获取与Google Analytics通信的凭据

获取凭据

您首先需要获取一些用于使用Google API的凭据。我假设您已经创建了一个Google账户并已登录。前往Google API网站,在页眉中点击"选择项目"。

1

接下来,我们必须指定项目可能消耗哪些API。在可用的API列表中,点击"Google Analytics API"。在下一屏幕上点击"启用"。

2

现在,您已经创建了一个可以访问Analytics API的项目,是时候下载一个包含这些凭据的文件了。点击侧边栏中的"Credentials"。您将想要创建一个"服务账户密钥"。

3

在下一屏幕上,您可以给服务账户命名。您可以为它命名任何您想要的名称。在服务账户ID中,您将看到一个电子邮件地址。我们将在本指南的稍后部分使用此电子邮件地址。选择"JSON"作为密钥类型,然后点击"创建"以下载JSON文件。

4

将json文件保存在您的Laravel项目中的指定位置,该位置在包的配置文件中的service_account_credentials_json键中指定。由于json文件可能包含潜在敏感信息,我不建议将其提交到您的git仓库。

授予Analytics属性权限

我假设您已经在Analytics网站上创建了一个Analytics账户。转到属性管理部分的"用户管理"。

5

在此屏幕上,您可以授予对上一步中下载的json文件中的client_email键中的电子邮件地址的访问权限。只读访问就足够了。

6

获取视图ID

您最后需要做的是在配置文件中填写 view_id。您可以在 分析网站 获取正确的值。在属性的“管理”部分中转到“视图设置”。

7

您需要显示的 视图 ID

8

使用方法

安装完成后,您可以轻松检索分析数据。几乎所有方法都会返回一个 Cake\Collection\Collection-实例。

以下是使用时间段的几个示例

//retrieve visitors and pageview data for the current day and the last seven days
$analyticsData = $analytics->fetchVisitorsAndPageViews(Period::days(7));

//retrieve visitors and pageviews since the 6 months ago
$analyticsData = $analytics->fetchVisitorsAndPageViews(Period::months(6));

//retrieve sessions and pageviews with yearMonth dimension since 1 year ago
$analyticsData = $analytics->performQuery(
    Period::years(1),
    'ga:sessions',
    [
        'metrics' => 'ga:sessions, ga:pageviews',
        'dimensions' => 'ga:yearMonth'
    ]
);

$analyticsData 是一个 Collection,其中每个条目都是一个包含键 datevisitorspageViews 的数组。

如果您想更精确地控制要获取数据的周期,可以向周期对象传递 startDateendDate

$startDate = Chronos::now()->subYear();
$endDate = Chronos::now();

Period::create($startDate, $endDate);

提供的方法

访客和页面浏览量

public function fetchVisitorsAndPageViews(Period $period): Collection

该函数返回一个 Collection,其中每个条目都是一个包含键 datevisitorspageTitlepageViews 的数组。

总访客和页面浏览量

public function fetchTotalVisitorsAndPageViews(Period $period): Collection

该函数返回一个 Collection,其中每个条目都是一个包含键 datevisitorspageViews 的数组。

最常访问的页面

public function fetchMostVisitedPages(Period $period, int $maxResults = 20): Collection

该函数返回一个 Collection,其中每个条目都是一个包含键 urlpageTitlepageViews 的数组。

顶级推荐来源

public function fetchTopReferrers(Period $period, int $maxResults = 20): Collection

该函数返回一个 Collection,其中每个条目都是一个包含键 urlpageViews 的数组。

用户类型

public function fetchUserTypes(Period $period): Collection

该函数返回一个 Collection,其中每个条目都是一个包含键 typesessions 的数组。

顶级浏览器

public function fetchTopBrowsers(Period $period, int $maxResults = 10): Collection

该函数返回一个 Collection,其中每个条目都是一个包含键 browsersessions 的数组。

所有其他 Google Analytics 查询

要执行 Google Analytics 资源上的所有其他查询,请使用 performQuery。有关可能使用的指标和维度的更多信息,请参阅 Google 的核心报告 API

public function performQuery(Period $period, string $metrics, array $others = [])

您可以访问底层的 Google_Service_Analytics 对象

$analytics->getAnalyticsService();

测试

使用以下命令运行测试

vendor/bin/phpunit

贡献

有关详细信息,请参阅 CONTRIBUTING

支持 Spatie

68747470733a2f2f6769746875622d6164732e73332e65752d63656e7472616c2d312e616d617a6f6e6177732e636f6d2f6c61726176656c2d616e616c79746963732e6a70673f743d31

我们投入了大量资源来创建 最佳开源软件包。您可以通过 购买我们的付费产品之一 来支持我们。

非常感谢您从家乡寄给我们一张明信片,并注明您正在使用我们哪些包裹。您可以在联系我们页面找到我们的地址。我们将在我们的虚拟明信片墙上发布所有收到的明信片。

致谢

特别感谢Caneco为我们设计的标志 ✨

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件