google analytics api を使いやすくしたgoogle_analytics_report 公開します(サンプルレポートダウンロード機能付き)

2014/05/30

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 で、OauthPublick API accessKey for server applications を作成

使うのは、

  • Client ID for web applicationClient IDClient secretRedirect URIs
  • Key for server applicationsAPI 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がズレているとエラーがでますので、きっちり確認しましょう。