myoutdeskllc/laravel-analytics-v4

v1.0.1 2023-02-27 20:10 UTC

README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

此包提供了一些开箱即用的方法,用于与 GA4 属性集成。受 Spatie 对 GA3 的集成 启发。需要 Laravel 9+。

安装

您可以通过 composer 安装此包

composer require myoutdeskllc/laravel-analytics-v4

您可以使用以下命令发布配置文件

php artisan vendor:publish --tag="analytics-v4-config"

这是已发布配置文件的内容

return [
    'property_id' => env('ANALYTICS_PROPERTY_ID', 'XXXXXXXXX'),
    'service_account_credentials_json' => storage_path('app/analytics/service-account-credentials.json'),
    // This data is passed into the built-in cache mechanism for google's CredentialWrapper
    'cache' => [
        'enableCaching' => env('ANALYTICS_CACHE',false),
        'authCache' => null,
        'authCacheOptions' => [
            'lifetime' => env('ANALYTICS_CACHE_LIFETIME', 60), // you may want to set this higher
            'prefix' => env('ANALYTICS_CACHE_PREFIX', 'analytics_'),
        ]
    ]
];

使用方法

Laravel 内部

use Myoutdeskllc\LaravelAnalyticsV4\Period;
use Myoutdeskllc\LaravelAnalyticsV4\PrebuiltRunConfigurations;

$client = App::make('laravel-analytics-v4');
$lastMonth = Period::months(1);
$results = $client->runReport(PrebuiltRunConfigurations::getMostVisitedPages($lastMonth));

您可以配置自己的报告配置,或者使用预构建的报告

// Use this on the laravel side to get it from the container
$analytics = App::make('laravel-analytics-v4');

// Prepare a filter
$filter = new StringFilter();
$filter->setDimension('country')->exactlyMatches('United States');

// Prepare a report
$reportConfig = (new RunReportConfiguration())
                ->setStartDate('2022-09-01')
                ->setEndDate('2022-09-30')
                ->addDimensions(['country', 'landingPage', 'date'])
                ->addMetric('sessions')
                ->addFilter($filter);

$analytics->convertResponseToArray()->runReport($reportConfig);

耶,结果

  [
    "dimensions" => [
      "country" => "United States",
      "landingPage" => "/",
      "date" => "20220903",
    ],
    "metrics" => [
      "sessions" => "113",
    ],
  ],
  [
    "dimensions" => [
      "country" => "United States",
      "landingPage" => "/services/",
      "date" => "20220902",
    ],
    "metrics" => [
      "sessions" => "110",
    ],
  ],

或者使用预构建的报告配置

$lastMonth = Period::months(1);
$analytics->runReport(PrebuiltRunConfigurations::getMostVisitedPages($lastMonth));

测试

composer test

变更日志

有关最近更改的更多信息,请参阅 CHANGELOG

贡献

提交通过测试的 PR。

致谢

许可证

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