[Talend] Google Analyticsへ接続・データ取得する

2018.03.22

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Talendにはさまざまなコンポーネントがありますが、今回はGoogle Analyticsのコンポーネントを使って動作を検証してみたいと思います。

検証した環境

  • MacOS High Sierra
  • Talend Open Studio 6.4.1 for Data Integration

前準備

Talendを使ってGoogle Analyticsに接続するには以下の情報が必要になります。

  1. Service Account EMail
  2. Key File (p12ファイル)
  3. Google Analyticsへ接続するための設定
  4. Google Analyticsへ接続するためのTalendコンポーネントのインストール

Google Developer Consoleでアカウントを発行

※既にお持ちの方は以下スキップでOKです

Googleアカウントをお持ちで無い方はまず作成します。

作成が終わったらGoogle Developers Consoleにアクセスしてログインします。

作成直後だと以下のような利用規約確認画面が表示されるので同意して次に進みます。

プロジェクトの作成をする

プロジェクトの作成をクリックし必要な情報を入力します。

サービスアカウントを作成する。

プロジェクトが作成できたら、左メニューにある「認証情報」をクリックします。

認証情報を作成をクリックすると下記のような選択肢が表示されます。

サービスアカウントキーを選択して、次に進みます。

サービスアカウント名を任意に指定すると自動的にサービスアカウントIDも設定されます。

サービスアカウントに対する役割を追加します。「編集者」と「閲覧者」を選択します。

キーのタイプがp12になっていることを確認して作成をします。作成すると以下のような画面が表示されp12ファイルがローカルPCにダウンロードされます。

このp12ファイルは大切なので、しっかり管理しましょう。

作成したサービスアカウントはいつでも確認できます。

Analytics API及びGoogle Analytics Reporting APIを有効にする

APIとサービスの有効化をクリックします。

まずはAnalytics APIを有効にします。

同じ手順でGoogle Analytics Reporting APIも有効化します。

Google Analytics側の設定

まずはGoogle Analyticsログインし、管理に移動します。

ユーザ管理をクリックし、「新規ユーザを追加」します。

作成したユーザを確認。

ここまでで前準備の作業は完了です。

tGoogleAnalyticsInputのコンポーネントをインストール

標準ではGoogle Analyticsへの接続コンポーネントが無かったようなので、Talend Exchangeで見つけたので、コンポーネントをインストールしました。

tGoogleAnalyticsInputコンポーネントのインストールはTalend Open Studio for Data Integrationから実施しました。

Exchangeをクリックすれば画面が遷移するんですが、Available Extensionsの一覧出てくるまでは非常に時間がかかるので、気長に待つ必要があります。

レスポンスが戻ってくるといっぱいコンポーネントが出て来るので、以下のように検索でGoogleと入れて右のアイコンクリックすると該当するコンポーネントに絞られて表示されます。

tGoogleAnalyticsInputの view/download をクリックします。

Installのボタンがあるので、クリックするとコンポーネントがインストールされます。

Talendのジョブ作成画面に戻ってコンポーネントがインストールされているか確認します。

※私は1回でtGoogleAnalyticsInputコンポーネントがインストールされましたが、他の方がインストールしようとした時は何度かトライしないとうまくインストールされなかったと報告を受けました。

※どうしてもうまくtGoogleAnalyticsInputコンポーネントがインストールされない場合はTalend Exchangeから直接ダウンロード&解凍で以下のように対応することも可能。

Talendのウィンドウメニュー/Preferenceからウィンドウを開き下記のユーザコンポーネントフォルダを任意し作成し、そのフォルダ配下に解凍したファイル群を置けば使えるようになります。

これでtGoogleAnalyticsInputコンポーネントが利用できることが確認できたので、Talend側の前準備も完了しました。

Talendのサンプルジョブを作ってみる

さっそくtGoogleAnalyticsInputコンポーネントを配置。プロパティを見てみると以下のようになっています。

名称 設定する値
Application Name 任意でOK。私は分かりやすいようにGoogle Developer Consoleで作ったプロジェクト名を指定。
Authentication Method Service Accountを選択
Key File(*.p12) 今回作成したp12ファイルを指定
View ID Google Analyticsのビュー設定/基本設定で表示されるビューIDを指定
API Version 環境に合わせて選択(今回はVersion3を選択)
Start Date 任意の日付を指定
End Date 任意の日付を指定

DimensionsやMetricsについては必要に応じて指定します。どんなDimensionやMetricsがあるかは本家のページに一覧表があるのでそちらを参照すると分かりやすいかと思います。Expand Allにチェックつければもっと見やすくなります。

Talendジョブを作ってGoogle Analyticsのデータ取得をしてみる

最低限のコンポーネントを配置して動作確認します。

tGoogleAnalyticsInputtFileOutputDelimitedの2つでシンプルにジョブを作成します。

tGoogleAnalyticsInputの設定は以下の感じで設定

tFileOutputDelimitedを利用するので、スキーマの定義もします。

Talendジョブを実行してみる

ジョブの定義も終わったので早速実行してみます。

エラーもなく無事処理が完了したようです。

93,000行該当したようで少し時間がかかりました。(約49秒)

実際にtFileOutputDelimitedで書き出されたファイルの内容は以下のような感じでした。(最初の数行ですが)

pagepath,Language,fullReferrer,referralPath,browser,pageValue,entrances,entranceRate,pageviewsPerSession,uniquePageviews,timeOnPage,avgTimeOnPage,exits,exitRate
/,c,(direct),(not set),Safari,2,0.0,2,100.0,1.0,2,0.0,0.0,2
/,de,(direct),(not set),Chrome,5,0.0,5,100.0,1.0,5,0.0,0.0,5
/,de,github.com/,/,Chrome,2,0.0,2,100.0,1.0,2,0.0,0.0,2
/,de-ch,(direct),(not set),Safari,38,0.0,27,71.05263157894737,1.4074074074074074,31,568.0,23.666666666666668,14
/,de-ch,google,(not set),Safari,2,0.0,2,100.0,1.0,2,20.0,10.0,0
/,en,google,(not set),Firefox,5,0.0,5,100.0,1.0,5,32.0,32.0,4
/,en-ca,(direct),(not set),Safari,4,0.0,4,100.0,1.0,4,20.0,5.0,0

まとめ

今回はGoogle Analyticsのデータ取得を試してみましたが(前準備は少し面倒ですが)、取得したいデータ(DimensionsやMetrics)を変えたいとなってもコンポーネントのプロパティ定義部分を変更してあげるだけですぐ対応できるので便利ですね。(スキーマ定義の変更も忘れずに)
日付の取得開始と取得終了は引数にして動くようにしておけば日々の差分データ等の取得にも使えると思うので、なかなか使い勝手の良いコンポーネントだなと思います。