1ヶ月ほど前から、今までの方法でGoogle SpreadsheetからAnalyticsのデータを取得することが出来なくなっています。
完全にOAuth2認証が必須になっているようです。
海外無料ツールも最近有料になったりして、自分で何とか作れないものかと思い、まだ酷い状態ですが、簡単にScriptを作ってみました。
■Scriptを見る
※閲覧はGoogleアカウントが必要なようです。
エラー処理が中途半端だったり、色んな制約が発生しています。
改善の余地がありまくる無駄なScriptですが、少しずつ改良出来ればと思っています。
■使い方
1.Google Spreadsheetを新規に作成して、「tool」から「Script editor」を開く
2.Scriptを貼る
3.適当な名前を付けてScriptを保存した後に、「File」から「Upgrade authorization experience」を選択する。
※イケてなさすぎる点!!
4.「Yes」を選択。
要するに、Scriptを実行する人ごとに認証が求められるということ。。。これ、イケてない。。。
※一応、Googleのヘルプを見ている限り、この操作無くAPI Keyを保存しておけばイケるはずなんですが、色々試しても解決出来なかったので・・・
5.「Resources」から「Use Google APIs」を選択
6.Google APIs Servicesの中からAnalyticsをon!
7.「on」になったことを確認したら、フッターの「Google APIs Console」のリンクをクリック
※本当はauthorization experienceを同意していない場合、ここでAPI Keyを入力する必要がある。
8.飛んだ先のページでAnalytics APIを「on」に。
9.再びScriptの画面に戻って、一度ScriptをRunする。
10.ここで認証が求められるので、「Authorize」を選択。
11.「アクセスを許可」で認証通過!
■使い方
数式として使います。
式の形式は
getData(profileId, metrics, startDate, endDate, filters, dimensions, segment, sort, startindex,
maxresults)
赤字は必須項目です。
それ以外は一応、必須じゃないので省略して構わないのですが、式を動かしてみた際、色々とエラーが発生したので、裏側ではダミーで値をもたせていたりします。
項目の説明はGoogleのヘルプページが一番詳しいです。
ちなみにprofileIdはAnalyticsのURLからも分かりますが、ツールまたはScriptを組んで調べたほうが早いかもしれません。
URLの場合は「~/visitors-overview/a[account ID]w[web property ID]p[profile ID]/」こんな構造になっていますので、「profile ID」を拾ってしまえばOKです。
ツールやScriptに関しては私は有料ツールの無料1ヶ月期間に取得してしまいました。
■残りの項目説明
【metrics/dimensions】
Googleのこのページに書かれている左側がdimension、右側がmetricsです。
Metricsは結果として欲しいデータ、dimensionは切り口みたいなものです。
例えば、先週一週間の日次セッション数を出力したい場合、metricsに「visits」(セッション数)、dimensionに「date」(日次)を指定すれば完了です。
【startDate、endDate】
解析期間のはじめと終わり
【filters】
dimensionまたはmetricsのフィルタです。
filterで使える表現については、Googleのヘルプを参照してください。
【segment】
Advanced Segmentです。「すべて」は「-1」だったり、自分で作ったカスタムセグメントは数字の桁数が多いIDをそれぞれ持っています。
【sort】
単純なソートです。
複数のkeyを入れられますが、先頭から順に第1ソートキー、第2ソートキーとなるようです。
※Spreadsheetで集計していていつも思う不満が、ウェブで出来る「加重」ソートが出来ない事です。ウェブサイトのURL的には「smart」とか付いていたような気がしますが、このAPIを使ったソートでも実装して欲しいなぁ。。。
【startindex/maxresults】
開始位置と表示件数ですが、気にすべきは表示件数の方かもしれません。
ただ、Spreadsheetと連携させたデータ取得では、あまりデータ数を取得することが出来ないと考えておいたほうがいいです。
■制約事項
色々ありますが、、、最大の制約事項は「認証」をするため、そのSpreadsheetのアカウントに解析したいAnalyticsのユーザー権限または管理者権限が付与されていなければならない事でしょう。
一応gmailアカウントだけでなく、企業が使うAppsでも利用できましたので、その辺りでの差別はありません。
■最後に!!
言い訳ですがw
僕、エンジニアじゃないんでソースの中途半端感は許して!w
でも、色々とご指摘いただけると嬉しかったりします。
完全にOAuth2認証が必須になっているようです。
海外無料ツールも最近有料になったりして、自分で何とか作れないものかと思い、まだ酷い状態ですが、簡単にScriptを作ってみました。
■Scriptを見る
※閲覧はGoogleアカウントが必要なようです。
エラー処理が中途半端だったり、色んな制約が発生しています。
改善の余地がありまくる無駄なScriptですが、少しずつ改良出来ればと思っています。
■使い方
1.Google Spreadsheetを新規に作成して、「tool」から「Script editor」を開く
2.Scriptを貼る
3.適当な名前を付けてScriptを保存した後に、「File」から「Upgrade authorization experience」を選択する。
※イケてなさすぎる点!!
4.「Yes」を選択。
要するに、Scriptを実行する人ごとに認証が求められるということ。。。これ、イケてない。。。
※一応、Googleのヘルプを見ている限り、この操作無くAPI Keyを保存しておけばイケるはずなんですが、色々試しても解決出来なかったので・・・
5.「Resources」から「Use Google APIs」を選択
6.Google APIs Servicesの中からAnalyticsをon!
7.「on」になったことを確認したら、フッターの「Google APIs Console」のリンクをクリック
※本当はauthorization experienceを同意していない場合、ここでAPI Keyを入力する必要がある。
8.飛んだ先のページでAnalytics APIを「on」に。
9.再びScriptの画面に戻って、一度ScriptをRunする。
10.ここで認証が求められるので、「Authorize」を選択。
11.「アクセスを許可」で認証通過!
■使い方
数式として使います。
式の形式は
getData(profileId, metrics, startDate, endDate, filters, dimensions, segment, sort, startindex,
maxresults)
赤字は必須項目です。
それ以外は一応、必須じゃないので省略して構わないのですが、式を動かしてみた際、色々とエラーが発生したので、裏側ではダミーで値をもたせていたりします。
項目の説明はGoogleのヘルプページが一番詳しいです。
ちなみにprofileIdはAnalyticsのURLからも分かりますが、ツールまたはScriptを組んで調べたほうが早いかもしれません。
URLの場合は「~/visitors-overview/a[account ID]w[web property ID]p[profile ID]/」こんな構造になっていますので、「profile ID」を拾ってしまえばOKです。
ツールやScriptに関しては私は有料ツールの無料1ヶ月期間に取得してしまいました。
■残りの項目説明
【metrics/dimensions】
Googleのこのページに書かれている左側がdimension、右側がmetricsです。
Metricsは結果として欲しいデータ、dimensionは切り口みたいなものです。
例えば、先週一週間の日次セッション数を出力したい場合、metricsに「visits」(セッション数)、dimensionに「date」(日次)を指定すれば完了です。
【startDate、endDate】
解析期間のはじめと終わり
【filters】
dimensionまたはmetricsのフィルタです。
filterで使える表現については、Googleのヘルプを参照してください。
【segment】
Advanced Segmentです。「すべて」は「-1」だったり、自分で作ったカスタムセグメントは数字の桁数が多いIDをそれぞれ持っています。
【sort】
単純なソートです。
複数のkeyを入れられますが、先頭から順に第1ソートキー、第2ソートキーとなるようです。
※Spreadsheetで集計していていつも思う不満が、ウェブで出来る「加重」ソートが出来ない事です。ウェブサイトのURL的には「smart」とか付いていたような気がしますが、このAPIを使ったソートでも実装して欲しいなぁ。。。
【startindex/maxresults】
開始位置と表示件数ですが、気にすべきは表示件数の方かもしれません。
ただ、Spreadsheetと連携させたデータ取得では、あまりデータ数を取得することが出来ないと考えておいたほうがいいです。
■制約事項
色々ありますが、、、最大の制約事項は「認証」をするため、そのSpreadsheetのアカウントに解析したいAnalyticsのユーザー権限または管理者権限が付与されていなければならない事でしょう。
一応gmailアカウントだけでなく、企業が使うAppsでも利用できましたので、その辺りでの差別はありません。
■最後に!!
言い訳ですがw
僕、エンジニアじゃないんでソースの中途半端感は許して!w
でも、色々とご指摘いただけると嬉しかったりします。