RiTurban‘sサイト解析ブログ

GoogleAnalyticsのデータをエクセルで取得(API経由)する方法

2011年04月15日

GoogleAnalyticsにはいくつかのAPIがあります。

このAPIを用いれば、
自由にデータを取得して加工できたりします。

おそらく普通に思いつくのが
Excelにデータを取得して加工することですよね。

実はExcelのマクロが組める方であれば、
結構簡単にこのAPI経由でデータが取得できるんですよ。

僕はAPI経由でデータ取得することは、
2つの大きなメリットがあると思っています。
・定型作業を自動化できる
アドバンスセグメントを使わなくても絞り込んだデータが取得できる

今日はその方法をお伝えします。

※Excellent Analyticsじゃないです。
 あれは使いづらいから。。
手順としては3STEPです。
STEP1 : GA data fetch.xlsをダウンロードする
STEP2 : APIの仕組みを簡単に理解する
STEP3 : GA data fetch.xlsを実際に使う

——————————————————

STEP1 : GA data fetch.xlsをダウンロードする

——————————————————

まずこちらから「GA data fetch.xls 」をダウンロードしてください。
http://homepage-shindan.com/url/file/ga_fetch_xls.html
※ページの中程にテキストリンクであります。

これが基本機能(関数)を備えた
元になるエクセルブックになります。

カスタマイズ自由だそうです。

これを無料で配ってくれているのは
ありがたいし、素晴らしいことですよね。

下の方にちっちゃく寄付もあるようです。
控え面な人です。。(僕は好きです(笑)

***2011/07/01追記
このプログラム、悪くないのですが、
プロファイルの取得やセグメントの指定方法など
ちょっとしたところにバグがあります(^^;)

しかし僕も無理やり「えいや!」と治しまたので、
修正版の公開レベルには至っておらず。。

制作者にフィードバックするか悩みどころですが、
先に情報連携させてもらいます。
普通に使う分には動きますので問題ないです。

——————————————————

STEP2:APIの仕組みを簡単に理解する

——————————————————
実はGAのAPIにはいくかの種類があるのですが、
今回使うのはDATA EXPORT APIと言います。

知っておかなければいけないDATA EXPORT APIの仕様は以下5つです。
1.まず認証してTOKEN(認証キー)とプロファイルIDを取得する必要がある
2.そのTOKENとプロファイルIDを使って
 区分(Dimention)と欲しいデータ(Metrics)をリクエストしてデータを取得する
3.区分(Dimention)は10個まで指定できるので、
 かなり絞り込んだデータを取得できる
4.1万行を超えるデータは一気には取得できない
5.1日(24時間)に 10,000回を超えるリクエストはできない

以下順番にご説明します。

1.まず認証してTOKEN(認証キー)を取得する必要がある
google analyticsにログインする時の
IDとパスワードを使ってTOKENを取得します。

深く考えなくても、今回ダウンロードしたエクセルが
簡単にやってくれます。


2.そのTOKENとプロファイルIDを使って区分(Dimention)と欲しい数値(Metrics)をリクエストしてデータを取得する
データを取得するためには、少なくとも
——
・日付の範囲
・欲しいデータの種類
——
をリクエストする必要がありますよね。

この欲しいデータの種類を伝える時、肝になるのが
・区分(Dimention)と
・欲しい数値(Metrics)
です。

区分(Dimention)は、例えば
・Source(yahoo,googleなど)別のデータ一覧が欲しい
・Keyword別のデータ一覧が欲しい
などと指定します。

欲しい数値(Metirics)は、
・Visits(セッション数)の数値が欲しい
・Goal(コンバージョン)の数値が欲しい
などと指定します。

このDementionとMetricsの理解は大切ですので、
例をあげます。

例えば
Demention:Source
Metrics:Visit & Goal
とリクエストすれば、以下のようなデータが取得できます。

Source , Visit , Goal
———————-
yahoo  ,  100  , 4
Google ,  200 , 10
bing      ,  50   ,  2
———————-

上記ではYahoo経由のVisitが100セッション。
そのうちGoalした人は4セッションということがわかります。

つまりDemention毎のMetricsの値が取れるというわけです。

DementionとMetricsの種類一覧は公式マニュアルをご覧ください。

▼Googleのマニュアル
http://homepage-shindan.com/url/file/dataexportapi.html


3.区分(Dimention)は10個まで指定できるので、かなり絞り込んだデータを取得できる
これがAPIを使う大きなメリットだと僕は思います。

普通データを絞り込むには
アドバンスセグメントを使いまますよね?

でもこのAPI経由ならば、
簡単にデータが絞り込めます。

例えば、
yahoo経由でお問い合わせページを見た人
GoogleAdwordsのxxxキャンペーン経由でお問い合わせページを見た人
などに絞り込めます。

おわかりですね。
区分(Demention)をたくさん並べていけばいいのです。

source&medium&keyword…
と並べれば、それだけ細かくデータが抽出できます。

GAの画面でセカンドディメンションを使ったことがあるならば、
これが10個まで指定できるとイメージしてもらえば。


4.1万行を超えるデータは一気には取得できない
そのままです。
区分を細かく指定すればそれだけデータ行は増えます。
例えば、
yahoo経由のキーワード別の・・・とやれば、
どんどんデータ行が増えますね。

これを防ぐためにはFilterを有効活用して、
抽出するデータの数を絞るとよいと思います。
Filterの詳細もGoogleのマニュアルページで。

▼Googleのマニュアル(Filterについて)
http://homepage-shindan.com/url/file/gaapifilter.html


5.1日(24時間)に 10,000回を超えるリクエストはできない
そのままです。
1万回実行すると、翌日まで待たなくてはなりません。

——————————————————

STEP3 : GA data fetch.xlsを実際に使う

———– ——————————————-
実際に使ってみましょう。
手順としてはこちらも3ステップです。

なお、こちらにちょっと画面が古いけど、
作者の説明があります。
▼作者による説明
http://homepage-shindan.com/url/file/gaapiexcelmanual.html

1.TOKENとプロファイルIDの取得
まず、Excelのワークシートの該当部分に
メールアドレスとパスワードを入力し、
Excelワークブックの中の
getGAauthenticationToken
という関数を実行します。

そうするとワークブックにTOKENと
そのアカウントに存在するプロファイルの一覧(ID)が表示されます。

2.getGAdata関数を使って試しにデータを取得してみる
先ほど取得したTOKENとプロファイルIDを使って、
データを取得してみましょう。

getGAdata関数には、以下の引数があります。
・ahthToken・・・1で取得したTOKENを指定
・profileNumber・・・1で取得したプロファイルIDを指定
・METRICS・・・Metrics(欲しい数値の種類)を指定します
・startDate・・・データ取得開始日
・endDate・・・データ取得終了日
・filters・・・(オプション)フィルターを指定
・DIMENSIONS・・・(オプション)Dimention(区分)を指定
・segment・・・(オプション)作成済みのアドバンスセグメントIDを指定。動的作成も可能
・sort・・・(オプション)ソートするかどうか
・includeHeaders・・・DimentionやMetricsなどのヘッダー行を取得するかどうか

まずは試しなので、オプションを省いて実行してみましょう。
getGAdata関数は動的配列を戻り値として返します。
dim ary() as variantと宣言しておいて
ary = getGAdata()
と受けると分かりやすいと思います。

3.自由にカスタマイズする
やり方がわかれば、あとはVBAのマクロなので、
自由自在です。


今日はGoogleAnalyticsのAPIについてお話しました。
初めての人でもそんなに難しくないし、
VBAのマクロがわかる人ならすごくワクワクすると思います。
ぜひやってみてください。