勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

GoogleアナリティクスのデータをPHPで取得する方法

   2024/03/04  PHP

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化なりする。

 

参考サイト

http://www.karakaram.com/google-analytics-api-batch

http://syncer.jp/google-analytics-api-tutorial

 - PHP

  関連記事

PHPにて「みんなの自動翻訳」のAPIで日本語から英語に翻訳する方法

翻訳用のWeb APIを利用しようとすると「月に〇〇リクエストまでは無料」とかだ ...

jQuery.uploadでリアルタイムプレビュー

やりたい事は、 ・<input type="file">で画像を選択 ...

htmlspecialcharsを通してMySQLに格納したものを元に戻して出力

MySQLにHTMLタグを入れたくない場合にhtmlspecialcharsを使 ...

PHPとSQLiteで簡易BBSの作成

PHPとSQLiteの練習で簡易掲示板を作ったのでメモ。   目次1 ...

PHPで作成したプログラムをcron設定し自動実行する方法

cronの設定方法。サーバー側での設定とPHP側での書き方を以下にメモ。 &nb ...