Google Analytics APIでページのアクセスランキングを作る方法
Google Analytics APIを使って、ウェブサイトやブログなどの人気ページのアクセスランキングを作る方法を紹介します。
1.完成イメージ
本エントリーで紹介する手順で作成すれば、ブログに次のようなランキングを表示できるようになります。
厳密には、ランキング用HTMLファイルを出力するところまでの説明となります。
ブログにランキングを表示させる手順は割愛していますので、出力ファイルを適宜インクルードしてください。
2.作成手順
「Google Analytics API class for PHP」の中ほどにある「googleanalytics.class.zip」をクリックして、ファイルをダウンロード。
アーカイブを展開して、中にある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, '<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」から取得してください。
収集期間を設定します。同じ日付を設定すれば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/'),
サイトのドメインを赤色部分に設定してください。
fwrite($file, '<li><a href="http://user-domain' . $keys[2] . '">' . $keys[1] . '</a> ' . $pageview. '</li>');
出力記事数を変更したい場合は、次の「20」の部分を変更してください。
if ($counter >= 20) {
設定が必要な変数はソースコードに冒頭に別途まとめたいと思います。現状はとりあえず版ということで。
ちなみに、getReport()で取得できるデータは次のようなものになります。
Array
(
[20120501~~「8.8.8.8,8.8.4.4」より速い「129.250.35.250」: 小粋空間~~/archives/2011/09/17-035555.php] => Array
(
[ga:pageviews] => 3390
)
[20120501~~Android端末のWiFi接続にGoogle Public DNSを設定する: 小粋空間~~/archives/2011/10/24-005555.php] => Array
(
[ga:pageviews] => 1443
)
[20120501~~Facebookの「いいね!」を非公開にする方法: 小粋空間~~/archives/2011/08/17-003333.php] => Array
(
[ga:pageviews] => 839
)
…略…
)
4.ビジター数を取得する
サンプルはページビューを取得していますが、ビジター数を取得したい場合は「metrics」の項目を次のように変更してください。
'metrics'=>urlencode('ga:visits'),
両方取得することもできます。
'metrics'=>urlencode('ga:visits,ga:pageviews'),
このあたりの詳細は以下のページを参照してください。
5.PHPの実行
3項で編集したPHPファイルは1日1回など、cronで周期的に実行させてください。
2012.05.11追記
Open MagicVox.netのぴろりさんが、奇遇にも同日に同じ記事をエントリーされてました。そちらもご参考にどうぞ。
- Google AnalyticsでページごとのAdsense収益を確認する方法
- Analyticsに「Home page」などのスパムが表示されたときの対処
- Analyticsの平均ページ滞在時間0秒の理由
- Analyticsでページが真っ白になる不具合の対処
- Analyticsで時間別の統計をとる方法
- Google Analyticsで自分のアクセスをカウントしないようにする方法
- Analyticsで被リンクを調べる方法
- zenbackからの流入をAnalyticsで確認する方法
- Googleアナリティクスで特定キーワードのページビューを調べる方法
- Googleアナリティクスで特定のページを調べる方法
- Google Analyticsでウェブサイトに直接アクセスしてページ解析する方法
≫ 人気記事の一覧を Google Analytics から取得する:GADGET from Open MagicVox.net
以前に人気記事のランキングを表示する PHP スクリプトを公開しましたが、これは MovableType で運用されているサイトでしか動作しないという制... [続きを読む]
≫ 【PHP】アナリティクスAPIを使った人気記事ランキング from PCテクニック集 by ユニファース
Googleアナリティクスが提供しているAPIを使って、人気記事ランキングを設置するプログラムです。 このプログラムには、 Google Analytic... [続きを読む]