こんにちは。CData Software Japanリードエンジニアの杉本です。
今回は去年発表されたばかりの新しいクラウドRPAサービス「Coopel」とCData Connectを使って、Google Analyticsのデータの取得を行う方法を紹介したいと思います。
Coopel とは?
Coopl は DeNA社が提供するクラウドベースのRPAサービスです。WebブラウザやExcel、SaaSなどのクラウドサービスの操作の自動化が実現できます。
coopel.ai
以下のようにUIでフローを作成していくだけで、かんたんに自動化処理を構成できます。
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で解消します。
CoopelはGoogle Analyticsに直接アクセスするのではなく、CData Connectが変換した汎用的なインターフェース(OData/CSV/HTML)を通じてデータアクセスを行います。
これにより、Web APIやUI上で関わるような認証処理や各種ロジックを意識せず、シンプルなデータアクセスを実現し、Coopelで行うべきデータ操作、レポートの作成やプロセスに集中できます。
最終的に作成するシナリオは以下のようなイメージとなります。
なお、今回のシナリオではGoogle Analytics を例に紹介していますが、CData で提供するKintoneやMarketo・HubSupot などのクラウドサービスにも同様に接続が可能です。
www.cdata.com
手順
必要なもの
- Coopelアカウント(こちらでトライアルを取得することができます。)
- Google アカウント(Google Analyticsを利用しているアカウント)
- CData Connect アカウント
CData Connect の設定
まず CData Connect (旧CloudHub) のアカウントを取得します。CData Connect はSaaS ですので、アカウントを取得したらインストールやホスティングなどなく、ブラウザからログインすることですぐに使用開始です。
早速ブラウザからCData Connect にログインします。「DATABASE」タブから仮想データベースを設定していきます。まずは接続するデータソースのアイコンをクリックします。
データソース接続画面が開くので、データソース毎の認証情報を入力します。Google Analytics の場合は対象のProfile のID を入力することでGoogle Analyticsデータにアクセスすることができます。
Connectをクリック後、別タブでGoogleへのログインおよびCData Connectのアクセス許可を求める画面が表示されるので、内容を確認して「許可」をクリックします。
次に「ENDPOINTS」タブで、このデータをどのインターフェースのエンドポイントして公開するかを選択します。デフォルトで、OData、MySQL wire protocol、TDS(SQL Server) wire Protocol がすべて有効になっています。
必要があればアクセスを許可する信頼されたIP アドレスを指定することも可能です。
今回はOData エンドポイントとしてGoogle Analytics データを公開しますので、「ODATA」
タブから公開するデータを選択します。先ほど接続時に作成したGoogleAnalyticsを公開するので、データベースとして選択します。
Google Analytics のリソースが一覧で表示されますので、利用するアプリにチェックを入れて選択します。
テーブル(アプリ)を選択したら、次はテーブルに含まれるカラム(フィールド)をどこまで公開するかをチェックします。またOData でアクセスできる処理をGET、POST、PUT、DELETE にチェックを入れることで指定します。
「API」タブでOData エンドポイントが生成されていることを確認します。CData Connect がOData エンドポイントのドキュメントを自動生成してくれます。
最後に公開したデータにアクセスできるユーザーとトークンを作成します。「USERS」タブからユーザーを作成するとトークンが生成されます。
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のアカウント情報が必要になるので、それぞれ入力します。
以下のように2月2日~2月9日まで、過去7日間のトラフィック集計がHTMLで取得できました。このデータにCoopelからアクセスします。
Coopel ワークスペースの作成
それでは、Coopel側の準備も進めていきましょう。
まず、Coopelにログインし、必要に応じて新しいワークスペースを作成します。
アカウント情報の設定
ワークスペースを作成後、CData Connectにアクセスするための認証情報をCoopel上に保存しましょう。
「シナリオアカウント設定」→「新規追加」→「その他のサービス」を選択します。
ここで、CData ConnectにアクセスするためのUserIDとPasswordを入力し、保存じます。Webサービス名には任意の名称を入力してください。
シナリオの作成
次にメインとなるシナリオを作成します。「シナリオ作成」をクリックし
任意の名称を入力します。
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認証アカウント」に指定します。
テーブルデータを取得
続いて、表示されたデータをCoopel上で扱いやすい形にするためにテーブルデータとして取得を行います。
Coopelアクションの一覧から「テーブルデータを取得」を配置し、先程作成した「URLにアクセス」をブラウザへ指定。
テーブルの要素として「table」を指定します。
これで、Coopel上でCData Connect経由で取得したデータを操作する準備が整いました。
あとはCoopelの様々なアクションを駆使して、フローを作成していきます。
ファイルの新規作成
今回はCData Connectから取得したデータをExcelファイルにまとめてみます。
最初に「ファイルの新規作成」アクションを使って、Excelファイルを作成します。
任意の名称でファイル名とシート名を指定してください。
シートをシート名で指定
次に「シートをシート名で指定」のアクションを配置して、先程作成したExcelファイルのシートを参照します。
セルにペースト
シートを開いたら、取得したデータを「セルにペースト」アクションで貼り付けます。
事前に作成した「対象シート」と、CDataConnectから取得した「テーブルデータ」を指定します。
書き込み対象セルは一番左上のセルから入力するので「A1」を指定しました。
ファイルを保存する
最後に作成したExcelファイルを「ファイルを保存する」アクションで保存します。
以上ですべてのシナリオが完成しました。
実行
それでは完成したシナリオを実行してみましょう。
Coopelでは画面右上の「実行」ボタンでシナリオを試すことができます。
正常に実行されると、以下のように「ファイルを保存する」アクションのダイアログに生成されたExcelファイルが表示されます。
これをダウンロードして、Excelで開いてみると、以下のようにCData Connect経由で取得したデータが入力されていることが確認できます。
おわりに
このようにCData Connectでは、様々なCoopelがアクセスしやすいように、様々なクラウドサービスのデータを汎用的なインターフェースで提供することが可能です。
Google Analytics以外にも様々なクラウドサービス接続を提供しているので、是非皆さんが利用しているサービスにつないで活用してみてください。
https://www.cdata.com/jp/connect/connectors/
関連コンテンツ