GoogleアナリティクスのデータをPHPで取得する方法
2024/03/04
Googleアナリティクスの特定データをPHPで取得して、当該データを表示なりCSV化してほしいという案件があった。調べてみるとアナリティクス側でAPIが提供されているので、これを使えばいけそう。以下にアナリティクスAPIの設定方法とPHPのソースコードをメモ。
取得したい情報
ページビュー数、ユニークユーザー数、ページ別訪問数、平均ページ滞在時間を取得したかった。また、特定ページのみ取得したい。
事前準備
以下URLよりDevelopersConsoleでプロジェクトを作成し、アナリティクスのAPIを有効化及びクライアントID,秘密鍵を作成する。
https://console.developers.google.com/project
秘密鍵とライブラリを適当なディレクトリにアップロードしておく。ライブラリは以下。
https://code.google.com/p/google-api-php-client/downloads/list?can=1&q=
アナリティクスにログインしてDevelopersConsoleで作成したメールアドレスをユーザ登録しておく。また、ビュー設定よりビューIDをメモっておく。
ソースコード
<?php ini_set( 'display_errors', 1 ); require_once __DIR__ . '/google-api-php-client/src/Google_Client.php'; require_once __DIR__ . '/google-api-php-client/src/contrib/Google_AnalyticsService.php'; define('CLIENT_ID', 'ここにクライアントID'); define('SERVICE_ACCOUNT_NAME', 'ここにDevelopersConsoleに表示されているメールアドレス'); define('KEY_FILE', '秘密鍵のファイルパス'); define('PROFILE_ID', 'アナリティクスのビューID。アナリティクス設定→ビュー設定で確認する'); $client = new Google_Client(); $client->setApplicationName("analytics test"); $client->setClientId(CLIENT_ID); $client->setAssertionCredentials(new Google_AssertionCredentials( SERVICE_ACCOUNT_NAME, array('https://www.googleapis.com/auth/analytics'), file_get_contents(KEY_FILE) )); $start = '集計開始日をYYYY-MM-DD'; $end = '集計終了日をYYYY-MM-DD'; $service = new Google_AnalyticsService($client); $dimensions = 'ga:pagePath'; $metrics = 'ga:pageviews,ga:uniquePageviews,ga:users,ga:avgTimeOnPage'; //PV,SESSION(ページ別訪問数),UU,平均ページ滞在時間 $result = $service->data_ga->get( 'ga:' . PROFILE_ID, $start, $end, $metrics, array( 'dimensions' => $dimensions, 'sort' => '-ga:pageviews', 'max-results' => '10', //表示件数。以下のフィルタを使う場合は無しで良さそう 'filters'=>'ga:pagePath==/,ga:pagePath==/hoge.php' //フィルタ。特定ページを集計したい場合は記述する。複数の場合はカンマ区切り。 ) );
その他
データは配列で返ってくるので使いやすいように整形してMySQLに突っ込むなり、CSV化なりする。
参考サイト
関連記事
-
PHPにて文字のあいまい検索(文字のゆれ)を実装する方法
Googleで検索する際に、ちょっと間違えて入力してしまっても「もしかして○○? ...
-
PHPでシンプルな英数字のCAPTCHAを「Gregwar / Captcha」ライブラリで実装する方法
PHPでシンプルなランダム英数字のCAPTCHAを実装したい。「Gregwar ...
-
PHPで「operator not supported for strings」エラーの対応方法
PHPにて「Fatal error: [] operator not suppo ...
-
他所のサーバからWordPressの記事情報をpostIDを指定して取得する方法
他所のサーバからWPの記事IDを指定した上で、当該IDのタイトル・アイキャッチ画 ...
-
PHPからDBX Platformを利用してサーバ内のファイルをアップロードする方法
PHPで何らかのファイルを保存するようなケースだと今まではローカルに保存する、も ...