Node.jsを使ってGoogle Analytics APIからデータを取得してみよう
こんにちは、プロダクト開発チームの牧です。
最近、Google Analyticsを触ることが増えてきているのですが、
せっかくなのでGoogle Analytics APIからデータを取得してみました。
今回は、Node.jsを使ってGoogle Analyticsのデータを取得する方法をご紹介します。
Google Analytics API
Googleは提供しているサービスのほとんどをAPIを通じて利用することが出来ます。
Google Analyticsでは以下のAPIが提供されています。
- Core Reporting API
- Embed API
- Multi-Channel Funnels Reporting API
- Real Time Reporting API
- Metadata API
- Management API
用途に応じて様々なAPIを利用することが出来ますが、今回はCore Reporting APIを使用して進めていきます。
OAuth認証情報を取得しよう
Google Analytics APIを利用するにはOAuth認証を行い、アクセストークンを発行する必要があります。
Google API Managerから「OAuth クライアント ID」の認証情報を作成しましょう。
アプリケーションの種類はウェブアプリケーションを選択し、リダイレクト先は「http://localhost」と設定します。
クライアントIDとクライアントシークレットが発行されますので、保存しておきましょう。
Node.jsでアプリケーションを作成しよう
npmでモジュールインストール
Google Analytics APIはREST-APIとしても提供されていますので、HTTPリクエストを行ってデータを取得できますが、
今回はgoogle-api-node-clientを使用します。
こちらはGoogleがOSSで提供しているNode.jsクライアントモジュールです。
プロジェクトディレクトリ以下でnpmコマンドを使用しインストールします。
$ cd /path/to/project
$ npm init -y
$ npm install --save googleapis
node_modulesディレクトリ以下にgoogleapisが保存されます。
app.jsの作成
それでは早速プログラムを作成したいと思います。
今回取得するデータは新規ユーザとリピートユーザ毎に
セッション数、新規セッション率、直帰率を過去1ヶ月分取得してみます。
プログラムのコード例は以下となります。
var readline = require("readline");
var googleapis = require("googleapis");
var CLIENT_ID = "CLIENT ID",
CLIENT_SECRET = "CLIENT SECRET",
REDIRECT_URL = "http://localhost",
SCOPE = "https://www.googleapis.com/auth/analytics.readonly",
VIEW_ID = "ANALYTICS VIEW ID";
var rl = readline.createInterface({input: process.stdin, output: process.stdout});
var auth = new googleapis.auth.OAuth2(CLIENT_ID, CLIENT_SECRET, REDIRECT_URL);
var url = auth.generateAuthUrl({scope: SCOPE});
var getAccessToken = function(code){
auth.getToken(code, function(err, tokens){
auth.setCredentials(tokens);
getGaData()
});
}
var getGaData = function(){
var analytics = googleapis.analytics({auth: auth, version: "v3"});
analytics.data.ga.get({
ids: "ga:" + VIEW_ID,
start-date: "30daysAgo",
end-date: "yesterday",
metrics: "ga:users,ga:percentNewSessions,ga:bounceRate",
dimensions: "ga:userType"
}, function(err, rows){
console.log(rows);
});
}
console.log("Visit the url: " + url);
rl.question("Enter then code hear: ", getAccessToken);
まず、先ほど取得したOAuthのクライアントID、クライアントシークレットを置き換えます。
またVIEW_IDはGoogle Analyticsのビューの設定画面から取得することが出来ます。
これだけでプログラムは完成です。
では実際に動かしてみましょう!
プログラムを実行しよう
nodeコマンドで先ほど作成したプログラムを実行します。
$ node app.js
Visit the url: Authentication URL...
Enter then code hear:
発行されたURLにアクセスすると認証画面が出てきます。
許可をすると設定したリダイレクト先にリダイレクトされます。
URLにはcodeパラメータが付与されていますので「code=」の後をコピーしてプログラムに貼り付けて下さい。
コマンドラインに取得したデータが表示されます。
まとめ
今回はOAuthの認証からAPIを利用してGoogle Analyticsのデータ取得までを行いました。
基本的にAnalyticsのレポートで出るデータはAPIで取得することが出来ますので、
カスタマイズした独自レポートを作りたい場合などにとても有用です。
Google AnalyticsのAPIは今回ご紹介したCoreReportingAPI以外にも多くのAPIがありますので、
今後もご紹介していきたいと思います。
-
お問い合わせ
SiTest の導入検討や
他社ツールとの違い・比較について
弊社のプロフェッショナルが
喜んでサポートいたします。 -
コンサルティング
ヒートマップの活用、ABテストの実施や
フォームの改善でお困りの方は、
弊社のプロフェッショナルが
コンサルティングいたします。
今すぐお気軽にご相談ください。
今すぐお気軽に
ご相談ください。
(平日 10:00~19:00)
今すぐお気軽に
ご相談ください。
0120-315-465
(平日 10:00~19:00)
グラッドキューブは
「ISMS認証」を取得しています。
認証範囲:
インターネットマーケティング支援事業、インターネットASPサービスの提供、コンテンツメディア事業
「ISMS認証」とは、財団法人・日本情報処理開発協会が定めた企業の情報情報セキュリティマネジメントシステムの評価制度です。