継続は力なり

タイトル通り定期的な更新を心掛けるブログです。

【データ収集】AppFlow を使って Google Analytics のブログのデータを S3 にアップロードする

xタダです.

先日,Amazon AppFlow がリリースされました.このサービスは,SaaSAWS へのデータフローをコーディングなしに自動化できます.AppFlow を使って S3 へデータをアップロードしてしまえば Athena や QuickSight で分析に使うことができます。この記事では,AppFlow の概要とこのブログの PV を解析と可視化するために Google Analytics を連携していきます.

Amazon AppFlow を使用すると、AWS のサービスと、Salesforce、Zendesk、ServiceNow などの SaaS アプリケーション間のデータフローを自動化できます。SaaS アプリケーション管理者、ビジネスアナリスト、および BI スペシャリストは、IT が統合プロジェクトを完了するのに数か月待つことなく、必要な統合のほとんどをすばやく実装できます。

aws.amazon.com

Google Analytics との連携

このブログのデータは Google Analytics に情報を収集しているのですが,AppFlow の連携先に Google Analytics をサポートしているため連携してみます.

事前準備

GCP 側で次のことを行います.

  • Analytics API を有効化
  • OAuth クライアント ID の認証情報を作る
    • ドキュメントでは内部向けを選択するようになっていますが,GSuite ユーザーじゃないと選択できないため外部向けを選択しています
  • OAuth 同意画面で ../auth/analytics.readonly と承認済みドメインとして amazon.com を追加する

docs.aws.amazon.com

発行されたクライアントID とクライアントシークレットを控えておきます.

f:id:sadayoshi_tada:20200522005207p:plain

AppFlow での設定

AppFlow のサービス画面でフローを作成ボタンを押して,データフローを作ります.フロー名を入力後,送信元に Google Analytics を指定し,先ほど控えたライアントID とクライアントシークレットを入力し,接続名を任意の名前を入力します.

f:id:sadayoshi_tada:20200522005834p:plain f:id:sadayoshi_tada:20200522005840p:plain

データの出力先の S3バケット名を指定し,フロートリガーセクションでオンデマンドで実行を選択して次のページにいきます. f:id:sadayoshi_tada:20200522005848p:plain

手動でフィールドをマッピングするを選択した状態で,マッピングする Google Analytics のデータフィールドを選択します.今回は日付と PV のデータを取りたいので Time:DIMENSION: ga:datePage Tracking: METRIC: ga:pageviewsマッピングしました.

f:id:sadayoshi_tada:20200522010337p:plain

S3 に出力確認

作成したデータフローでフローを実行すると,オンデマンドで S3 へのデータアップロードが行われます.

f:id:sadayoshi_tada:20200522010904p:plain f:id:sadayoshi_tada:20200522010915p:plain

アップロードされたデータは以下のようなファイルでアップロードされます.中身をみると,下記のJSON データになっていました.今回はオンデマンドでデータを連携しましたが,スケジュールも可能なので定期的に S3 にデータを連携して素早く分析や可視化をしていけそうです.

S3バケットに上がっているファイル f:id:sadayoshi_tada:20200522011122p:plain

データの詳細

{
  "reports": [
    {
      "columnHeader": {
        "dimensions": [
          "ga:date"
        ],
        "metricHeader": {
          "metricHeaderEntries": [
            {
              "name": "ga:pageviews",
              "type": "INTEGER"
            }
          ]
        }
      },
      "data": {
        "rows": [
          {
            "dimensions": [
              "20200512"
            ],
            "metrics": [
              {
                "values": [
                  "92"
                ]
              }
            ]
          },
          {
            "dimensions": [
              "20200513"
            ],
            "metrics": [
              {
                "values": [
                  "362"
                ]
              }
            ]
          },
          {
            "dimensions": [
              "20200514"
            ],
            "metrics": [
              {
                "values": [
                  "567"
                ]
              }
            ]
          },
          {
            "dimensions": [
              "20200515"
            ],
            "metrics": [
              {
                "values": [
                  "275"
                ]
              }
            ]
          },
          {
            "dimensions": [
              "20200516"
            ],
            "metrics": [
              {
                "values": [
                  "71"
                ]
              }
            ]
          },
          {
            "dimensions": [
              "20200517"
            ],
            "metrics": [
              {
                "values": [
                  "95"
                ]
              }
            ]
          },
          {
            "dimensions": [
              "20200518"
            ],
            "metrics": [
              {
                "values": [
                  "167"
                ]
              }
            ]
          }
        ],
        "totals": [
          {
            "values": [
              "1629"
            ]
          }
        ],
        "rowCount": 7,
        "minimums": [
          {
            "values": [
              "71"
            ]
          }
        ],
        "maximums": [
          {
            "values": [
              "567"
            ]
          }
        ]
      }
    }
  ]
}

まとめ

AppFlow を使って Google Analytics のデータを S3 にアップロードすることができました.S3 にデータ置けたので次のステップとして Athena や QuickSight を使って分析と可視化も行なっていきたいです.