Bowyer Tech Blog

元Androidエンジニアによる技術ブログ

Google Analytics

GoogleAnalyticsのAPIとGoogleAppsScriptでGoogleAnalyticsのレポートを自動化する方法

投稿日:2017年1月7日 更新日:

Google AnalyticsのデータをGoogle スプレッドシートに書き写し、自分たちで利用しやすいように加工して使うケースも少なくないと思います。毎日必要なデータをGoogle Analyticsを開いて手動で書き写すのはとても面倒でコストがかかりますね。Google AnalyticsにはCore Reporting APIと呼ばれるAPIが公開されていて、それを使えばデータを取得することが出来ます。

Googleスプレッドシートを使っているのであればGoogle Apps Scriptを使うことでJavascriptの実装と同じ用にプログラムを記述することが出来ます。

この記事ではGoogle Apps Scriptを使い、Google AnalyticsのCore Reporting APIを叩いてGoogleスプレッドシートに自動で日々の検索流入のデータを記録する方法を紹介します。

今回もサンプルシートを用意してますので、こちらをコピーして使っていただいて結構です。

下準備

Core Reporting APIを使えるようにする

Google Analyticsから自動でデータを取得するには、Core Reporting APIが使えるようになる必要があります。下記に従って実行していってください。

ツール -> スクリプトエディタを開きます

Googleの拡張サービスを有効にする

リソース -> Googleの拡張サービスを開きます

Google Analytics APIをONにします。

DevelopersプロジェクトでAnalytics APIを有効にする

サンプルシートをコピーした人はこの作業を忘れずに実行してください。実行しないと使えないです。

リソース -> Developersプロジェクトを選択

このスクリプトが現在関連付けされているプロジェクトの下にあるリンクをクリック

検索窓にAnalyticsと入力

有効にするをクリック

これでCore Reporting APIが使えるようになりました。

Google Core APIコードの実装

Google Core APIからデータを取得するコードはこちらです。

パラメータについて少し解説します。各パラメータはQueryExprolerを使って確認することが出来ます。

ga_view_id

こちらは、Google Analyticsのどのビューからデータを取得するかです。

QueryExprolerを使ってIDを取得してください。

私の場合ですとidsにかかれている「ga:123456」がview_idになります。サンプルシートを実行する場合GASettingタブのB3セルに入力してください。

start_date、end_date

開始日と終了日です。

metrics

取得したいデータを指定します。

Googleアナリティクスで普段利用している指標(セッションやページビュー数など)を対応するコマンド分に入れ替えて、このセルに指定します。”,”カンマで区切って複数入れられます(最大128文字)

web担より引用

サンプルではga:sessions(セッション時間)、ga:avgTimeOnPage(平均滞在時間)、ga:bounceRate(直帰率)を指定してます。指定した順番で配列に格納されます。

options

オプションです。セグメントやサンプリングレベル、並び替え方法などの条件を追加出来ます。

以下のように指定します。

サンプリングレベルの指定です。「DEFAULT」、「FASTER」、「HIGHER_PRECISION」の3つの値があります。HIGHER_PRECISIONを指定すると精度を優先できます。

セグメントの指定です。-5は検索流入のセグメントです。独自のセグメントを指定することも可能です。

Google Core APIで取得したデータをスプレッドシートに書き込む

ここからはGoogle Apps Scriptの使い方になります。細かい説明は割愛させていただきます。

先程取得した

ga_dataにはmetricsで指定した順番でデータが格納されています。

var range = sheet.getRange(position, raw, ga_data.length, ga_data[0].length);

データを記録する範囲を指定します。

position=3,raw=4,ga_data.length=1,ga_data[0].length=3

の場合、D3:F3が指定されている状態になります。
range.setValues(ga_data);

指定した範囲にデータを書き込みます。

データ取得を自動化する

Google AnalyticsのAPIをたたいてデータを取得する関数が実装できたので、あとは指定した時間に定期的に実行出来るように設定します。

スクリプトエディタの時計ボタンをクリックします。

「トリガーが追加されていません。今すぐ追加するにはここをクリックしてください」をクリックします

定期的に実行したい処理を選択します。サンプルでは検索流入を取ってくる「getData」の処理を定期実行させたいと思います。図のように指定することで毎日午前8-9時の間に検索流入のデータが自動的に更新されます。私のサイトは検索流入が低すぎて目も当てられないですね。。。

以上でGoogle Analyticsのデータを自動的にGoogleスプレッドシートにレポーティング仕組みが完成しました。metricsやsegmentを工夫すると検索ワードを取得できるようになったり、ランディングページを取得出来るようになります。Androidアプリの新規インストール数取得もできます。別途記事で紹介します。

基本的にはサンプルシートをコピーして実際に使ってもらうのが早いと思いますので、ぜひご活用ください。

参考サイト)GoogleAppsScriptでGoogleAnalyticsのAPIを利用

参考サイト)Googleアナリティクスの面倒なレポート作成をGoogleスプレッドシートで解消! (第1回)

 

-Google Analytics
-

執筆者: