【2021年版】GASでグーグルアナリティクスの指標を取得、スプレッドシートに記録する方法

Google Apps Script(GAS)はGoogleのサービスと連携しやすい特徴があり、グーグルアナリティクスのアクセス解析データを簡単に取得できます。

今回、GASでGoogle Analyticsのデータを取得し、スプレッドシートに記録する手順を解説します。

初めてGASを扱う初心者にも分かりやすいようにすべて図解で手順を1つずつ紹介しています。

Google Analyticsの数値をスプレッドシートに記録

Google Analytics(グーグルアナリティクス)はWebサイトやスマホアプリのアクセス解析ソフトとして、有名なツールです。

Webサイトのアクセス解析ツールとしては最もシェアの高い事実上ディファクトスタンダードとなっています。

グーグルアナリティクスでは、管理画面にアクセスすると任意の期間でどれぐらいのページビューやユーザー数が記録されているか、グラフで簡単に確認できます。

ただ、過去の数値データなどは、そのままグーグルアナリティクスで見る以外に、スプレッドシートに出力したいケースがあります。

スプレッドシートでアナリティクスのデータを出力すれば、自由にデータの加工ができるので、レポートなどで見せたいフォーマットに仕上げることが可能です。

Google Apps Scriptでアナリティクスのデータが取得可能

グーグルアナリティクスのデータをスプレッドシートで取得する場合に、最初に候補となるのが、スプレッドシートのアドオンです。

スプレッドシートの様々なアドオンの1つにグーグルアナリティクスも用意されています。

グーグルアナリティクスのアドオンをインストールすると、スプレッドシートにアナリティクスの各種データが出力されます。

実はアドオンはグーグルアナリティクスのAPIをリクエストしてデータを取得しています。

Google Apps Script(GAS)を利用すれば、Google Analytics APIにリクエストしてアクセス解析のデータを取得できます。

さらに、GASのスクリプトの中でデータの整形処理やグラフ生成なども処理に組み込むことができます。

GAS×グーグルアナリティクスによって、アドオン以上に便利で自動のアクセス解析のレポートをスプレッドシートに出力可能です。

そこで、GASでグーグルアナリティクスの各種指標・数値を取得し、スプレッドシートに記録する方法を紹介します。

Google Analyticsで取得したいサイトのビューIDを確認

まず、Google Analyticsから取得したいアクセス解析対象のサイトのビューIDを確認する必要があります。

グーグルアナリティクスのビューIDは、管理画面の左上から表示できるアカウント管理画面で確認できます。

アカウント>プロパティとアプリ>ビューの順に表示後に現れる数字がビューIDです。

上の図の場合は、「235907547」がビューIDとなります。

この番号はGoogle Apps Scriptからグーグルアナリティクスのデータを取得する際に必要になるので、控えておきましょう。

スプレッドシートからGASスクリプトエディタを開く方法

次にスプレッドシートからGoogle Apps Script(GAS)のスクリプトエディタを開く方法です。

グーグルアナリティクスにアクセス可能なGoogleアカウントにログインしたブラウザでスプレッドシートにアクセスします。

上のスプレッドシートのように、グーグルアナリティクスの値を取得するために必要なデータを予めセルに書き込んでいます。

  1. グーグルアナリティクスのビューID(A2セル)
  2. アクセス解析データの取得開始日(B2セル)
  3. アクセス解析データの取得終了日(C2セル)

なお、ビューIDを記述する際には前段で取得した番号の前に「ga:」とつける必要があります。

これらのデータはあとからスプレッドシートの値を書き換えることで、グーグルアナリティクスの取得する対象や、取得期間を変更できます。

次にGoogleスプレッドシートからGASのスクリプトエディタを開きます。

メニューバーにあるツールを選択し、「スクリプトエディタ」をクリックすると、GASのスクリプトエディタのウィンドウが表示されます。

グーグルアナリティクスのデータをGASで取得する手順

スプレッドシートからGoogle Apps Script(GAS)のスクリプトエディタが起動できたら、実際にスクリプトを準備して、グーグルアナリティクスのデータを取得できるようにしていきます。

Google Analytics APIを有効化

最初に、スクリプトエディタでGoogle AnalyticsのAPIを有効化して、グーグルアナリティクスのデータにアクセスできるようにします。

1.GASのスクリプトエディタの左メニューにある「サービス」の右の+の「サービスを追加」をクリックします。

2.「サービスの追加」画面でスクロールして、「Google Analytics API」を選択し、追加ボタンを押します。

※バージョンやIDはGoogle Analytics APIを選択すると、自動で表示されるもので大丈夫です。

以上の2StepでGoogle Analytics APIの追加・有効化が完了です。

上図のようにサービスの下に「Analytics 」と表示されていれば、グーグルアナリティクスのデータを取得する準備ができました。

Google Apps Scriptのコードを記述

次にGoogle Apps Scriptのスクリプトエディタで、グーグルアナリティクスのデータを取得し、スプレッドシートに書き込むコードを書きます。

function getGoogleAnalytics() {
//コンテナバインドスクリプトに紐づくスプレッドシートのアクティブシートを取得
let sheet = SpreadsheetApp.getActiveSheet();
//スプレッドシートからグーグルアナリティクスのビューIDと開始日、終了日を取得する
let setting = sheet.getRange(2, 1, 1, 3).getDisplayValues();
//グーグルアナリティクスから取得する指標データを設定する
let metrics = "ga:pageviews,ga:sessions,ga:users";
//グーグルアナリティクスのディメンションでページタイトルを設定する
let dimensions = "ga:pageTitle";
//表示順はページビュー順にソートする
let sortType = "-ga:pageviews";
//Google Analytics APIリクエストして、グーグルアナリティクスのデータを取得する
let gaData = Analytics.Data.Ga.get(
setting[0][0],
setting[0][1],
setting[0][2],
metrics,
{
'dimensions': dimensions,
'sort': sortType
}
).getRows();
//Google Analytics APIから取得した2次元配列のデータをスプレッドシートに書き込む
sheet.getRange(4, 1, gaData.length, gaData[0].length).setValues(gaData);
}

25行ほどのシンプルなコードでグーグルアナリティクス(GA)からデータ取得、スプレッドシートに書き込みが実現できます。

  • 7行目:GAのメトリクス(指標)を設定(今回はページビュー、セッション数、ユーザー数)
  • 9行目:GAのディメンションを設定(今回はページタイトル)
  • 11行目:データのソート順序を設定(今回はページビューが多い順)

実際にGoogle Analytics APIのリクエストは13行~22行で行なっています。

Analytics.Data.Ga.get(“ビューID", “開始日", “終了日", “取得したい指標", {“dimension":"ディメンション", “sort":"ソート方法"}).getRows();

※Google Analytics APIのリクエストで必要な内容を確認するには「Query Explorer」を使うのが便利です。

Query Explorer使い方まとめーGoogle AnalyticsのデータをAPIで抽出

GASスクリプト初回実行時の権限許可

Google Apps Scriptでグーグルアナリティクスのデータを取得するコードが準備できたら、実際にコードを実行してみます。

ただ、GASのコードは初回実行時には権限の許可が求められますので、許可する手順を紹介します。

1.実行したい関数(今回はgetGoogleAnalytics)であることを確認し、「実行」ボタンをクリックします。

2.「承認が必要です」というウィンドウが表示されるので、右下にある「権限を確認」ボタンをクリックします。

3.「アカウントの選択」でGASスクリプトを実行するGoogleアカウントを選択します。

※表示されているアカウントを選択すれば問題ありません。

4.「このアプリはGoogleで確認されていません」と表示されるので、「詳細」のリンクをクリックし、下部に表示される「(安全でないページ)に移動」をクリックします。

※名称の部分はGASのスクリプトエディタのプロジェクト名が表示

5.グーグルアナリティクスのデータを取得し、スプレッドシートに書き込むために必要な権限が表示されるので、「許可」ボタンをクリックします。

以上の5StepでGASスクリプトの承認作業が完了です。

この作業は初回のみの作業で、一度許可すれば次回以降は表示されなくなります。

GAS実行でグーグルアナリティクスのデータをシートに書き込み

ようやくこれでGoogle Apps Scriptのコードを実行してグーグルアナリティクスのデータを取得、スプレッドシートに書き込む準備が整いました。

再度、スクリプトエディタの実行ボタンをクリックし、GASスクリプトを実行します。

実行開始すると、スクリプトエディタ下部にログ画面が表示され、「実行完了」のメッセージが表示されれば、スクリプト終了です。

GASスクリプトの実行完了後、スプレッドシートを確認すると、グーグルアナリティクスのデータが取得できています。

グーグルアナリティクスに記録されているページタイトルのページビュー数、セッション数、ユーザー数がシートに記録されました。

毎日・○時間ごとにGASコードを定期実行するトリガー登録

今回、作成したGoogle Apps Scriptのスクリプトを毎日決まった時間帯に実行したり、○時間ごとに実行するトリガー登録といったこともできます。

定期実行のトリガー登録しておけば、スプレッドシートのデータ更新が自動化され、スプレッドシートにアクセスすれば、更新されたデータを参照できるようになります。

1.GASのスクリプトエディタの左メニューにある「トリガー」をクリックします。

2.GASのトリガー管理画面で右下にある「トリガーを追加」ボタンをクリックします。

3.「イベントのソースを選択」を時間手動型にし、実行したいタイミングを設定して、「保存」ボタンをクリックします。

※今回は毎日07:00~08:00の間に1回実行するトリガー登録です。

トリガー登録が完了すると、先程のトリガー管理画面にトリガー登録したGASスクリプトが表示されます。

これで毎日GASスクリプトが実行されるトリガー登録が完了です。

Google Analytics APIでフィルタやセグメントも

グーグルアナリティクスの数値を取得できるGoogle Analytics APIでは、今回紹介した機能以外にも更に拡張できます。

取得するデータ条件をフィルタリングするフィルタ機能や、取得するユーザーのセグメントも設定可能です。

  • ページタイトルに○○という文言が含まれる
  • ページビューが100PV以上の記事

グーグルアナリティクスの管理画面では取得するのが困難なレポートデータがGoogle Apps ScriptとGoogle Analytics APIで自動作成することができます。

まとめ・終わりに

今回、Google Apps Script(GAS)でグーグルアナリティクスの数値を取得し、スプレッドシートに出力する方法を紹介しました。

GASではGoogle Analytics APIを使って、簡単にグーグルアナリティクスの各種データを取得することができます。

さらに、GASで準備したスクリプトを定期実行するトリガーを登録すれば、自動的にデータ更新が可能です。

本記事で紹介した手順を使えば、誰でもグーグルアナリティクスのデータをGASで取得し、スプレッドシートに反映することができます。

その上で、Google Analytics APIのリクエスト方法を改良すれば、もっと色々な数値を取得したり、フィルタをかけたりも可能です。

ぜひ、グーグルアナリティクスのデータをスプレッドシートに取得したい場合は、今回紹介した手順を活用してみてください。