UA→GA4への変更に合わせてこのブログで使っているpvシステムもAPIの切り替えを行いました。
重い腰を上げた感じです。
とりあえず導入部分については公式リファレンスとクイックスタートを参考にサクサク行いました。
https://developers.google.com/analytics/devguides/reporting/data/v1?hl=ja
導入についてはいろいろな方がブログで書いているので自分はReportingAPIとDataAPIの相違点を中心に解説します。
言語は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終了に備えようと思います。
JamStackでもアクセスカウンターを実装したい
2021年12月13日(月) 3時21分10秒 | 262 viewFTP-Deploy-Actionが突然動かなくなった
2023年1月31日(火) 6時42分24秒 | 74 viewactions-js/push@masterでのデフォルトブランチがmasterからmainに変わっていてCIが動かなくなっていた
2021年8月30日(月) 8時49分10秒 | 57 viewテキストから一意の値を算出する
2020年10月27日(火) 14時9分41秒 | 25 viewhighlight.jsを入れた
2020年10月28日(水) 13時49分3秒 | 23 view