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
インストール
動かすサーバにソースコードを落とします。
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がズレているとエラーがでますので、きっちり確認しましょう。