フェンリル

Developer's Blog

Google Analytics API を利用した人気エントリー PHP スクリプト

こんにちは。 Web 担当の真谷(シンガイ)です。

前回に引き続き、Google Analytics のネタを書こうと思います。

前回、「Data Feed Query Explorer で出した人気エントリーの結果をスクリプトにする」と宣言しました。スクリプトといっても色々ありますが、某アンケートでも投票したとおり、大好きな PHP で書いてみます。


ということで、いざ PHP で書こうと意気込んではみたものの、実は私 Google Analytics API を Java でしか使用したことがありませんでした。
1からライブラリを作成しよう!とやってたら、ブログの為とはいえ時間がかかりすぎてしまうので、既存のライブラリを用いて作成します。

非公式ですが、こちらGAPI という PHP ライブラリがあります。
本体の gapi.class.php は 22KB で1000行以下と軽量で使いやすいので、これで書いてみました。

<?php

require_once 'gapi.class.php';

define('email','Google Analytics で使用している email アドレス');
define('password','Google Analytics で使用している パスワード');
define('profileId','Google Analytics のプロファイル ID');

date_default_timezone_set('Asia/Tokyo');
// フィルターは使用するページに合わせて作成してください。
$filter = 'pagePath=~/blog/2011/04/ || pagePath=~/blog/2011/05/ || pagePath=~/blog/2011/06/';
$startDate = date('Y-m-d', strtotime('11 Apr 2011'));
$endDate = date('Y-m-d', strtotime('20 Jun 2011'));
$offset = 1;
$max = 10;
$count = 1;
$body = "";

$ga = new gapi(email,password);
$ga->requestReportData(profileId,
						array('pageTitle','pagePath'),
						array('pageviews','visits'),
						'-pageviews',
						$filter,
						$startDate,
						$endDate,
						$offset,
						$max);

foreach($ga->getResults() as $result){	
	$body .= '
		<tr>
			<th style="width: 100px; border: 1px solid rgb(51, 51, 51);">'.$count.'位</th>
			<td><a href="http://www.fenrir.co.jp'.$result->getPagepath().'" target="_blank" style="color: rgb(4, 146, 229);">'.$result->getPagetitle().'</a></td>
		</tr>
	';
	$count++;
}

$content = '<table>
	<tbody>'.
		$body.
	'</tbody>
</table>';

echo $content;

email・password・profileId に、Developer’s Blog で使用していアカウント等を指定すると以下の結果になります。

1位 [非Webデザイナー向け] カッコイイブログを最速でデザインするための簡単 5 ステップ (フェンリル | デベロッパーズブログ)
2位 【Sleipnir 3】Sleipnir 3 の現状 (フェンリル | デベロッパーズブログ)
3位 【重要なお知らせ】6 月 8 日、 IE 9 未満の環境でウェブページが見られなくなる可能性があります (フェンリル | デベロッパーズブログ)
4位 【Sleipnir 3】Sleipnir 3 RC 版の FAQ (フェンリル | デベロッパーズブログ)
5位 【Sleipnir】Sleipnir 2.9.7 をリリースしました! (フェンリル | デベロッパーズブログ)
6位 iPhone / iPad 2台持ちユーザーが知っておくべき、ブックマーク同期機能 (フェンリル | デベロッパーズブログ)
7位 【Sleipnir 3】Sleipnir 3 RC をリリースしました (フェンリル | デベロッパーズブログ)
8位 iPhone/Android/PC 対応。jQuery で書くタッチイベント (フェンリル | デベロッパーズブログ)
9位 【CSS3】 jQuery を使って iPad でネイティブアプリ並に滑らかなアニメーションを実現する書き方 (フェンリル | デベロッパーズブログ)
10位 【お知らせ】今後のリリースと、ドロイド君の受難 (フェンリル | デベロッパーズブログ)

今回は PHP で書いたので、ちょっと工夫すれば WordPress のプラグインなどにも応用できそうですね。

Twitterこの記事を Retweet する
Twitterフェンリルのオフィシャルアカウントをフォローする

Facebook コメント

コメント

エントリーシートの封筒2012年02月20日 12:46

とても魅力的な記事でした!!
また遊びに来ます!!
ありがとうございます。。

nanapiのCTO、wadapさんも使った!Google AnalyticsのAPIを使ってサイトの人気ランキングを表示する方法! | くろのーと2012年05月19日 12:21

[...] また、Sleipnirで有名なフェンリルのデベロッパーズブログを大いに参考にさせていただきました。 ・【Web】Google Analytics API の簡単に出来るお試し方法 (フェンリル | デベロッパーズブログ) ・Google Analytics API を利用した人気エントリー PHP スクリプト (フェンリル | デ... [...]

名前(必須)

メールアドレス(必須)

URL

スタイル用のタグが使えます

このコメント欄でのご質問、ご要望には、開発チームから回答できない場合があります。ご質問、ご要望は「User Community」内のフォーラムまでお寄せください。