1.はじめに
こんにちは。はぁこです。
今日は新しくなった「Google Analytics4(GA4)」のAPIを使ってみたいと思います。GA4用のGoogle Analytics Data APIは2021年5月現在、まだ技術ブログでの紹介も少なくてさぐりになりました。
以前のGAはTEAMSのコネクタや、スプレッドシートからのコネクタなどが提供されていてとても便利だったのですが、GA4はそういったものがまだ充実していないようなので今回は自作です。
2.参考サイト
とはいっても、ばっちり参考にさせていただいたページはあります。
こちらです。丁寧に書いていただいてとても助かりました。
参考①
GA4(グーグルアナリティクス4)のAPI使い方解説!GASのサンプルコード紹介
参考②
GoogleAnalyticsの内容をSlackへGASで通知するBotの作成 2
2.環境
Google Apps Script(GAS)
Google Analytics Data API(GCP上のもの)
Teams,slackのIncoming Webhook
3.手順
基本的には参考①に従って進めました。そのうえで行き詰ったところだけ紹介します。
(1)スプレッドシートからGASを起動する
サンプルプログラムではメタデータをスプレッドシートに出力する処理があるのですがGASからエディタを起動してしまうとこの処理でエラーになってしまいました。そこで、スプレッドシートからGASを起動すると処理が正常に行われました。
スプレッドシートの「ツール」-「スクリプトエディタ」から起動できます。
(2)データが取得できない?
参考①の「runReport」のサンプルコードを実行すると正常終了するのですが、取得した値が「not set」になっていました。これは、エラーではなく、取得しようとした指標値がなかったということでした。
私が取得したかったのは、前日のアクティブユーザー数や新規ユーザー数だったので、ディメンションを指定せずに、以下のようにメトリクスのみを指定したらうまくいきました。
let setDimension = [];
let setMetrics = [{'name': 'newUsers'},{'name': 'activeUsers'}];
let setDateRange = {'startDate': 'yesterday','endDate': 'yesterday'};
(3)TeamsやSlackへの投稿
Slackは参考②を参考にさせていただきました。
Teamsは同様にIncoming webhooksを表示したいチャンネルにインストールしてWebhookのURLを取得したました。そして、payloadは以下のように指定しました。あとはSlackと同様です。
let payload = {
"text" : text + "<br>", //text は表示する内容をセット
"@type": "MessageCard",
"themeColor": "0072C6",
"title": "昨日のアクセス状況"
}
(4)定期実行はどうやるの?
GASのメニューの中に「トリガー」があるのでここで設定します。
4.おわり
といった感じで、無事、GA4のAPIでSlackやTeamsに情報連携できるようになりました。
今回はシンプルな指標の取得だけだったのですが、また次の機会にはコホートなど少し複雑な値の取得について書こうと思います。(余裕があればですが)
それでは、最後までお読みいただきありがとうございました☺