Quantcast
Channel: 小粋空間
Viewing all articles
Browse latest Browse all 219

Google Analytics APIでブログのアクセスランキングを作る方法

$
0
0


Google Analytics APIを使って、ブログなどのアクセスランキングを作る方法を紹介します。

1.完成イメージ

本エントリーで紹介する手順で作成すれば、ブログに次のようなランキングを表示できるようになります。

完成イメージ

厳密には、ランキング用HTMLファイルを出力するところまでの説明となります。

ブログにランキングを表示させる手順は割愛していますので、出力ファイルを適宜インクルードしてください。

2.作成手順

Google Analytics API class for PHP」の中ほどにある「googleanalytics.class.zip」をクリックして、ファイルをダウンロード。

Google Analytics API class for PHP

アーカイブを展開して、中にあるGoogle Analytics APIを利用するためのライブラリ「googleanalytics.class.php」をサーバにアップロードしてください。

次に、アップロードしたライブラリを利用してアクセスを収集するためのPHPコード(以下)を、任意のファイル名で保存し、編集後「googleanalytics.class.php」と同じディレクトリにアップロードしてください。

<?php
$filename = 'ranking.html'; // 出力ファイル名
require_once('googleanalytics.class.php');
try {
    $ga = new GoogleAnalytics('メールアドレス','パスワード');
    $ga->setProfile('ga:プロファイルID');
    $ga->setDateRange('YYYY-MM-DD','YYYY-MM-DD'); // 収集期間
    $report = $ga->getReport(
        array('dimensions'=>urlencode('ga:date,ga:pageTitle,ga:pagePath'),
            'metrics'=>urlencode('ga:pageviews'),
            'filters'=>urlencode('ga:pagePath=~^/パス/'),
            'sort'=>urlencode('-ga:pageviews')
            )
        );
    $file = fopen($filename, 'w');
    fwrite($file, '<style>a:visited{color:#00f;}</style><div><h3>アクセスランキング</h3><ul>');
    $counter = 1;
    foreach ($report as $key => $value) {
        foreach ($value as $pageview) {
            $keys = preg_split("/~~/", $key);
            fwrite($file, '<li><a href="http://user-domain' . $keys[2] . '">' . $keys[1] . '</a> ' . $pageview. '</li>');
        }
        if ($counter >= 20) {
            break;
        }
        $counter++;
    }
    fwrite($file, '</ul></div>');
    fclose($file);
} catch (Exception $e) { 
    print 'Error: ' . $e->getMessage(); 
}
?>

詳細は後述しますが、このPHPをサーバ上で実行すれば、冒頭の完成イメージになるようなファイルを出力します。

3.PHPの設定項目

2項のファイルの変更方法です。

このPHPから出力するファイル名やパスを変更したい場合は、赤色部分を書き換えてください。

$filename = 'ranking.html'; // 出力ファイル名

利用しているGoogle Analyticsのメールアドレス・パスワードを設定してください(必須)。

$ga = new GoogleAnalytics('メールアドレス','パスワード');

利用しているGoogle AnalyticsのプロファイルIDを設定してください(必須)。

$ga->setProfile('ga:プロファイルID');

プロファイルIDは、「アナリティクス設定」→「プロファイル」タブ→「プロファイル設定」タブの「プロファイルID」から取得してください。

プロファイルID

収集期間を設定します。同じ日付を設定すれば1日分のランキングが作れます。

$ga->setDateRange('YYYY-MM-DD','YYYY-MM-DD'); // 収集期間

収集対象のURLのパスを設定してください(必須)。

'filters'=>urlencode('ga:pagePath=~^/パス/'),

パスに何を設定すればよいのか分かりにくいですが、たとえば当ブログの記事は「http://www.koikikukan.com/archives/」配下にすべて出力しているので、次のようにドメインを除いた「archives」を設定します。

'filters'=>urlencode('ga:pagePath=~^/archives/'),

出力記事数を変更したい場合は、次の「20」の部分を変更してください。

if ($counter >= 20) {

設定が必要な変数はソースコードに冒頭に別途まとめたいと思います。現状はとりあえず版ということで。

4.ビジター数を取得する

サンプルはページビューを取得していますが、ビジター数を取得したい場合は「metrics」の項目を次のように変更してください。

'metrics'=>urlencode('ga:visits'),

両方取得することもできます。

'metrics'=>urlencode('ga:visits,ga:pageviews'),

このあたりの詳細は以下のページを参照してください。

Dimensions & Metrics Reference

5.PHPの実行

3項で編集したPHPファイルは1日1回など、cronで周期的に実行させてください。


Viewing all articles
Browse latest Browse all 219

Trending Articles