CMS とGA4 のデータを分析基盤にETL。コンテンツマーケティングに活用する方法

by 加藤龍彦 | 2023年11月02日 | 最終更新日: 2023年12月07日

左側にCMSとGoogle Analyticsのアイコン。そこから矢印がのびて、CData Sync を通してBigQueryに統合、Tableauから利用するフロー

こんにちは!Web 担当の加藤です。

ブログ記事などコンテンツマーケティングやマーケティング分析に携わっている方であれば、流入、コンバージョン、エンゲージメントなどコンテンツ関連のデータを確認してコンテンツの改善やに活かしたい、という方も多いでしょう。

コンテンツのデータを可視化したいとき、ウェブサイトにGoogle Analytics などのWeb 解析ツールを導入していれば流入数やコンバージョン数の確認は難しくありません。

しかし、意外と難しくかつ高いニーズがあるユースケースが、記事の作成日時著者情報といったカットでデータを集計して活用する、というものです。例えば、

  • 今月何本記事を出せたんだろう?
  • 著者ごとに流入数のランキングを作りたい!

といったデータをダッシュボード日々確認したい!という方は多いのではないでしょうか(私もその1人です)。

なぜこれが難しいかというと、作成日時・著者情報といった記事のメタデータは記事を作成するCMS 側で保持しており、Web 解析ツールでは取得できないからです。この課題を解決するために利用できるのが、CData のETL / ELT 製品CData Sync です。

本記事では、CData で使用しているヘッドレスCMS とGoogle Analytics が持つCData ブログのデータを統合してデータ基盤(BigQuery を例に)にELT、さらにTableau で著者ごとの流入数ランキングを可視化・ダッシュボード化してみる、というところまでご紹介します。全ステップノーコードで完結です。

CData Sync とは?

CData Sync はCData が提供するETL / ELT ツールです。

  • 400種類以上のSaaS / データベースに対応する圧倒的なデータソース数
  • ノーコードで手軽に使える操作性
  • リアルタイムでの継続的データ転送
  • SQL でのデータ変換やdbt 連携など高度なETL / ELT 機能

などの特徴を持っています。ダウンロードしてすぐに30日間の無償トライアルを利用できるので、以下のリンクからぜひお試しください。

https://www.cdata.com/jp/sync/

さらに今年のQ4 アップデートにて、あらゆるAPI への接続をノーコード実現するAPI Connector の機能が追加されました。この記事では、CData Sync とAPI Connector を活用してCMS とGoogle Analytics のデータを統合していきます。

データソース・データ同期先への接続を設定する

ヘッドレスCMS が提供するAPI への接続をノーコードで設定

前置きが長くなりましたが、ここから実際にデータへの接続を設定していきましょう。まずは、自社で使用しているCMS のデータから作成日時著者情報URL(GA のデータとの統合用)、のデータを取得します。

CData ではUmbraco というヘッドレスCMS を利用しています。こちらのCMS では著者情報や作成日時のAPI エンドポイントを提供していますが、CData Sync ではデータソースとしては対応していません。そこで、2023年Q4 のアップデートで追加された汎用API への接続機能を使ってノーコードでこちらのAPI エンドポイントへの接続を設定していきます。

まずは、CData Sync をインストールしてログイン後、「接続」タブに移動してください。この画面から新しいデータソースを設定していきます。

右上の「+ 接続を追加」ボタンをクリックしてください。以下のコネクタ選択用の画面が表示されるので、「API」を選択します。

「接続名」に任意のコネクタ名を入力して、「Test URL」にデータを取得したいCMS のAPI エンドポイントを記述します(社内利用向けエンドポイントなので、隠させてもらってます)。API への接続に追加で認証が必要な場合は、「Auth Scheme」でベーシック認証やOAuth 認証を指定して設定できます。また、接続にAPI キーなどが必要な場合はHeaders に任意で追加できます。

ここから、実際にAPI に接続してデータを取得、テーブル化していきます。まずは接続設定画面のテーブルタブに移動して、「テーブルを作成」をクリック。

以下のような画面が表示されるので、「リクエストURL」にデータを取得したいAPI エンドポイントのURL を入力(「Test URL」に入力したものと同じでOK)、「フォーマット」には利用するAPI エンドポイントが返すデータの種類に応じてJSON またはXML を選択します。

さらに「パラメータ」にエンドポイントに含まれるクエリパラメータを入力します。クエリパラメータとは、例えば https://www.google.com/search?q=cdata&sourceid=chrome&ie=UTF-8 の"?"以降の太字部分に含まれるq とcdata、sourceid とchrome のような対の値のことです(エンドポイントに与える追加情報のようなもの)。

指定できたら、「テーブルを設定」クリックしましょう。

パブリックな情報以外は隠しますが、接続がうまくいくとこんな感じで生のレスポンスがプレビューされます。

次の画面で繰り返し要素を指定します。ここでは一括で取得したい要素の名前を選択してください(前画面のプレビューが参考になります)。

そして、データとして取得したい項目を選択します。ここでは著者情報、作成日時、URL を取得したいので適切な項目を選択しています。

次の画面でテーブル化されたデータをプレビューできます。無事、ほしいデータがテーブル化されました!

GA4 への接続を設定する

次に、セッション数やエンゲージメントなどの指標を持っているGA4 のデータに接続してみましょう。先ほどと同様、「接続」画面から接続を作成、「Google Analytics」を選択します。

GA4 への接続はAPI への接続よりさらに簡単です。Auth Scheme で「OAuth」を選択して、Scheme にGoogleAnalytics4 を選択します(UA のデータに接続したい場合は、「UniversalAnalytics」を選択すればOK)。複数のプロパティを利用している場合は「Property Id」にデータを取得したいプロパティのID を入力して「Google Analytics への接続」ボタンをクリックしてください。

あとはGoogle 側の認証画面で認証を完了すればOKです。

認証が成功したら、右上の「接続およびテスト」をクリックして設定は完了です。

以上で、データソースであるCMS とGA4 への接続設定は完了です。次はデータの転送先であるBigQuery への接続を設定していきましょう。

BigQuery への接続を設定する

BigQuery への設定も、GA4 と類似のステップで完了します。まずは、新しい接続の作成画面からBigQuery を選択しましょう。もはやおなじみ?の以下の接続設定画面が出てきます。

GCP のコンソールで確認できる「プロジェクトID」、「データセットID」を取得して、入力します。ほかはデフォルトでOKです。「Insert mode」(データの追加手法)についてはこちらの記事で解説しておりますので、興味があればご確認ください。

あとは、「作成およびテスト」をクリックして準備完了です!

データ転送ジョブを設定してCMS とGA4 のデータをELT

ここからは、いよいよ実際にBigQuery にデータを転送し、ELT で統合していきましょう。

まずはCMS のデータを転送していきましょう。「ジョブ」画面に移動して「ジョブを追加」ボタンをクリックします。

任意の名前を入力して、「データソース」と「同期先」に先ほど作成した接続設定を指定します。

ジョブが作成できたら、「タスク」タブに移動して「タスクを作成」をクリックします。

転送可能なテーブルデータ一覧が表示されるので、転送したいものを選択してタスクを作成します。

無事タスクが作成できたら、右上の「実行」をクリックしてタスクを実行します。実行が成功すると、タスクのステータスが「Successful」となり最終実行時間や転送した行数を確認できます。

ほかにも、ジョブ画面では必要に応じてスケジュール実行や通知、差分更新などの設定が行えます。

GA4 からBigQuery への設定も、タスク -> ジョブの作成までは同様に進めます。今回ジョブの作成時には、ユーザー数やエンゲージメントを持つ「Engagement」テーブルを転送する設定にしています。各テーブルがどんなデータを持っているのか、について詳しくはこちらのヘルプドキュメントをご確認ください。

ジョブを作成したら、「カラム」タブに移動して転送したいGA4 のカラムを選択します。今回は流入ユーザー数とエンゲージメントを見たいので、「PageTitle」、「PagePath」、「TotalUsers」、「EngagementRatePerUser」を選択しました。PagePath はCMS のデータとの統合に使います。注意点として、GA4 ではデータモデルの都合上日付データなどを転送に含めることはできません。

 

タスク・ジョブ設定を保存してジョブを実行しましょう。

BigQuery 側のデータセットを確認すると、無事CMS とGA4 のデータが転送されていました!

ELT でCMS とブログのデータを統合する

最後に、ELT でデータ統合を実行して、BI ツールから手軽に扱えるようにブログとCMS のデータを統合してみましょう。

ELT 処理は「変換」タブで実行します。移動したら「変換を追加」ボタンをクリックします。

任意の名前を入力して、変換方法を選択しましょう。今回はスタンダードなSQL を使います。dbt との連携でCI/CD を導入した高度なデータ管理を実現することもできます。

変換を追加したら実行するSQL クエリを追加します。

今回は以下のようなクエリを使いました。CMS とGA4 から取得したテーブルをURL で結合するだけです。

CREATE OR REPLACE TABLE PROJECT.DATASET.TABLE as (
   SELECT * FROM `PROJECT.DATASET.TABLE`
   LEFT JOIN `PROJECT.DATASET.TABLE` ON CustomUrl = PagePath
);

これで、無事以下のように著者情報・記事タイトル・流入ユーザー・エンゲージメントを持ったテーブルを作成できました!

Tableau で作成したデータを可視化する

データの準備ができたので、早速作成したデータをTableau で可視化してみます。今回は、

  • 著者毎の流入数ランキング
  • 著者ごとの1記事に対する流入ユーザー数の(記事流入の効率性)
  • ユーザー数と記事数の相関関係

を出してみました。具体的な数などは隠させてもらいましたが、弊社杉本さんの記事への流入が圧倒的ですね!

これで、目的だった著者ごとの流入ランキングのデータを作成できました。もちろん、その他さまざまな分析や可視化に使えます。

おわりに

以上で、CMS のメタデータとGA のデータをデータ基盤にELT で統合、さらにTableau でダッシュボード化するところまで実現できました。CMS への接続に使用したAPI Connector はあらゆるAPI エンドポイントに対応しているので、CMS 以外でも社内で活用しているSaaS やAPI のデータを統合できます。

また、CData Sync はGA4 を含む400種類以上のデータソース・同期先に対応しているので、ネイティブ対応のデータソースであればさらに簡単に接続設定が可能です。

CData Sync は30日間の無償トライアルをすぐにダウンロードしてお試しいただけます。ぜひご利用ください!

関連コンテンツ

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

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。