Google Analytics Data API を使って特定範囲の人気記事リストを取得する

imatomix
2021年12月7日 14:30

概要

Google Analytics Data API を使って、本サイトのノートカテゴリの中からPV数順の記事URLリストを取得します。 Google Analytics Data API はGA4用のAPIで、まだベータ版なのでご注意ください。

事前準備

Google Cloud Platform にて、以下を行う。

仕様

  • 期間は直近1週間
  • dataRangesstartDate: 6daysAgoendDate: today を指定する
  • PV数順に10記事分のURLを取得
  • dimensionspageLocation を使用する
  • metricsscreenPageViews を使用する
  • limit10 を指定する
  • ノート記事のみのリストにする
  • pageLocation/notes/ を含むかどうかでフィルタリングする

スクリプト

公式のサンプルコードをベースに、リストをノートのみに絞るフィルター部分を追加する。フィルタリングに関しては公式リファレンスからstringFilterを参照した。
import { BetaAnalyticsDataClient } from '@google-analytics/data' const propertyId = process.env.GA4_PROPERTY_ID const client = new BetaAnalyticsDataClient() const runReport = async () => { const [response] = await client.runReport({ property: `properties/${propertyId}`, dateRanges: [ { startDate: '6daysAgo', endDate: 'today', }, ], dimensions: [ { name: 'pageLocation', }, ], metrics: [ { name: 'screenPageViews', }, ], dimensionFilter: { filter: { fieldName: 'pageLocation', stringFilter: { matchType: 'CONTAINS', value: '/notes/', }, }, }, limit: 10, }) console.log('Report result:') response.rows.forEach((row) => { console.log(row.dimensionValues[0].value) }) } runReport()

実行結果

以下のURLリストを取得でした。