簡単にGoogleアナリティクスから数値を取り込めるAppsスクリプトとは

Googleアナリティクスのレポート作りならAppsスクリプト!

追記:2017年12月19日現在不具合が報告されています。実行の保証ができません、申し訳ありません。

レポート作りは意外と大変

Googleアナリティクスは、ちょっとしたレポートを作るにも、実は意外と手間がかかりますよね。たとえば、トップページの月ごとのPV数推移の「表」など。結局はEXCELで手作業ということも、少なくないのではないでしょうか。

あと、新Googleアナリティクスに変わってこういう声をよく聞きます。これ、以前はログイン直後の画面で一覧表になってましたよね。

各プロファイルごとの訪問数やPV数一覧が無くなった・・・。

単なる経過推移を見たいだけなのにと手間を感じ、Googleアナリティクスから遠ざかってしまう方も多いのでは。実は、欲しいレポートにするのって意外と面倒ですよね。

表計算で加工するなら、直接ワークシートに取り込めれば楽になる

そこで、EXCELのマクロ(VBA)を使って、直接データを取り込んでしまおう、という考えが浮かびます。

ただ、実は面倒なことがあります。EXCELはver2007と2003で仕様がかなり変ります。また、データを取得する時にログイン(認証)をしなくてはならないため、プログラムがとても複雑になりがち。

ですから、エクセルを使う場合は、実際には、アドオンプログラムをそのまま使うことが多いかと思います。

参考:EXCELのGAアドオンと料金 | カグア!

しかし、表計算ならGoogleにもありますよね、そうGoogleドキュメントのスプレッドシートです。実はこれにもプログラム機能があり、そして何と認証など、高度なプログラムでもとても簡単に扱えるのです。これはツカわない手はありません。

そして、それがAppsスクリプト(Google Apps Script)なのです。

Appsスクリプトを使ってGAのデータを取ってこよう(1)準備編

Appsスクリプトを使うにはまず、Googleドキュメントでワークシートを用意します。

作成>スプレッドシート

次に、ワークシート画面から、スクリプトエディタ(プログラム入力画面)を出します。

ツール>スクリプトエディタ

ここにAppsスクリプトを記述していきます。この{}の間にプログラムを書けばOKです。

Appsスクリプトを使ってGAのデータを取ってこよう(2)プログラミング編

それでは、早速以下のコードをコピーし、{}の間に貼り付けます。そして、一旦ファイル>保存とします。プロジェクト名(ファイル名とは言わず)を要求されますが、とりあえず「test」などと入れておきます。

[JavaScript]/* Google Analytics Keywords Report @kagua_biz
* license MIT License 2012/03/06
*/
function myFunction() {
var oauthConfig, requestData, result;
oauthConfig = UrlFetchApp.addOAuthService(“google”);
oauthConfig.setAccessTokenUrl(
“https://www.google.com/accounts/OAuthGetAccessToken”);
oauthConfig.setRequestTokenUrl(
“https://www.google.com/accounts/OAuthGetRequestToken?”
+”scope=https://www.googleapis.com/auth/analytics.readonly”);
oauthConfig.setAuthorizationUrl(
“https://www.google.com/accounts/OAuthAuthorizeToken”);
oauthConfig.setConsumerKey(“anonymous”);
oauthConfig.setConsumerSecret(“anonymous”);
req = { “method” : “GET”,
“oAuthServiceName” : “google”,
“oAuthUseToken” : “always” };
url = “https://www.googleapis.com/analytics/v3/data/ga?”
+”ids=ga:xxxxx”
+”&start-date=2012-01-01&end-date=2012-01-31″
+”&max-results=99″
+”&dimensions=ga:keyword&metrics=ga:visits&sort=-ga:visits”;
result = UrlFetchApp.fetch( url , req );
result = Utilities.jsonParse(result.getContentText());
var sheet = SpreadsheetApp.getActiveSheet();
var cell = sheet.getRange(‘a1’);
for ( i=0 ; i+”ids=ga:xxxxx”のxxxxxを自身のGAのプロファイル番号に変えて、上書き保存して下さい。プロファイルIDは、普段見ているGoogleアナリティクスのURLにありますpで始まるp9999999の数字部分です。

Appsスクリプトを使ってGAのデータを取ってこよう(3)実行編

それでは、早速実行してみましょう。画面上方の「再生ボタン」のようなアイコンをクリックします。認証画面が出ますので、「Authorize」をクリックします。

そして、Googleアナリティクスの確認画面が表示されます。「アクセスを許可」とします。

ワークシート画面を見て下さい。キーワードと訪問数が999件取得出来ました。

実はこの認証プログラムがとても大変なのです。セキュリティが重要ですから、プログラムも非常に高度です。しかし、Googleドキュメントの場合、それらの命令が予め用意されており、簡単に扱えるのです。

Appsスクリプトを使ってGAのデータを取ってこよう(4)改造編

では、あなた好みのレポートに変えてみましょう。プログラム中央あたりの、日付(start-date、end-date)、取得件数(max-results)を変え、上書き保存をし実行してみましょう。

また、ディメンションや指標は、こちらから綴りを確認できます。

Dimensions & Metrics Reference – Google Analytics – Google Code

主な、ディメンションや指標を掲げます。いろいろと試して下さい。

◆ディメンション例
キーワード(ga:keyword)、ページタイトル(ga:pageTitle)、ブラウザ(ga:browser)
◆指標例
訪問数(ga:visits)、PV数(ga:pageviews)、新規率(ga:percentNewVisits)

一方、ディメンションと指標の組み合わせで、使えない組み合わせもありますので注意します。とは言いましても、これらも試しながら覚えますので、大丈夫です。※今回のプログラムでは複数のディメンションや指標の組み合わせには対応していません。

有効なディメンションと指標の組み合わせ – アナリティクス ヘルプ

また、Appsスクリプト自体にはより高度な機能があり、レポートを自動化するなども出来ます。自分宛に毎日メールさせる、など出来るんですね(明日その記事を公開、お楽しみに)。

Appsスクリプトを使って、ワークシートに数値を取り込み、自分なりのレポートを作ってみて下さい。

追記 13:28 HTMLなどの影響で表示されているソースで1行不足分がありました。また、そのまま貼り付けますとダブルクォーテーションが全角になるという仕様も発覚しましたので、修正&ダウンロード付けました。そちらをご利用下さい。ご指摘ありがとうございました。
 
[sozaidl num=20120306]