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終了に備えようと思います。
vue-scrolltoとv-b-scrollspyが共存したらかっこよかった
2021年12月1日(水) 16時37分57秒 | 282 viewページビュー数を表示する
2021年11月6日(土) 15時27分55秒 | 170 viewFTP-Deploy-Actionが突然動かなくなった
2023年1月31日(火) 6時42分24秒 | 79 view目次をデフォルトで開いたり、開いたり閉じたりを検出したい
2020年10月30日(金) 9時52分28秒 | 21 viewtwitter埋め込み最適化テスト
2021年10月5日(火) 13時48分18秒 | 13 view