UA→GA4への変更に合わせてこのブログで使っているpvシステムもAPIの切り替えを行いました。
重い腰を上げた感じです。
とりあえず導入部分については公式リファレンスとクイックスタートを参考にサクサク行いました。
Google アナリティクスのレポートデータにアクセス。...
developers.google.com
node.js
です引数に渡す形から環境変数に入れる形になりました
// 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
がだいぶ変わりました
https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema filter
が直感的に書きやすくなりました
https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/FilterExpression
コード例:パスに"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終了に備えようと思います。