クラウドRPA CoopelからGoogle Analyticsのデータにアクセス:CData Connect

f:id:sugimomoto:20210209160637p:plain

こんにちは。CData Software Japanリードエンジニアの杉本です。

今回は去年発表されたばかりの新しいクラウドRPAサービス「Coopel」とCData Connectを使って、Google Analyticsのデータの取得を行う方法を紹介したいと思います。

Coopel とは?

Coopl は DeNA社が提供するクラウドベースのRPAサービスです。WebブラウザやExcel、SaaSなどのクラウドサービスの操作の自動化が実現できます。

coopel.ai

f:id:sugimomoto:20210209160610p:plain

以下のようにUIでフローを作成していくだけで、かんたんに自動化処理を構成できます。

f:id:sugimomoto:20210209160620p:plain

CData Connectとは?

CData Connect は、SaaS ベースで提供されるデータハブサービスです。

Salesforce、NetSuite、Dynamics、Marketo、kintone など多様なSaaS にBI、アナリティクス、iPaaS、ノーコード開発プラットフォームからアクセスするための仮想エンドポイントです。

連携方法が異なるSaaS をMySQL、SQL Server、OData の3種類のインターフェースに仮想化することで、データ連携をシンプルに実現します。"SQL as a Service" といっていいかもしれません。

www.cdata.com

シナリオ

今回はCoopel と CData Connectを組み合わせたシンプルな連携アプローチとして、Google Analyticsのデータからトラフィックレポートを生成して、Excelファイルで保存するフローを作成してみます。

通常CoopelはRPA機能として、ブラウザにアクセスしたユーザー操作を擬似的に再現し、各種クラウドサービスのデータを取得ます。

しかしながら、Google AnalyticsのWebSiteは動的なコンテンツや処理を多く含むため、RPAやスクレイピングでデータを取得したり、処理したりすることが難しいWebアプリになっており、一筋縄でデータを取得することができません。

そのボトルネックをCData Connectで解消します。

f:id:sugimomoto:20210209160627p:plain

CoopelはGoogle Analyticsに直接アクセスするのではなく、CData Connectが変換した汎用的なインターフェース(OData/CSV/HTML)を通じてデータアクセスを行います。

f:id:sugimomoto:20210209160637p:plain

これにより、Web APIやUI上で関わるような認証処理や各種ロジックを意識せず、シンプルなデータアクセスを実現し、Coopelで行うべきデータ操作、レポートの作成やプロセスに集中できます。

最終的に作成するシナリオは以下のようなイメージとなります。

f:id:sugimomoto:20210209160647p:plain

なお、今回のシナリオではGoogle Analytics を例に紹介していますが、CData で提供するKintoneやMarketo・HubSupot などのクラウドサービスにも同様に接続が可能です。

www.cdata.com

f:id:sugimomoto:20210209160653p:plain

手順

必要なもの

  • Coopelアカウント(こちらでトライアルを取得することができます。)
  • Google アカウント(Google Analyticsを利用しているアカウント)
  • CData Connect アカウント

CData Connect の設定

まず CData Connect (旧CloudHub) のアカウントを取得します。CData Connect はSaaS ですので、アカウントを取得したらインストールやホスティングなどなく、ブラウザからログインすることですぐに使用開始です。

早速ブラウザからCData Connect にログインします。「DATABASE」タブから仮想データベースを設定していきます。まずは接続するデータソースのアイコンをクリックします。

f:id:cdatasoftware:20201014212512p:plain

データソース接続画面が開くので、データソース毎の認証情報を入力します。Google Analytics の場合は対象のProfile のID を入力することでGoogle Analyticsデータにアクセスすることができます。

f:id:sugimomoto:20210209160706p:plain

Connectをクリック後、別タブでGoogleへのログインおよびCData Connectのアクセス許可を求める画面が表示されるので、内容を確認して「許可」をクリックします。

f:id:sugimomoto:20210209160712p:plain

次に「ENDPOINTS」タブで、このデータをどのインターフェースのエンドポイントして公開するかを選択します。デフォルトで、OData、MySQL wire protocol、TDS(SQL Server) wire Protocol がすべて有効になっています。

必要があればアクセスを許可する信頼されたIP アドレスを指定することも可能です。

f:id:cdatasoftware:20201014212922p:plain

今回はOData エンドポイントとしてGoogle Analytics データを公開しますので、「ODATA」 タブから公開するデータを選択します。先ほど接続時に作成したGoogleAnalyticsを公開するので、データベースとして選択します。

f:id:sugimomoto:20210209160717p:plain

Google Analytics のリソースが一覧で表示されますので、利用するアプリにチェックを入れて選択します。

f:id:sugimomoto:20210209160722p:plain

テーブル(アプリ)を選択したら、次はテーブルに含まれるカラム(フィールド)をどこまで公開するかをチェックします。またOData でアクセスできる処理をGET、POST、PUT、DELETE にチェックを入れることで指定します。

f:id:sugimomoto:20210209160729p:plain

「API」タブでOData エンドポイントが生成されていることを確認します。CData Connect がOData エンドポイントのドキュメントを自動生成してくれます。

f:id:sugimomoto:20210209160735p:plain

最後に公開したデータにアクセスできるユーザーとトークンを作成します。「USERS」タブからユーザーを作成するとトークンが生成されます。

f:id:cdatasoftware:20201014212650p:plain

CData Connectの接続テスト

CData Connectの準備が整ったら、一度データアクセスを行ってみましょう。

Cdata ConnectはODataとして汎用的なWeb APIを提供していますが、実はCSVやHTMLなどのフォーマットにも対応しており、各種アプリケーションが使いやすいインターフェースを提供することができます。

例えばURLの末尾に「api.rsc/GoogleAnalytics1_Traffic?@HTML」のように@HTMLを付与することで、HTML Table形式でデータが取得できます。

また、Google Analyticsのデータは様々な指標とディメンションでデータを取得することができます。例えば、ブラウザごとのセッション数や日毎の新規ユーザー数等。

CData Connectではそういった集計処理も柔軟に組むことができるようになっています。例えば、日別(Date)のユーザー数、新しいセッション数、新規ユーザー数のトラフィックを集計したい場合は以下のようなクエリを指定します。

「$select=Date,Users,PercentNewSessions,NewUsers」

今回はここに過去7日間範囲の指定も加えて、以下のようなクエリを作成しました。これをブラウザに貼り付けることでデータが確認できます。

https://www.CDATACONNECT_DOMAIN.net/TENANTID/api.rsc/GoogleAnalytics1_Traffic?@HTML&$select=Date,Users,PercentNewSessions,NewUsers&$filter=StartDate eq '7daysAgo'」

ブラウザアクセスにはCData Connectのアカウント情報が必要になるので、それぞれ入力します。

f:id:sugimomoto:20210209160747p:plain

以下のように2月2日~2月9日まで、過去7日間のトラフィック集計がHTMLで取得できました。このデータにCoopelからアクセスします。

f:id:sugimomoto:20210209160752p:plain

Coopel ワークスペースの作成

それでは、Coopel側の準備も進めていきましょう。

まず、Coopelにログインし、必要に応じて新しいワークスペースを作成します。

f:id:sugimomoto:20210209160802p:plain

アカウント情報の設定

ワークスペースを作成後、CData Connectにアクセスするための認証情報をCoopel上に保存しましょう。

「シナリオアカウント設定」→「新規追加」→「その他のサービス」を選択します。

f:id:sugimomoto:20210209160810p:plain

ここで、CData ConnectにアクセスするためのUserIDとPasswordを入力し、保存じます。Webサービス名には任意の名称を入力してください。

f:id:sugimomoto:20210209160815p:plain

シナリオの作成

次にメインとなるシナリオを作成します。「シナリオ作成」をクリックし

f:id:sugimomoto:20210209160820p:plain

任意の名称を入力します。

f:id:sugimomoto:20210209160826p:plain

URLにアクセス

前述の通り、CoopelからGoogle Analyticsのデータを取得するために、CData Connectを経由します。Coopelでは、ブラウザアクセスと同じような方法でCData Connectにアクセスするので、「URLにアクセス」のアクションを使って、データ取得を行います。

Coopelのアクション一覧から「URLにアクセス」を配置し、先程検証した以下の「URL」

https://www.CDATACONNECT_DOMAIN.net/TENANTID/api.rsc/GoogleAnalytics1_Traffic?@HTML&$select=Date,Users,PercentNewSessions,NewUsers&$filter=StartDate eq '7daysAgo'

および、CData Connectのアカウントを「Basic認証アカウント」に指定します。

f:id:sugimomoto:20210209160833p:plain

テーブルデータを取得

続いて、表示されたデータをCoopel上で扱いやすい形にするためにテーブルデータとして取得を行います。

Coopelアクションの一覧から「テーブルデータを取得」を配置し、先程作成した「URLにアクセス」をブラウザへ指定。

テーブルの要素として「table」を指定します。

f:id:sugimomoto:20210209160839p:plain

これで、Coopel上でCData Connect経由で取得したデータを操作する準備が整いました。

あとはCoopelの様々なアクションを駆使して、フローを作成していきます。

ファイルの新規作成

今回はCData Connectから取得したデータをExcelファイルにまとめてみます。

最初に「ファイルの新規作成」アクションを使って、Excelファイルを作成します。

任意の名称でファイル名とシート名を指定してください。

f:id:sugimomoto:20210209160846p:plain

シートをシート名で指定

次に「シートをシート名で指定」のアクションを配置して、先程作成したExcelファイルのシートを参照します。

f:id:sugimomoto:20210209160853p:plain

セルにペースト

シートを開いたら、取得したデータを「セルにペースト」アクションで貼り付けます。

事前に作成した「対象シート」と、CDataConnectから取得した「テーブルデータ」を指定します。

書き込み対象セルは一番左上のセルから入力するので「A1」を指定しました。

f:id:sugimomoto:20210209160859p:plain

ファイルを保存する

最後に作成したExcelファイルを「ファイルを保存する」アクションで保存します。

以上ですべてのシナリオが完成しました。

f:id:sugimomoto:20210209160906p:plain

実行

それでは完成したシナリオを実行してみましょう。

Coopelでは画面右上の「実行」ボタンでシナリオを試すことができます。

正常に実行されると、以下のように「ファイルを保存する」アクションのダイアログに生成されたExcelファイルが表示されます。

f:id:sugimomoto:20210209160913p:plain

これをダウンロードして、Excelで開いてみると、以下のようにCData Connect経由で取得したデータが入力されていることが確認できます。

f:id:sugimomoto:20210209160919p:plain

おわりに

このようにCData Connectでは、様々なCoopelがアクセスしやすいように、様々なクラウドサービスのデータを汎用的なインターフェースで提供することが可能です。

Google Analytics以外にも様々なクラウドサービス接続を提供しているので、是非皆さんが利用しているサービスにつないで活用してみてください。

https://www.cdata.com/jp/connect/connectors/

f:id:sugimomoto:20210209160924p:plain

トライアル・お問い合わせ

関連コンテンツ