このパッケージを使用すると、Google Analytics からデータを簡単に取得できます。
提供されているメソッドの例をいくつか示します。
use Spatie Analytics Facades Analytics ;
use Spatie Analytics Period ;
/ / 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 ));
ほとんどのメソッドは、結果を含むIlluminateSupportCollection
オブジェクトを返します。
私たちはクラス最高のオープンソース パッケージの作成に多くのリソースを投資しています。有料製品のいずれかを購入することで、私たちをサポートできます。
当社のどのパッケージを使用しているかについて、故郷から葉書を送っていただき、誠にありがとうございます。当社の住所は、お問い合わせページに記載されています。受け取ったすべてのポストカードをバーチャル ポストカード ウォールに公開します。
このパッケージは Composer を通じてインストールできます。
composer require spatie/laravel-analytics
必要に応じて、次のコマンドを使用してこのパッケージの構成ファイルを公開できます。
php artisan vendor:publish --tag= " analytics-config "
次の構成ファイルはconfig/analytics.php
に公開されます。
return [
/ *
* The property id of which you want to display data .
* /
' property_id ' => env ( ' ANALYTICS_PROPERTY_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 ' => storage_path ( ' app/analytics/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 ,
/ *
* Here you may configure the "store" that the underlying Google_Client will
* use to store it 's data. You may also add extra parameters that will
* be passed on setCacheConfig (see docs for google-api-php-client).
*
* Optional parameters: "lifetime", "prefix"
*/
' cache ' => [
' store ' => ' file ' ,
],
];
最初に行う必要があるのは、Google API を使用するための認証情報を取得することです。すでに Google アカウントを作成し、サインインしていることを前提としています。Google API のサイトに移動し、プロジェクトを選択または作成します。
次に、プロジェクトがどの API を使用できるかを指定する必要があります。 API ライブラリに移動し、「Google Analytics Data API」を検索します。
API を有効にするには、[有効にする] を選択します。
Analytics API にアクセスできるプロジェクトを作成したので、次はこれらの資格情報を含むファイルをダウンロードします。サイドバーの「認証情報」をクリックします。 「サービス アカウント キー」を作成します。
次の画面では、サービス アカウントに名前を付けることができます。好きな名前を付けることができます。サービス アカウント ID に電子メール アドレスが表示されます。このガイドでは後ほどこの電子メール アドレスを使用します。
作成したサービスアカウントの詳細画面に移動し、「キー」を選択し、「キーの追加」ドロップダウンから「新しいキーの作成」を選択します。
キーの種類として「JSON」を選択し、「作成」をクリックして JSON ファイルをダウンロードします。
このパッケージの構成ファイルのservice_account_credentials_json
キーで指定された場所に、Laravel プロジェクト内の json を保存します。 json ファイルには機密情報が含まれる可能性があるため、git リポジトリにコミットすることはお勧めしません。
Analytics サイトで Analytics アカウントをすでに作成しており、新しい GA4 プロパティを使用していることを前提としています。
まず、プロパティ ID を知る必要があります。 Analytics で、[設定] > [プロパティ設定] に移動します。ここで、プロパティ ID をコピーできます。この値を .env ファイルのANALYTICS_PROPERTY_ID
キーに使用します。
次に、作成したサービス アカウントへのアクセスを許可する必要があります。プロパティの管理セクションの「プロパティ アクセス管理」に移動します。右上隅にあるプラス記号をクリックして、新しいユーザーを追加します。
この画面では、前の手順でダウンロードした json ファイルのclient_email
キーで見つかった電子メール アドレスへのアクセスを許可できます。アナリストの役割で十分です。
インストールが完了すると、Analytics データを簡単に取得できるようになります。ほぼすべてのメソッドはIlluminateSupportCollection
インスタンスを返します。
ピリオドを使用した例をいくつか示します
use Spatie Analytics Facades Analytics ;
/ / retrieve visitors and page view data for the current day and the last seven days
$ analyticsData = Analytics:: fetchVisitorsAndPageViews (Period:: days ( 7 ));
/ / retrieve visitors and page views since the 6 months ago
$ analyticsData = Analytics:: fetchVisitorsAndPageViews (Period:: months ( 6 ));
$analyticsData
は、各項目がキーdate
、 visitors
、およびpageViews
保持する配列であるCollection
です。
データを取得する期間をより詳細に制御したい場合は、 startDate
とendDate
period オブジェクトに渡すことができます。
$ startDate = Carbon:: now ()-> subYear ();
$ endDate = Carbon:: now ();
Period:: create ( $ startDate , $ endDate );
public function fetchVisitorsAndPageViews( Period $ period ): Collection
この関数は、各項目がキーactiveUsers
、 screenPageViews
、およびpageTitle
保持する配列であるCollection
を返します。
public function fetchVisitorsAndPageViewsByDate( Period $ period ): Collection
この関数は、各項目がキーdate
、 activeUsers
、 screenPageViews
、およびpageTitle
保持する配列であるCollection
を返します。
public function fetchTotalVisitorsAndPageViews( Period $ period ): Collection
この関数は、各項目がキーdate
、 date
、 visitors
、およびpageViews
保持する配列であるCollection
を返します。
public function fetchMostVisitedPages( Period $ period , int $ maxResults = 20 ): Collection
この関数は、各項目がキーfullPageUrl
、 pageTitle
、およびscreenPageViews
を保持する配列であるCollection
を返します。
public function fetchTopReferrers( Period $ period , int $ maxResults = 20 ): Collection
この関数は、各項目がキーscreenPageViews
およびpageReferrer
保持する配列であるCollection
を返します。
public function fetchUserTypes( Period $ period ): Collection
この関数は、各項目がキーactiveUsers
およびnewVsReturning
を保持する配列であるCollection
を返します。これらのキーはnew
またはreturning
に等しい可能性があります。
public function fetchTopBrowsers( Period $ period , int $ maxResults = 10 ): Collection
この関数は、各項目がキーscreenPageViews
およびbrowser
保持する配列であるCollection
を返します。
public function fetchTopCountries( Period $ period , int $ maxResults = 10 ): Collection
この関数は、各項目がキーscreenPageViews
とcountry
保持する配列であるCollection
を返します。
public function fetchTopOperatingSystems( Period $ period , int $ maxResults = 10 ): Collection
この関数は、各項目がキーscreenPageViews
およびoperatingSystem
保持する配列であるCollection
を返します。
他のすべてのクエリでは、 get
関数を使用できます。
public function get( Period $ period , array $ metrics , array $ dimensions = [], int $ limit = 10 , array $ orderBy = [], FilterExpression $ dimensionFilter = null , FilterExpression $ metricFilter = null ): Collection
渡すことができる引数に関する追加情報は次のとおりです。
Period $period
: クエリの開始日と終了日を示す SpatieAnalyticsPeriod オブジェクト。
array $metrics
: 取得するメトリクスの配列。すべての指標のリストはここで見つけることができます。
array $dimensions
: 結果をグループ化するための次元の配列。すべての寸法のリストはここで見つけることができます。
int $limit
: 返される結果の最大数。
array $orderBy
: 結果を並べ替える OrderBy オブジェクトの配列。
array $offset
: デフォルトは 0 ですが、これを $limit パラメータと組み合わせて使用すると、ページネーションを行うことができます。
bool $keepEmptyRows
: false または指定されていない場合、すべてのメトリックが 0 に等しい各行は返されません。 true の場合、これらの行はフィルターによって個別に削除されない場合に返されます。
例えば:
$ orderBy = [
OrderBy:: dimension ( ' date ' , true ),
OrderBy:: metric ( ' pageViews ' , false ),
];
FilterExpression $dimensionFilter
: 結果をフィルターして、特定のディメンション値のみを含めます。詳細については、こちらをご覧ください。
例えば:
use Google Analytics Data V1beta Filter ;
use Google Analytics Data V1beta FilterExpression ;
use Google Analytics Data V1beta Filter StringFilter ;
use Google Analytics Data V1beta Filter StringFilter MatchType ;
$ dimensionFilter = new FilterExpression ([
' filter ' => new Filter ([
' field_name ' => ' eventName ' ,
' string_filter ' => new StringFilter ([
' match_type ' => MatchType:: EXACT ,
' value ' => ' click ' ,
]),
]),
]);
FilterExpression $metricFilter
: SQL の had-clause と同様に、レポートの行を集計した後に適用されるフィルター。このフィルターではディメンションを使用できません。詳細については、こちらをご覧ください。
例えば:
use Google Analytics Data V1beta Filter ;
use Google Analytics Data V1beta FilterExpression ;
use Google Analytics Data V1beta Filter NumericFilter ;
use Google Analytics Data V1beta NumericValue ;
use Google Analytics Data V1beta Filter NumericFilter Operation ;
$ metricFilter = new FilterExpression ([
' filter ' => new Filter ([
' field_name ' => ' eventCount ' ,
' numeric_filter ' => new NumericFilter ([
' operation ' => Operation:: GREATER_THAN ,
' value ' => new NumericValue ([
' int64_value ' => 3 ,
]),
]),
]),
]);
## Testing
Run the tests with:
``` bash
vendor/bin/pest
最近の変更点の詳細については、CHANGELOG を参照してください。
詳細については、「貢献」を参照してください。
セキュリティに関するバグを見つけた場合は、問題トラッカーを使用する代わりに [email protected] にメールを送信してください。
そして、ロゴを提供してくれたCanecoに特別な感謝を捧げます
MIT ライセンス (MIT)。詳細については、ライセンス ファイルを参照してください。