2013/02/26

Google Analytics のデータをAPI経由で取得する

Google Analyticsを使っているウェブマスターの人は結構いるんじゃないかと思うのですが、たとえばアクセス数をメールで通知したり、他のレポートシステムと連携させたりするしたくなることもあるんじゃないでしょうか。そこで、この記事ではPHP経由で、Google Anaklytics の API を使って、データを取得する方法を紹介します。

gapi

今回は、gapi(Google Analytics Php interface)というライブラリを使って、アクセス解析のデータを取得します。前提として、Google Analytics のアカウントは、作成しておいてください。

また、API経由のデータ取得には、プロファイルIDが必要になります。Google Analytics にログインして、予め控えておいてください。「アナリティクス設定」→「プロファイル設定」タブで確認できます(プロパティーIDではないので注意!)。

サンプル

認証には、google analytics へログインする際の、ログインID(メアド)とパスワードが必要です。下記コードの、メールアドレス・パスワード、プロファイルIDは、自身のものに置き換えてください。横軸と縦軸に指定したフィールドを結果として、getできる点がポイントです。
<?php
define('EMAIL_ADDRESS', '');
define('PASSWORD', '');
define('GA_PROFILE_ID', '');

$gapi = new Gapi(EMAIL_ADDRESS, PASSWORD);
$gapi->requestReportData(
    GA_PROFILE_ID,
    [ 'date' ],  // 横軸の項目
    ['visits', 'newVisits', 'searchResultViews', 'visitors'],  // 縦軸のフィールド
    ['-date'], // ソート : 日付の降順
    'country == Japan && visits > 30', // フィルタ
    date('Y-m-d', strtotime('-10 days')),  // 開始日
    date('Y-m-d'), // 終了日
    1,
    30);

foreach ($gapi->getResults() as $entry) {
    echo sprintf("%s - visits:%s, newVisits:%s, searchResultViews:%s, visitors:%s <br>",
        date('Y-m-d', strtotime($entry->getDate())),
        $entry->getVisits(),
        $entry->getNewVisits(),
        $entry->getSearchResultViews(),
        $entry->getVisitors());
}

requestReportDataのパラメータ

requestReportData($report_id, $dimensions, $metrics, $sort_metric=null, $filter=null, $start_date=null, $end_date=null, $start_index=1, $max_results=30)

$report_id
プロファイルID

$dimensions
横軸に設定する指標です。時間軸の場合は、"date" を設定します。配列で複数指定できます。指定できるフィールドについては、リファレンスの Dimensions & Metrics Reference を参考にしてみてください。

$metrics
横軸に設定する指標です。配列で複数指定できます。

$sort_metric
並び順を指定します。$dimension に指定したフィールドの何れかになります。"-date"のようにハイフンを先頭に付けると降順になります。

$filter = null
フィルターパターン。"country == Japan && visits > 30" のような文字列のクエリー式を指定します。指定できるパターンは、gapi のページの解説を参考にしてみてください。

$start_date
開始日(例:2012-11-11)

$end_date終了日

$start_index=1
開始オフセット。ページングしたい場合に指定。

$max_results=30
データの最大個数。

まとめ

APIを使うと自由にデータを加工できるので、ちょっとしたレポートを作ったり、何か変化があったらアラートメールを送信するプログラムなど が作れるので、とても便利です。stackoverflow などにもサンプルが多く投稿されていますので、そちらも参考になります。

0 件のコメント:

コメントを投稿