LoginSignup
13
9

More than 5 years have passed since last update.

Node.jsでGoogle AnalyticsのPV数を取得

Last updated at Posted at 2018-03-31

準備

  1. Google Developer Consoleにアクセス。
  2. 左部の「ライブラリ」から、「Google Analytics Reporting API」を選択し有効化。
  3. 左部の「認証情報」>「認証情報を作成」>「サービスアカウントキー」を選択。
  4. サービスアカウント名、サービスアカウントIDを適当に入力、キーのタイプはJSONを選択、役割は「Project」>「閲覧者」を選択し、「作成」を押すとJSONファイルが生成される。
  5. Google Analyticsにアクセスし、JSON内にある「client_email」を表示・分析権限を付与して登録。

コードを作成

適当にNodeのプロジェクトを作成し、npm install --save googleapisを実行。
googleapisのリファレンスを参考にしながら、下記のコードを作成。メトリクスにはga:pageviewsを指定。

app.js
const {GoogleApis} = require('googleapis');
const google = new GoogleApis();
var analytics = google.analyticsreporting('v4');
var credential = require('./XXXXXXXX.json');        //準備時に生成したJSONファイルを指定
var viewId = 'XXXXXXXXX';                           //GoogleAnalyticsのビューidを指定
var startDate = "2018-01-01";                       
var endDate = "2018-04-01";

var jwtClient = new google.auth.JWT(credential.client_email, null, credential.private_key, ["https://www.googleapis.com/auth/analytics.readonly"], null);

jwtClient.authorize((error, tokens) => {
    if (error) {
        console.log(error);
        return;
    }
    analytics.reports.batchGet({
        resource: {
            "reportRequests": [
                {
                    "dateRanges": [
                        {
                            "startDate": startDate,
                            "endDate": endDate
                        }
                    ],
                    "viewId": viewId,
                    "dimensions": [
                        {
                            "name": "ga:pagePath"
                        }
                    ],
                    "metrics": [
                        {
                            "expression": "ga:pageviews"
                        }
                    ],
                }
            ]
        },
        auth: jwtClient
    }, (error, response) => {
        if (error) {
            console.log(error);
        }
        const pv = response.data.reports[0].data.rows[0].metrics;
        console.log('pv');
        console.log(pv);
    });
});

実行

node app.jsで実行すると下記のようなログが出力される。
スクリーンショット 2018-03-31 16.24.00.png

GoogleAnalyticsでも一応確認。
スクリーンショット 2018-03-31 16.23.45.png
ログの値と、ページビュー数が一致していることから、正しく値を取得できていることを確認。

参考

https://github.com/google/google-api-nodejs-client
http://beyondjapan.com/blog/2017/04/get-google-analytics-data-by-nodejs

13
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
9