GASでスプレッドシートにGoogleアナリティクスのデータを定期的に出力する
拡張機能のGoogleAnalyticsだとサンプリングに引っかかったり、期間の調整が必要になるのでそれをGoogleAppScriptで自動化するコードを書きました。
参考
こういった出力が期待できます。
出力するメトリクスはセッション数以外でもUU数や目標完了数など必要に応じて変更可能です。
値は公式ドキュメントを参照してください。
GASでスプレッドシートにアナリティクスのデータを定期的に出力するスクリプト
GAで作成したセグメントのデータを指定したシートに出力するスクリプト
function main() { const spreadsheet = SpreadsheetApp.getActiveSpreadsheet() const configs = [ // sheetName:データを反映するシート名、 segment:GAセグメントIDを入力してください { sheetName: 'ga_all', segment: 'gaid::ABCDEFG }, ] configs.forEach(({ sheetName, segment }) => { let sheet = spreadsheet.getSheetByName(sheetName) // 無ければシートを作る if (!sheet) { sheet = spreadsheet.insertSheet(sheetName) } // 動かなかったときのため直近n日分を更新する const nDay = 4; let date = new Date() date.setDate(date.getDate()-nDay); for(let n=0; n<nDay; n++) { date.setDate(date.getDate()-1); const result = getGoogleAnalytics({ date, segment }) result.forEach(row => { const rowDate = toDate(row[0]) // スプシ上ではスラッシュ区切り const formatDate = Utilities.formatDate(rowDate, 'JST', 'yyyy/MM/dd') let cell = getCell({ sheet, text: formatDate }) if (!cell) { // 無ければA列最後のセルを使う cell = sheet.getRange(sheet.getLastRow() + 1, 1) } // 列を結果の個数分広げる const range = cell.offset(0, 0, 1, row.length) let insertRow = row.concat() insertRow[0] = formatDate range.setValues([insertRow]) }) } }) } function getGoogleAnalytics({ date, segment }) { // GA APIではハイフン区切り const formatDate = Utilities.formatDate(date, 'JST', 'yyyy-MM-dd') //Google Analytics APIリクエストして、グーグルアナリティクスのデータを取得する const gaData = Analytics.Data.Ga.get( 'ga:123456', // GAビューIDを入力してください formatDate, formatDate, 'ga:sessions', // メトリクス https://ga-dev-tools.web.app/dimensions-metrics-explorer/ { segment, 'dimensions': 'ga:date' } ).getRows() return gaData } function toDate (str) { var arr = (str.substr(0, 4) + '/' + str.substr(4, 2) + '/' + str.substr(6, 2)).split('/'); return new Date(arr[0], arr[1] - 1, arr[2]); }; // 指定されたテキストのセル(Range)を返す function getCell({ sheet, text }) { var textFinder = sheet.createTextFinder(text); var cells = textFinder.findAll(); for(var i=0; i<cells.length; i++){ return cells[i] } }
使い方解説
GAビューIDを設定
ここに利用するビューIDを設定してください。
const gaData = Analytics.Data.Ga.get( 'ga:123456', // GAビューIDを入力してください
GAでセグメントIDを設定
アナリティクス上でセグメントを作ってからセグメントIDを取得します。
UA Query Explorerで検索可能です。
segment
部分に取得したセグメントIDを入力してください。
const configs = [ // sheetName:データを反映するシート名、 segment:GAセグメントID { sheetName: 'ga_all', segment: 'gaid::ABCDEFG }, ]
書き出すシートを用意する
sheetName
に書いた名前のシートを用意します。
1行目に date
sessions
など適宜見出しをつけます。