google analytics api を使いやすくしたgoogle_analytics_report 公開します(サンプルレポートダウンロード機能付き)
google analytics api を使えば、web上で見る analytics のデータをほぼ自由に扱えるので、 サイトにアクセス数を表示したり、excelに解析レポートとして出力したり色々自由にできます。
今回、exelに出力しようとして作ったライブラリ公開します。
グーグルの各サービスで利用出来るライブラリ google-api-php-clientがあるので、これを利用すれば、やりたいことは出来ます。ですが、エクセルにレポート出力するときに使いやすいようラッパー作りました。
ソースはここ(github@papettoTV/google_analytics_report)
ライブラリの説明
google-api-php-client を使えば
$this->analytics->data_ga->get();
で api 叩いてデータは取得できるけど、一度解析レポートを作成しようとすると何度もこれを呼ぶので、共通化していい感じにしました。この google_analytics_report のキモは、ここ(だけと言っても過言ではない!)。Google_Analytics_Report_Core::getResultsCommon()メソッドに集約されております。 ポイントは、
apiなので取得件数に上限あるけど、取得側は気にしないのでいいようにした。
取得した値の合計値とか、件数とかよく使うので、それも共通化しておいた。
環境セットアップ
まず、api key 登録している前提です。
していなければ、ここから登録をすすめましょう。
api key登録(未登録の方向け)
細かい説明は省きますが、
project を作って
メニューの APIs & auth -> APIs -> Analytics API を on にして
再びメニューの Credentials で、Oauth と Publick API access の Key for server applications を作成
使うのは、
Client ID for web application の Client ID と Client secret と Redirect URIs
Key for server applications の API key
になります。
Redirect URIs はこのライブラリを設置するフォルダ内のredirect.phpを指定してください。
例)http://example.com/google_analytics_report/redirect.php
インストール
動かすサーバにソースコードを落とします。
git clone git://github.com/papettoTV/google_analytics_report
cd google_analytics_report
git submodule update –init
初期設定
config.phpに先ほど設定した諸々のキー設定を施します。
完了したら、置いたフォルダにブラウザからアクセスします。
例)http://example.com/google_analytics_report/
プロフィールID取得
google analytics は一つのgoogle アカウントで複数のレポート(タグ)
を管理することができ、それらをプロフィールIDで管理しています。それを知る方法は2つあって
1)Check profile ID(accounts_list.php)にアクセス
google-api-php-client に取得する api が用意されていますので、それを利用します。先ほどアクセスしたブラウザから Check profile ID リンクにアクセスしてください。Oauth 認証が走るので、承認すると確認出来ます。*1 *2
2)google analytics の url 見る
google analytics にログインして、出力したいレポートを選んでください。そのときのURLはこんな感じになっているかと思います。
https://www.google.com/analytics/web/?hl=ja&pli=1#report/visitors-overview/a3430321w6480744p6703987/
この url のpのあとの数値 「6703987」これがプロフィールIDになります。
(※もっと簡単な確認方法がある気がする・・・)
exel出力サンプル
profile idが分かったら、試しに、レポートをDLしてみます。
先ほどアクセスしたプロフィールID一覧画面からクリックするか直接 url(dl_sample.php?id=(profile id))を叩くとダウンロードが始まります。
ダウンロード出来ましたか?
動きとしては、内部でサンプルのテンプレートファイル(gar_sample_report.xls)を読み込んで、そこに数値を書き出しています。
ライブラリの使い方
あとは、自由に書き出す値やエクセルのフォーマット、セルの位置を変えてもらえれば自在にレポートが書き出せます。
参考
作るにあたって参考にすることころ、等など
phpexecl phpでexelを読み込んだり作ったり。グラフも複雑でければこれで書けます。(今回のライブラリではエクセルのフォーマットの都合もあってグラフ描画処理はありません)
google-api-php-client とりあえずグーグルのサービス使うなら使うであろうライブラリ群
Google Analytics Dimentions & Metrics Reference 今回作成にあたり見まくったanalytics api 説明ページ。欲しい値を探すならまずここを見る。
*1:ただし、大量にプロフィールがある場合、エラーが出るため途中で止める処理が走ります。全てのプロフィールがでない場合は、2の方法を試してください
*2:ここでもし、Redirect URIsで設定したURLとconfig.phpのGAR_API_REDIRECT_URIがズレているとエラーがでますので、きっちり確認しましょう。