無駄と文化

実用的ブログ

Apps Script を使ってスプレッドシートに Google アナリティクスのアカウントを一覧表示する

今回は Google アナリティクスのアカウント情報一覧をスプレッドシートに出力する方法をご紹介します。
アナリティクスは無料のプランでさえ 100 アカウントまでサイトを管理できるんですが、50 を越えてくると標準の管理画面ではさすがに見通しが悪くなってきます。
ときには自分の管理しているサイト一覧をスプレッドシートに並べて一覧したくなりますよね。そこで、Google Apps Script です。

出来上がりのイメージは、こんな感じです、

f:id:todays_mitsui:20170926011018p:plain

では早速コードを見ていきましょう。


gist.github.com

putAccountsList() を実行すると Google アカウントの認証画面が現れ、Google アカウントが持つ全ての アカウント×プロパティ×ビュー の情報をスプレッドシートに書き出してくれます。
いつものように日本語コメントをたっぷりと書き加えていますので、内容に興味がある方は読んでみてください。

…ただ、 putAccountsList() を実行するのに若干のコツが必要なので、それを見ていきましょう。


ステップ1. 「Google の拡張サービス」を有効化する

今回、アナリティクスのアカウント情報にアクセスするのに Google Analytics API v3 を使用しています。
Google Analytics API v3 はスクリプトエディタのメニューから事前に有効化しておかなければ利用できません。さらにスクリプトエディタから有効化したあとで Google デベロッパーコンソール上でも同名の API を有効化する必要があります。

若干面倒ではありますが、最初に一回だけやれば済む作業なのでやりましょう。
以下の記事が参考になるはずです。

qiita.com


ステップ2. アプリ権限の確認を乗り越える

どうやら Apps Script から一部の操作をするときに事前に Google の審査をパスしなければいけなくなったようです。
今回で言うと、アナリティクスから取得したデータを スプレッドシートに書き込む操作 に対して、事前に審査をパスしていなければスクリプトを実行させてもらえません。

f:id:todays_mitsui:20170926011111p:plain

こんな感じの画面が出ます。
半年前までは普通に実行できてたんだけどな…。


というわけで回避法です。

f:id:todays_mitsui:20170926011137p:plain

「詳細」をクリックして、

f:id:todays_mitsui:20170926011153p:plain

プロジェクト名 (安全ではないページ) に移動」から進んで、

f:id:todays_mitsui:20170926011206p:plain

「許可」をクリックすると、やっとスクリプトの実行ができます。


ステップ3. 完成

というわけで、スクリプトの実行が完了すればスプレッドシートの方に アカウント×プロパティ×ビュー の一覧が表示されているはずです。

表示している項目は、

  • アカウント#ID
  • アカウント#名前
  • アカウント#ユーザーの権限
  • アカウント#スター付き
  • アカウント#作成日時
  • アカウント#最終更新日時
  • プロパティ#ID
  • プロパティ#名前
  • プロパティ#サイトURL
  • プロパティ#ユーザーの権限
  • プロパティ#スター付き
  • プロパティ#作成日時
  • プロパティ#最終更新日時
  • ビュー#ID
  • ビュー#名前
  • ビュー#通貨のタイプ
  • ビュー#タイムゾーン
  • ビュー#サイトURL
  • ビュー#デフォルトページ
  • ビュー#ユーザーの権限
  • ビュー#スター付き
  • ビュー#eコマーストラッキング有効
  • ビュー#拡張eコマーストラッキング有効
  • ビュー#ロボットフィルタリング有効
  • ビュー#作成日時
  • ビュー#最終更新日時

の全26項目です。
他の項目も出そうと思えば出せるんですが、まぁこれだけあれば管理上は充分でしょう。

他にも出せる項目が気になる方は以下に挙げる公式ドキュメントを読んでみてください。
その気になれば、目標設定やセグメントの設定なども表示できますよ。


まとめ

私はこの方法、100アカウント制限で一杯いっぱいになったときの整理整頓のために仕方なく捻り出しました。
ちっとは Apps Script 書ける人間で本当によかったです。


私からは以上です。