準備
- Google Developer Consoleにアクセス。
- 左部の「ライブラリ」から、「Google Analytics Reporting API」を選択し有効化。
- 左部の「認証情報」>「認証情報を作成」>「サービスアカウントキー」を選択。
- サービスアカウント名、サービスアカウントIDを適当に入力、キーのタイプはJSONを選択、役割は「Project」>「閲覧者」を選択し、「作成」を押すとJSONファイルが生成される。
- 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
で実行すると下記のようなログが出力される。
GoogleAnalyticsでも一応確認。
ログの値と、ページビュー数が一致していることから、正しく値を取得できていることを確認。
参考
https://github.com/google/google-api-nodejs-client
http://beyondjapan.com/blog/2017/04/get-google-analytics-data-by-nodejs