公開日: 2009年10月24日(Sat)
PHPで Google Analytics API を使ってみたので、そのメモ。ドキュメント Google Analytics Developer Docs を見て進めた。
Google Analytics APIを使う方法は、JavaScriptとか、Javaとか、HTTP Protocol とか、いろいろ用意されているみたい。今回は、PHPからアクセスしたいので、HTTP Protocol をやってみる。
APIを使う前に、Google Analytics API にログインしなくてはならない。認証する方法は、Data Export API - Authorization に書かれている。
認証方法は 「ClientLogin」「AuthSub」「OAuth」と、よくわからないが3種類あるようだ。今回は、HTTP Protocol で ClientLogin を使うことにする。
概要は次の通り。
https://www.google.com/accounts/ClientLogin
に、POST でリクエストする。application/x-www-form-urlencoded
とする。
POST送信するパラメータは次の通り。
accountType | 認証したいアカウントの種類。デフォルトは GOOGLE 。これは Google Analytics がサポートする唯一の選択肢だそうだ。 |
---|---|
ユーザのメールアドレス。必ずドメイン部分を含むこと。 (例: joe@gmail.com) | |
Passwd | ユーザのパスワード。 |
service | サービス名。Google Analytics のサービス名は analytics なので、そう指定する。(他のサービス名については、サービス名一覧を参照) |
source | あなたのクライアントアプリケーションの名称。${会社名}-${アプリケーション名}-${バージョンID} のような形式で送信する。 |
このリクエストの結果、認証に失敗した場合は、HTTP ステータスコード 401 Unauthorized が返却される、とある。(が、実際に誤った認証情報で送信してみたら、なぜか 403 Forbidden が返ってきた。謎だがまぁいいや。)
認証に成功すると、HTTP ステータスコード 200 OK と、ボディ部に SID, LSID, and Auth の3つの値が返却される。
返ってきた3つの値は、次のような形で取得できた。
SID=${値}(LF)
LSID=${値}(LF)
Auth=${値}(LF)
${値}
は長い文字列の値です。(LF)
は改行コードを表現しています。
これを分解して、それぞれ値を取得する。
ここで取得した3つの値は、その後の通信で使用するので、覚えておかなければならない。しかし、具体的にどう使うのかは、Google Analytics のドキュメントからは探せなかったのでGoogle Apps Email Migration API デベロッパー ガイド: プロトコル(日本語)を参考にした。HTTPリクエストヘッダーに、次のように値を付加して使うもののようだ。
Authorization: GoogleLogin auth=${取得したAuth値}
ドキュメントにある手順に従って、Account Feed Request をしてみる。
次のURLに、GETでアクセスする。特にパラメータは付加しないが、HTTPリクエストヘッダに例の認証文字列 Authorization: GoogleLogin auth=${取得したAuth値}
を追加する必要がある。
https://www.google.com/analytics/feeds/accounts/default
返却されたデータはXML形式で、認証したユーザが登録しているプロファイルの一覧などのデータが含まれているようだ。
この中に、プロファイルを特定するプロファイルIDが含まれている。次のようなdxp:propertyタグにvalue属性値として指定されている数値がそれなので、確認しておく。
<dxp:property name='ga:profileId' value='${プロファイルID}'/>
最後に、レポートデータを取得してみる。これもドキュメントに記載されているサンプルの通り、そのままリクエストしてみた。
ただし、ids
の欄には、取得したいプロファイルのプロファイルIDを指定する必要がある。プロファイルIDは、さきほど取得したアカウントデータの中に含まれていたものだ。
https://www.google.com/analytics/feeds/data
?start-date=2008-10-01
&end-date=2008-10-31
&dimensions=ga:source,ga:medium
&metrics=ga:visits,ga:bounces
&sort=-ga:visits
&filters=ga:medium%3D%3Dreferral
&max-results=5
&ids=ga:${プロファイルID}
&prettyprint=true
こちらも結果はXML形式で取得できた。
取得したデータの読み方や、欲しいデータの詳細なリクエスト条件などはまだ不明だが、とりあえず Google Analytics API にログインして、何かしらのデータを取得することはできたので、入門できましたってことにしとく。
詳しい構造については、また今度調べてみます。(Data API - Account FeedとData API - Data Feedを見ればわかりそう)
今回作成したサンプルソース(PHP)は下記。
次の手順でお試しくださいませ。
index.php
と PxHTTPAccess.php
が生成されるindex.php
の11行目付近にアカウント情報の入力欄があるので、ご自分のアカウント情報に書き換える。index.php
を実行する。PHPを利用し、Google Analytics APIでアクセスを表示するサンプルです。
棒グラフは「Google Chart API」を使用しています。
...
( Design Lab - 記事を開く)
公開日: 2009年10月24日(Sat)