TopGoogleAnalytics > 2012年5月
2012年5月10日

Google Analytics APIでページのアクセスランキングを作る方法

May 10,2012 1:55 AM
Tag:[, ]
Permalink

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, '<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/'),

サイトのドメインを赤色部分に設定してください。

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'),

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

Dimensions & Metrics Reference

5.PHPの実行

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


2012.05.11追記
Open MagicVox.netのぴろりさんが、奇遇にも同日に同じ記事をエントリーされてました。そちらもご参考にどうぞ。

人気記事の一覧を Google Analytics から取得する:GADGET - Open MagicVox.net
Comments [0] | Trackbacks [2]
Now loading...
ギターに入った猫
掲載広告募集
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

AMN
Categories
Monthly Archives
2020年
2019年
2018年
2017年
2016年
2015年
2014年
2013年
2012年
2011年
2010年
2009年
2008年
2007年
2006年
2005年
2004年
2003年
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
Powered by
Movable Type 6.0.3