重い腰を上げた感じです。
とりあえず導入部分については公式リファレンスとクイックスタートを参考にサクサク行いました。
Google Analytics Data API の概要 | Google for DevelopersGoogle アナリティクスのレポートとデータをプログラマティックに管理する。
導入についてはいろいろな方がブログで書いているので自分はReportingAPIとDataAPIの相違点を中心に解説します。
言語はnode.jsです
credentialの読み込み方
引数に渡す形から環境変数に入れる形になりました
// Reporting API v4
const client = await google.auth.getClient({
keyFile: './service-account-credentials.json',
scopes: 'https://www.googleapis.com/auth/analytics.readonly',
})
// Data API
process.env.GOOGLE_APPLICATION_CREDENTIALS='./service-account-credentials.json';使用するパッケージ
ごちゃ混ぜパッケージからData API専用の軽量なパッケージになりました
// Reporting API v4
> npm i googleapis
// Data API
> npm i @google-analytics/dataメソッド
batchGet()からrunReport()になりました
階層構造が少なくなってシンプルになりましたdimensionsとmetricsがだいぶ変わりました
มิติข้อมูลและเมตริก API | Google Analytics | Google for Developers
filterが直感的に書きやすくなりました
FilterExpression | Google Analytics | Google for Developers
コード例:パスに"post"を含むURLのページビュー数を取得する
// Reporting API v4
const res = await analyticsreporting.reports.batchGet({
requestBody: {
reportRequests: [
{
viewId: '230865015', // ビュー ID を指定する
dateRanges: [
{
startDate: '2020-09-01',
endDate: 'today',
},
],
metrics: [{ expression: 'ga:pageviews' }],
dimensions: [{ name: 'ga:pagePath' }],
dimensionFilterClauses: [{
filters : [{
"dimensionName": 'ga:pagePath',
"operator": 'PARTIAL',
"expressions": [
'post'
],
}]
}],
},
],
},
})
// Data API
propertyId = '295516954';
const [response] = await analyticsDataClient.runReport({
property: `properties/${propertyId}`,
dateRanges: [
{
startDate: '2021-12-01',
endDate: 'today',
},
],
dimensions: [{ name: 'pagePath' }],
metrics: [{ name: 'screenPageViews' }],
dimensionFilter: {
filter: {
"fieldName": 'pagePath',
"stringFilter": {
"matchType": "CONTAINS",
"value": "post",
"caseSensitive": true
},
}
}
});
ということで無事完了
これで今年7月のUA終了に備えようと思います。



