トレジャーデータ(Treasure Data)ブログ

トレジャーデータ(Treasure Data)ブログです。

本サイトは移転しました。新サイトにリダイレクトします。

Data Connector for Google Analytics Reporting 徹底解説 その4

前回まで

4. Data Connector for Google Analytics Reporting

4-1. Data Connector とは

「Data Connector」はトレジャーデータが提供するデータ収集ツールの一つで,ストリーミング型収集ツール:「Fluentd」と双対をなすバルク型の収集ツールです。

Data Connector は様々なデータソースをインプットとしており,トレジャーデータアカウントにエクスポートするデータ収集ツールですが,その最大の特徴はインプットデータソースを「プラグイン」という YAML 形式の設定ファイルで記述することによって汎用性の高いツールとなっている点です。以下は存在するプラグイン(インプットデータベース)のリストです。これらは設定ファイルの内容以外では同様の Data Connector コマンドを利用してトレジャーデータに格納することができます。

過去のブログで「Amazon S3」と「MySQLプラグインについてご紹介していますのでこちらもご参照ください!

4-2. Data Connector for Google Analytics Reporting

4-2-1. plugin テンプレートの準備

Data Connector では plugin と呼ばれる YAML 形式の設定ファイルでインプットデータ情報を記述します。「in:」以下のインデントでインプット先の情報,「out:」以下のインデントでエクスポート先の情報を記述します。「out:」の方はトレジャーデータアカウントとなるので詳細な記述は必要ありません。

「in:」以下のインデントの情報を記述していきましょう。

今回は,第2章で紹介したトレジャーデータの「Main TD Data」View を指定するプラグインをテンプレートとしてご紹介します:

gist.github.com

  • 「type」は google analytics となりますが,Amazon S3MySQL といった他のあらゆる Data Connector ファミリーでも,この type の値を書き換える(必要ならば接続情報などを追記)だけです。
  • json_key_content」は第 1 章で Service Account を作成した際に作成された json ファイルの内容そのままになっています。
  • 「view_id」:第 2 章で特定した,GA 内の一つの View になっています。
  • 「start_date」:データの取得期間のスタートを  "YYYY-MM-DD" フォーマットで指定します。(default: 7 days ago)
  • 「end_date」:データの取得期間のエンドを  "YYYY-MM-DD" フォーマットで指定します。(default: 1 day ago)
  • 「time_series」:TD にインポートする際の「time」カラムのためのタイムスタンプを取得するために存在します。ここに指定できるのは「date」または「dateHour」です。time_series で1つディメンジョンを消費することになるので,以下の dimensions で設定できるディメンジョン数は6個までです。
  • 「dimension」「metrics」:GA から取得する Dimension カラム,Metric カラムを記述します。
  • 「out:」に唯一記述された,「mode: append」は既存のテーブルに追記するオプションです。置き換える場合は「mode:replace」とします。

4-2-2. preview コマンドの実行

まずは td コマンドが v0.11.9 以上であることを確認します。実際に少しデータを取得してみましょう。Data Connector の挙動を確認するための preview コマンドは,インプットデータソースの少しのデータを取得します。

gist.github.com

↑ ここで取得できたテーブルの項目「date_hour」,「browser」,「visits」,「pageviews」はいずれもプラグインの後半に記述されていた項目でした。この結果から類推されるように,プラグイン内の「time_series」でトレジャーデータテーブル内で「time」カラムと見なす項目を指しています。これに利用できるのは「ga:date」と「ga:dateHour」の2つに限定されることに注意して下さい。

他にどんな項目が取得できるかというと,実は非常に多くの項目があります。

f:id:doryokujin:20161006121810p:plain

Google Reporting API V4 ガイド内における「Dimensions & Metrics Explorer」が取得可能な項目の一覧です。Data Connector のプラグインでは,ここに記述のあるものを dimensions および measures に設定すれば,GA 上で集計されたデータを取得できるというわけです!わくわくしてきましたね。

例えば追加の項目として,  dimensions に "ga:keyword"を,metrics に "ga:organicSearches"を追加して preview してみましょう。

gist.github.com

4-2-3. issue コマンドの実行

さて,本章の最後にトレジャーデータアカウントのテーブルとしてインポートするコマンドをご紹介します。preview コマンドで検証が完了したら, issue コマンドによってデータを取得してトレジャーデータにバルクロードするジョブを実行させます。

gist.github.com

connector:issue コマンド一つでGAのデータをトレジャーデータにバルクロードできます。まずは db名およびtable名の存在を確認しましょう。tableは --auto-create-table オプションで存在していなければ自動作成できます。time カラムはトレジャーデータの中では重要な項目ですが、ここに設定ファイル内で time_series 項目に指定したカラムを指定します。

f:id:doryokujin:20161006122333p:plain

↑ issue コマンドで実行したジョブは,Web 管理画面からも参照することができます。Running のままでジョブが進行しない時は,ジョブ詳細画面に推移してログメッセージを読みましょう。例えば上限以上の dimension や metric を設定していれば、エラー&リトライを繰り返している事が判明します。こういったマイナーエラーは issue コマンドの前に preview コマンドで試行することで無くすことができます。

設定ファイルを書き換えた際は preview → issue コマンドの順序を守りましょう。

f:id:doryokujin:20161006122413p:plain

↑ 今回の issue コマンドによって,978件のレコードが master_td_data_82405714  table に追加されました。これは設定ファイル内で,output のモードを「append」にしていたからです。「replace」にするとテーブルが置き換えられることになります。

4-3. Connector UI ( Web UI ) から Data Connector を利用する

4-2. では,Data Connector をコマンドラインから実行していましたが,トレジャーデータの最新のWeb管理コンソールでは,コマンドラインを用いずとも,Connector UI 上から,様々なデータソースからのインポートが可能になっています。

f:id:doryokujin:20161006125218p:plain

↑ 既に多くの Data Source が,Connector UI に記載されています。この画面を「Source Catalog」と呼びます。

4-3-1. GA コネクションの追加

f:id:doryokujin:20161006125257p:plain

↑ リストの中から「Google Analytics」を選択します。

f:id:doryokujin:20161006125326p:plain

↑ 始めに,3-3. で得た View ID と,2-2-2. で得た Service Account の Privacy Key の情報を記入します。

※ Private Key は一番外側の括弧:{ … } まで入れてください。

f:id:doryokujin:20161006125511p:plain

↑ コネクション名を設定して,GA 向けのコネクションが生成されました。

f:id:doryokujin:20161006125546p:plain

↑ 管理コンソールでは,あらゆるデータソースとの接続情報を「My Connection」にて管理しています。今回 GA 様に作ったコネクションも,「My Connection」に追加された事がわかります。

4-3-2. Transfer: Dimensions, Metcis の追加

次に先ほど作成した GA コネクションで「NEW TRANSFER」ボタンを押します。

f:id:doryokujin:20161006125644p:plain

現れた Transfer ダイアログから Dimensions,Metrics を設定することができます。Dimension は Time Series の値も含めて7個まで,Metrics は10個まで指定できます。

4-3-3. Transfer: Preview

f:id:doryokujin:20161006125808p:plain

指定した Dimension, Metric での preview 結果10件を確認します。問題なければ次に進みます。

ここで,データの取得期間はデフォルトで

  • 「start_date」:7日前
  • 「end_date」:1日前

ですが,任意の取得期間を設定したい場合には「NEXT」に進む前に「ADVANCES SETTING」ボタンを押します。

f:id:doryokujin:20161006125833p:plain

4-3-4. Transfer: to

f:id:doryokujin:20161006125900p:plain

データ転送先の database名 / table名 を選択肢,「Append(追記)」か「Replace(置換)」を選択します。Partition key seed はトレジャーデータの中で「time」カラムとして扱われる重要な項目です。GA コネクターの場合は time_series 項で指定した date か dateHour となりますのでそちらを選ぶようにしてください。

4-3-5. Transfer: When

f:id:doryokujin:20161006125942p:plain

最後に実行タイミングを設定します。一回だけのの実行なら「Once now」を,特定のインターバルでの実行なら「Repeat...」を選択します。

4-3-6. Transfer: Start

f:id:doryokujin:20161006130021p:plain

「START TRANSFERT」を押すと,「My Input Transfer」 画面に遷移し,実行された Transger のログを見ることができます。先ほど実行した transfer をクリックすると,データ転送先の Table に飛ぶことができます。

データがインポートされた事が確認できました。

f:id:doryokujin:20161006130044p:plain

Data Connector for Google Analytics Reporting 徹底解説 その3

前回まで

3. Google Analytics 上での設定

3-1. ログイン

次に GA にログインします。

3-2. Google APIs のサービスアカウントIDの接続許可

f:id:doryokujin:20161006115606p:plain

「Admin」→「User Management」より,このGAにアクセス許可のあるユーザーを登録します。先ほど作成したサービスアカウントID(今回の例では treasure-data@ga-to-td.iam.gserviceaccount.com )に「Read & Analyze」以上の権限を付与します。

これでサービスアカウント ID からのAPI を通じてのデータ取得が許可されました。次に GA のどのレポートを取得するのか, View ID を指定します。

3-3. データ取得する View の特定

GA からのレポートデータの取得には,まず取得対象の「View ID」を特定する必要があります。

f:id:doryokujin:20161006115642p:plain

↑ 今回は,「Treasure Data」> 「Main Site Data」>「TD Japanese Site」の View を例にして進めて行きます。※以後表示している指標値は全てダミー値です

f:id:doryokujin:20161006115717p:plain

↑ 「TD Japanese Site」(値はダミーです)の Reporing Overview です。このサイトのあらゆる GA Report で使われている 項目(KPI)を Data Connector でデータとして取得することができます。

3-4. View ID の取得

「TD Japanese Site」の View ID を取得するために,Admin メニューに入ります。

f:id:doryokujin:20161006115818p:plain

↑ GA の概念では,

Account:「Treasure Data」> Property:「Main Site Data」> View:「TD Japanese Site」

という階層を持っており,View ID とは一番下の階層に与えられるユニークな ID です。「View Settings」をクリックします。

f:id:doryokujin:20161006115859p:plain

↑ View ID はView Settings内のBasic Setting内で確認することができます。今回取得対象となっている View ID は「82405714」となります。

3-5. 終わりに

Data Connector で取得したい GA Report の View ID を得ることができましたね。前章で GA 用のサービスアカウントを設定しましたが,Data Connector コマンドを通じて、このアカウントがこの View ID におけるあらゆるデータ項目を取得して,かつTreasure Data Serviceに格納することになります。次章で紹介する「Data Connector for Google Analytics Reporting」は,この一連の試みを Data Connector という一つの枠組み内で完結することができる、大変に便利なインポートプラグインです。

Data Connector for Google Analytics Reporting 徹底解説 その2

前回まで

2. Google APIs 上での設定

2-1. ログイン

f:id:doryokujin:20160912151147p:plain

↑ 適切な Google アカウントで Google APIs にログインします。「適切なアカウント」とは,取得したい Google Analytics に API を通じてアクセスすることが許されているアカウントを意味します。

2-2. プロジェクトの作成

2-2-1. Project 新規作成

f:id:doryokujin:20160912151211p:plain

↑ Projects ボタンから「Create project」を選択し,Data Connector で利用するためのプロジェクトを作成します。

f:id:doryokujin:20160912151225p:plain

↑ 今回は「GA to TD」というプロジェクト名を与えています。

2-2-2. Service Account の新規作成

以下,「GA to TD」プロジェクト下で設定を進めて行きます。

f:id:doryokujin:20160912151252p:plain

↑ まずは「Service Account」を新規作成します。このアカウントは後ほど GA への API によるアクセスを許可するアカウントとして利用されます。この「Service」アカウントは,特定のプロジェクト内で作成されるアカウントであり,Google APIs にログインした一般の Google アカウントとは異なる概念のものです。

f:id:doryokujin:20160912151318p:plain

↑ 今回は「treasure-data」というサービスアカウントを作成します。オプションの選択肢はどちらも指定しておきます。「Create」ボタンを押すと,本サービスアカウントにおける認証情報が JSON ファイル(今回の例では GA to TD-18f4c65b19b3.json という名前)としてダウンロードされます。

↑ このJSONファイルの private key 情報は後の Embulk の設定ファイル内でごそっと利用するので大切に保管するようにしてください。

f:id:doryokujin:20160912151654p:plain

↑ また,同時に「treasure-data@ga-to-td.iam.gserviceaccount.com」というサービスアカウントIDが作成されます。後の GA の管理画面で,この ID に API アクセス許可の権限を与えることになります。

2-3. 使用する Analytics API を有効にする

2-3-1. API の検索

f:id:doryokujin:20160912151718p:plain

↑ 次にこのプロジェクトで使用する API を有効にしていきます。今回は GA に関係する2つのAPIを登録します。

「Library」の検索バーから

  • Analytics API
  • Analytics Reporting API V4

を検索し,この2つを有効にします。

2-3-2. API の有効化

f:id:doryokujin:20160912151745p:plain

↑ それぞれの API リンクに入ってこの API を「Enable」にします。

f:id:doryokujin:20160912151833p:plain

↑ API を有効にすると,「Dashboard」メニューから,登録された APIを一覧で参照することができ,かつ API のモニタリングがその時点から開始されます。

2-4. 終わりに

Google APIs で設定する項目について紹介しました。次にこの作成したサービスアカウントIDで,取得対象のGoogle Analytics のデータにアクセスできるように,権限を追加していきます。