LoginSignup
2
2

More than 3 years have passed since last update.

「Amazon AppFlow」を利用して、Google AnalyticsのデータをS3に保存してみた

Posted at

AWSでSaaSアプリケーションのデータをAWS内に取り込むサービスが発表されました。

私が注目したのは、Google AnalyticsのデータをS3に簡単に取り込めるようになったことです。今までは、Google AnalyticsのデータをS3に落としてこようとすると、Google AnalyticsのAPIを利用するか、360を契約してBigQueryで引っ張ってくるしかありませんでした。

私の会社はGCPが使えないので、今まではAPIを利用するしかありませんでした。そこで登場したのがAmazon AppFlowです。早速設定してみました。

公式での使い方をチェック

Requirements for Amazon AppFlow - Google Analyticsから翻訳して引用します。

Google API Console at https://console.developers.google.com にログインして、下記の手順を行う

Analytics APIをアクティベイトする

新しいアプリをAppFlowとして作成する。ユーザーの種類は"内部"にセット。スコープに"read only access"を追加。承認済みドメインに"amazon.com"を追加

OAuth 2.0 クライアント IDを作成する。アプリケーションの種類は"ウェブ アプリケーション"。承認済みの JavaScript 生成元に"https://console.aws.amazon.com"をセット。承認済みのリダイレクト URIに"https://ap-northeast-1.console.aws.amazon.com/appflow/oauth"をセット

Amazon AppFlowにクライアントIDとクライアントシークレットをセット。Googleのログインページにリダイレクトされる。okを押すと、Amazon AppFlow permissionsに、Google Analyticsのアカウントへのアクセスが与えられる。

簡単そうですね、それでは実際に手を動かしてやってみます。

GCPの設定

Amazon AppFlowというプロジェクトを作ります。
image.png

Google Analytics APIとGoogle Analytics Reporting APIを有効化します。説明ではAnalytics APIだけですが、Analytics Reporting APIも有効化しないとAWS側でエラーになります。
image.png

image.png

OAuth同意画面でユーザーの種類を"外部"にします。(注)公式では"内部"となっていますが、"内部は"G suiteユーザーしか選択できません。私は"外部"でAppFlowが動作しましたが、動作しない方もいる可能性もあります。
image.png

また、OAuth同意画面でスコープと承認済みドメインをセットします。
image.png

スコープの選択画面で、Google Analyticsと、 Google Reporting API、2つ出てきますが、どちらのreadonlyを選んでもスコープは同じなので、問題ないです。
image.png
image.png

認証情報で、承認済みのJavaScript生成元、承認済みのリダイレクトURIに値をセットします。承認済みのリダイレクトURIは、東京リージョンであれば"https/://ap-northeast-1.console.aws.amazon.com/appflow/oauth"でokです。
image.png

クライアントID、クライアントシークレットをメモします。
image.png

AppFlowの設定

AppFlow側の設定をしていきます。
image.png

GCPで作成したクライアントID、クライアントシークレットをセットします。
image.png

このような形になります。
image.png

Dimensions & Metrics Explorerで欲しいディメンションとメトリックスを選択していきます。今回は日付とPVを取得することにします。

Google Analyticsはスコープの概念があり、これを考慮しないと誤った値を取得してきてしまいます。AppFlowには、全てのディメンション、メトリックスをマッピングという機能がありましたが、値はおかしくなる気がするので注意が必要です。
image.png

フィルタで取得する範囲を絞ります。
image.png

正常にフローが作成されました。
image.png

実行

フローを実行します。
image.png

結果

S3にJSONの形で保存されます。
image.png

まとめ

AppFlowを利用して簡単にS3に引っ張ってくることができました。Goole Analyticsの他にもSalesforce、Marketoと面白そうなソースを取得してくることができます。これからも増えてくるのでしょうか。

AWSにSaaSのコネクターが増えてくれば、AWSだけで何とかなっていきそうですね。

参考リンク

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2