google AnalyticsのAPIを利用してアクセスの多いページの情報を取得します。
利用するライブラリは↓
気になっていたcurlが使ってあっていいサンプルになりそう。
指定期間のPV数の多いページを取得
利用するのはanalytics_api::data()。引数はたぶんこんな感じ。
@param string $id
必須のパラメータ。サイトのプロファイルID。
IDは 「Analytics 設定 > プロファイル設定」で確認できる。
@param string $dimension
必須のパラメータ。何のデータを取るかを指定。
ga:pagePathとかga:browserとか。
複数指定する場合はカンマで区切るga:browser,ga:browserVersion
@param string $metric
必須のパラメータ。何のデータを基準にするか的な指定。訪問者数ならga:visitsとか。
複数指定はカンマで区切る。ga:visits,ga:pageviews
@param string $sort
ソートの指定。指定しないと$metricに基づく。
@param string $start
期間の始まりを指定。指定しないと実行日前日から1ヶ月分になる。予め用意されている値には
today、yesterday、weekがある。
@param string $end
指定する場合はYYYY-MM-DDで。デフォルトは前日。
@param integer $max_results
取得するMAX件数。デフォルトは10件。最高でも1000件?
@param integer $start_index
取得するページのインデックス。デフォルトはページ目から。
@param string|analytics_filters
フィルター。analytics_filtersってクラスが用意されているので
何かしらフィルターをかけれるっぽいけど詳細は不明
@param boolean $debug
デバッグ用?デフォルトはfalse
重要なパラメーターはDimensionsとMetrics。これを把握すれば自在に情報を取得できそう。
<?php
require_once('/analytics_api.php');
$api = new analytics_api();
// 引数はログイン用のメールアドレスとパス
if($api->login(MAIL, PASS)) {
$result = $api->data(
'ga:792415', // id プロファイルのNoを指定
'ga:pageTitle,ga:pagePath', // dimension ページタイトルとパス
'ga:pageviews', // metric ページビュー
false, // sort
'2008-11-01', // start
'2008-11-30', // end
'25' //max_results 取得件数
);
} else {
throw new Exception('ログインに失敗しました。IDとパス要確認');
}
echo '<pre>';
var_dump($result);
echo '</pre>';
?>
キーが日本語でなんだか気持ち悪いけどまぁいいか。
あとはforeachとかでまわすだけ。
PHP
<?php
$html = '';
foreach ($result as $name => $pagedata) {
$title = $name;
$url = key($pagedata);
$view = $pagedata[$url]['ga:pageviews'];
$html .= sprintf(
'<li><a href="%s">%s(%sビュー)</a></li>',
$url,$title,$view
);
}
echo '<ol>' . $html . '</ol>';
?>
実行結果
Warning: require_once(analytics_api.php): failed to open stream: No such file or directory in /home/users/1/lolipop.jp-dp07173486/web/_/themes/default/views/pg/2009/12/phpgoogle_analytics.php on line 203
Fatal error: require_once(): Failed opening required 'analytics_api.php' (include_path='/home/users/1/lolipop.jp-dp07173486/web/_/vendor/pear-pear.php.net/Archive_Tar:/home/users/1/lolipop.jp-dp07173486/web/_/vendor/pear-pear.php.net/Calendar:/home/users/1/lolipop.jp-dp07173486/web/_/vendor/pear-pear.php.net/Console_Getopt:/home/users/1/lolipop.jp-dp07173486/web/_/vendor/pear-pear.php.net/Net_UserAgent_Detect:/home/users/1/lolipop.jp-dp07173486/web/_/vendor/pear-pear.php.net/Net_UserAgent_Mobile:/home/users/1/lolipop.jp-dp07173486/web/_/vendor/pear-pear.php.net/PEAR:/home/users/1/lolipop.jp-dp07173486/web/_/vendor/pear-pear.php.net/Structures_Graph:/home/users/1/lolipop.jp-dp07173486/web/_/vendor/pear-pear.php.net/Text_Highlighter:/home/users/1/lolipop.jp-dp07173486/web/_/vendor/pear-pear.php.net/XML_Parser:/home/users/1/lolipop.jp-dp07173486/web/_/vendor/pear-pear.php.net/XML_Util:/home/users/1/lolipop.jp-dp07173486/web/_/vendor/pear/archive_tar:/home/users/1/lolipop.jp-dp07173486/web/_/vendor/pear/console_getopt:/home/u in /home/users/1/lolipop.jp-dp07173486/web/_/themes/default/views/pg/2009/12/phpgoogle_analytics.php on line 203