Google analyticsのレポートの値を取得する方法をあれこれ調べていたのでひと通りまとめてみました。
npmのパッケージとしては、sfarthin/ga-analytics · GitHubというのがあるので、これを利用するとあっさりレポートの値は取れるのですが、Google analyticsのAPIを利用するため、以下の手順が必要です。
- Google Developer Consoleでサービスアカウントを準備する
- Google analyticsにユーザを追加する
- Developer consoleで取得した.p12証明書をpem形式に変換する
上の手続きをひと通り行うとGoogle analyticsのレポートの値を取得できる様になります。
Google Developer Consoleでサービスアカウントを準備する
Google Developer Console にログインしてまずは新規プロジェクトを作成します。
次にGoogle analyticsのAPIを選びます。APIの利用ON/OFFをONに切り替えます。
次に左側のメニューにある「APIと認証」の「認証情報」を選択して、新しいクライアントIDの作成を行います。
上記の手続きが完了すると以下の画面が表示されるので
- ①クライアントID
- ②メールアドレス
- ③自動的にダウンロードされる.p12(PKCS12)形式の証明書
- ④パスワード*1
を控えます。
Google analyticsにユーザを追加する
Google developer console 上からAPIを利用できる状態にしても、Google analyticsにユーザを追加しないと実際にGoogle analyticsのパラメータを取得することはできないので、Google analytics上からユーザを追加します。
Google analyticsの「アナリティクス設定」を開いて
上記の箇所に先のDeveloper consoleで追加されたメールアドレス(〜@developer.gserviceaccount.com) を入力してユーザとして追加します。
続けて実際に取得したいGoogle analyticsのレポートを識別するためにビューIDという値があるので
を開くと、以下の箇所にビューIDがあるのでこれを控えます。
- ⑤取得したいレポートのビューID
Developer consoleで取得した.p12証明書をpem形式に変換する
OpenSSLのコマンドを利用して証明書の形式を変換します。パスワードの部分には④で表示されていたものを入力します。
openssl pkcs12 -in key.p12 -nocerts -passin pass:***** -nodes -out key.pem
ここで出力された証明書ファイルのパスを控えておきます。
- ⑥PEM形式に変換された証明書ファイル
ga-analyticsを利用してGoogle analyticsの値を取得
ここまでで準備は完了したので実際にsfarthin/ga-analytics · GitHubを利用してレポートの値を取得してみます。
試しに恥ずかしながらこのブログのページビューを...。
$ npm install ga-analytics --save
として ga-analytics
のインストールを行った上で
var gaAnalytics = require("ga-analytics"); var CLIENT_ID = '****.apps.googleusercontent.com'; // ① var SERVICE_ACCOUNT_EMAIL = '****@developer.gserviceaccount.com'; // ② var SERVICE_ACCOUNT_KEY_FILE = '/home/hideack/key.pem'; // ⑥ gaAnalytics({ metrics: "ga:pageviews", clientId: CLIENT_ID, serviceEmail: SERVICE_ACCOUNT_EMAIL, key: SERVICE_ACCOUNT_KEY_FILE, ids: "ga:*****" // ⑤ }, function(err, res) { if(err) throw err; console.log(res.totalsForAllResults); });
これで出力してみると。
{ 'ga:pageviews': '1973' }
といった形。実際にAnalyticsでレポートの値を確認すると同じ値が取れることがわかります。
*1:多分だけどこれ固定ですね...