LoginSignup
3
2

TableauでGA4データを可視化してみた

Last updated at Posted at 2023-08-28

こんにちは。データアナリストの卵、渡辺です。デジタルマーケティングエージェンシーにて、GA4を中心としたWebサイト分析業務に従事しております。

GA4データの可視化をするためのBIツールとしては、無料かつ、Google関連サービスとの接続がしやすいLooker Studioを用いるケースが多いと思います。しかし、グラフ描画の自由度や利用できるコネクタの種類についてはTableauのほうが優れているため、今回TableauでのGA4データの可視化を行ってみました。

結論としては、記事執筆時点ではTableauのGA4コネクタでデータの可視化を行うのは難しく、BigQueryを経由したデータのつなぎ込みが必要と考えています。

GA4データのつなぎこみ方法:2023/8/25時点ではBigQuery経由が現実的

GA4のデータをつなぎこむ基本的な方法は、TableauのGA4コネクタを使うか、BigQueryを経由するかの2択です。

BigQueryを経由したほうが自由度の高いデータマートを作ることができますが、SQLを用いたデータマートの整形が必要なので、コネクタを使いたい方が多いでしょう。しかし、残念ながら2023/8/25時点ではTableauのGA4コネクタは不安定な印象があります。

TableauのGA4コネクタ

どのような点が不安定であったか、使ってみた感想を記録しておこうと思います。

まずTableau Desktopを開いてみると、「Google Analytics 4」というコネクタがあります。もし見つからない場合は、検索窓に「Google」などと入れると、追加のコネクタとしてインストールできると思います。

tableaudp_コネクタ.png

しかし、これを使おうとしてみると、
tableaudp_コネクタエラー.png

このようなエラーとなり、接続できませんでした。このエラーコードはTableauのサポートコミュニティでも該当するアンサーがなく、私だけかと思っていたのですが、ググった感じ、同様のエラーが出ている方もいました。

Tableau DesktopのGA4コネクタの動作は、接続の時点からかなり不安定なようです。

一方、Tableau Cloudからは接続でき、GA4アカウントの権限があるGoogleアカウントを認証すると、このような画面になります。

コネクタ接続.png

以下を順に選んでいきます。

1)連携するアカウント
2)データの日付範囲
3)ディメンションとメトリクス(指標)

データの日付範囲

日付範囲は柔軟に選ぶことができます。絶対指定、開始日だけ指定、相対指定の3種類です。

日付選択.png

ディメンションとメトリクス(指標)

まず制限としてはディメンションは9まで、メトリクス(指標)は10まで、とのこと。使用可能なディメンションはかなり幅広く用意されており、よく使われるものはすべて用意されているように思えます。

ディメンション

大分類 何についてのディメンションか 項目例
Attribution ユーザーがコンバージョンを達成するまでにたどった経路 ・Default channel group
・Source
・Medium
Demographics ユーザーの属性 ・Age
・Gender
Ecommerce Eコマースの情報 ・Item category
・Item ID
Event イベント ・Event name
・Is conversion
Event-scoped Custiom Dimension イベントスコープで設定した任意のカスタムディメンション -
Geography 地理的情報 ・City
・Country
Other 分類できないイベントパラメータ ・Link URL
・Percent scrolled
・Video URL
Page / Screen ページ(スクリーン) ・Content Group
・Page location
・Landing page
Platform / Device プラットフォームやデバイス ・Device category
・App version
Time 日付 ・Date
・Date + hour(YYYYMMDDHH)
・Year month
Traffic Source 流入経路 ・First user default channel group
・Session default channel group
・Session source / medium
User ユーザー情報 ・Audience ID
・New / returning
User Lifetime ユーザーごとのライフタイム ・First session date

メトリクス

大分類 何についての指標か 項目例
Ecommerce Eコマース ・Ecommerce purchases
・Transactions
Event イベント ・Conversions
・Event count
・Event count per user
・Events per session
Event-scoped Custom Metric カスタムイベント -
Event イベント ・Event name
・Is conversion
Event-scoped Custiom Dimension イベントスコープで設定した任意のカスタムディメンション -
Other 分類できないもの ・Ads clicks
・Ads cost
・Cart-to-view rate
・Organic google search average position
Page / Screen ページ(スクリーン) ・Views
・Views per session
・Views per user
Publisher パブリッシャー広告 ・Ad unit exposure
Revenue 購入 ・Average purchase revenue
・Total revenue
Session セッション ・Average session duration
・Bounce rate
・Engaged Sessions
・Sessions
User ユーザー ・Active users
・New users
・Total users

今回は以下ディメンションとメトリクスを選びました。
ディメンションとメトリクス.png

選択したディメンション

  1. Date
  2. YearMonth
  3. Event name
  4. Landing page
  5. Page path
  6. Page title
  7. Session default channel group
  8. Session source / medium
  9. Device category

選択したメトリクス

  1. Views
  2. Views per session
  3. Average session duration
  4. Bounce rate
  5. Sessions
  6. Total Users

特に問題なく接続が完了し、データソースが表示されました。

データソース表示.png

ここから「Sheet1」に移動しようとすると、「データの抽出」が開始されます。しかし、2分ほど抽出のローディングが進むと、このようなエラーが返ってきてしまいました。

抽出エラー.png

抽出エラー詳細.png

エラー
value - Exception changing string '(not set)' to integer - Error parsing number
Unable to create extract

どうやら(not set)という値がエラーを引き起こしているようです。とはいえ、抽出を作る前の段階でこのエラーが出てきているので、計算フィールドを作ってこのエラーを回避することはできそうにありません。

一つ一つディメンションやメトリクスを外していったところ、どうやら Session Source Medium がこのエラーを引き起こしているようでした。現状対処法がない(カスタマーサポートに問い合わせ中)ので、Session Source Medium は外して再度トライしてみます。

すると、無事抽出の作成が完了しました。ただし、成功するまでに3回のサーバーエラーで失敗したので、コネクタの挙動は不安定と言わざるを得ないです。おそらくデータが重いのかなと思います。

データの妥当性検証

まずはデータがしっかり出ているか確認したいので、GA4の探索で同じレポートを作って検証してみました。

日別ディメンションあり検証.png

パッと見ておわかりいただける通り、数値が合いません。
どちらも8月24日にややトラフィックが跳ねている傾向は一致していますが、全体的にTableauはトラフィックが少なすぎます。

さらに、抽出期間は2021年7月1日〜にしていたのですが、なぜかTableauでは2022年8月15日からしか表示されませんでした。

ディメンションを年月にしてみましたが、やはり数字は合いません。

月別ディメンションあり検証2.png

Tableau側でどのように集計されてこの数値になっているのかはわかりませんが、今回ディメンションを9つ登録しているので、ディメンションによってなにか算出が狂っているのかもしれません。

そこで、DateとYear Month以外のディメンションをすべて除外して比較してみました。ディメンションを落とすと、抽出期間として設定した2021年7月1日から表示されました。

下記画像は先程の比較と期間をあわせています。

日別ディメンションなし検証1.png

今回は数値がしっかり合いました。やはりディメンションがメトリクス(指標)の集計に影響を及ぼしているようです 。影響を受けずに集計できるディメンションもあるのかもしれませんが、一つ一つ加えてもよいディメンションを探していくのにも手間がかかりますね。

ディメンションを年月にすると、若干差は生まれましたが、集計方法の差として許容できる範囲に見えます。

月別ディメンションなし検証2.png

このように、TableauのGA4コネクタは、

  • 動作が不安定
  • ディメンションを追加すると数値が狂う

上記2点から、まだ安定的に使えるものではないと思います。

BigQueryのつなぎ込み

コネクタを使う方法以外に検討できるのが、BigQueryからのつなぎ込みです。BigQueryはGoogleのクラウド側データベースで、GA4からGAデータのBigQueryエクスポートが無料(※BigQueryの利用料はかかります)になっています。

GA4からBigQueryにデータをエクスポートをして、それをTableauに接続することができます。

BigQueryのコネクタは、以下2種類あります。

  • Google BigQuery
  • Google BigQuery(JDBC)

BigQueryコネクタ.png

前者は通常のコネクタ、後者はエンタープライズ向けの高速コネクタで、次のような特長があるようです。

  • データ抽出が高速化
  • 一時的なステージングテーブルの名前を指定可能
  • 異なるBigQueryプロジェクトからのテーブルを結合できる
    • 1つのテーブルに接続したら、Tableauデータペインのユーザーインターフェイスを使用して、別のプロジェクトに移動し、データモデルにテーブルを追加することができる

JDBCのほうを利用する際はコネクタ接続時に請求先プロジェクトの選択が必要なので、おそらくコネクタ利用にお金がかかるような仕様かと思います(パフォーマンスが良いので当然ですが)。

Tableauに接続するGA4データ

Googleアカウントでのログインをして、BIツール接続用に作ったマート層を接続します。なお、GA4からBigQueryエクスポートの設定をしたテーブルを、そのままTableauにつなぎこむことはできません。

GA4からエクスポートされたローデータのテーブルは、レコードがネストされた状態(入れ子)であるためです。

▼event_params.keyという列に複数の値が入っている
ネストされたデータ.png

これをそのまま読み込もうとすると、エラーになります。
ネストデータによるエラー.png

したがって、Tableauに限らずBIツールでGA4のエクスポートデータを可視化したい場合は、SQLを用いてデータを整える必要があります。PVやセッションを集計する程度であれば、Tableau上でカスタムSQLを書いてしまう方法もあるのですが、GA4のデータはあくまでイベントをリスト化しただけのデータなので、ランディングページや参照元メディアなどをしっかりと可視化したい場合はBigQuery上にマート層を作ることをおすすめします。

マート層を作るのはGA4の仕様を深く理解していないと難しいため、専門の会社に頼むとよいでしょう。

今回はイベントデータのマートを作成し、接続しました。2021年4月頃からデータが溜まっており、レコード数は1,200万行程度です。

データセット.png

Tableau Desktopからの接続だとデータが重すぎるのか、Tableau Desktopが固まるケースが多々あったので、Tableau Cloudから抽出を作成してみました。

高速化が期待できるJDBCを利用しましたが、それでも抽出を作成するのに15分ほどかかり、挙動はかなり重かったです。なので、今回は2022年7月1日から2023年7月31日の1年間に絞りました(データは850万行ほどに)。

長期間のデータを接続したい場合は、Tableau用にレコード数をおさえたデータマートを作るか、あらかじめある程度集計した状態のテーブルを読み込むなどする必要がありそうです。

こちらのデータでGA4の探索画面との数値を比較してみると、以下の通りでほぼ同等の数値が出ていることがわかります。

Bigqueryと探索の比較.png

Googleの公式ヘルプには「BigQuery の計算結果と、標準レポート、カスタム レポート、データ探索ツール、Looker Studio の計算結果にはわずかな差異が生じることがあります。」と記載されています。「元データからより正確な結果を取得したい場合は、BigQuery で結果を確認してください。」という記載もあり、BigQuery以外の画面から見られるセッションなどはあくまでデータをもとに効率的な計算方法が適用されたもののようです。

若干数値の乖離幅が大きい箇所はありますが、一旦はBigQuery由来の値を正としてTableauで簡単なグラフを描画してみました。

時系列グラフ
月次アクセスグラフ.png

閲覧コンテンツ傾向
閲覧コンテンツ傾向.png

Tableauを使ってみた感想

普段Google系のサービスのデータを扱うことが多いので、使うBIツールはもっぱらLooker Studioでした。

Tableauに本格的に触ってみて、とにかくTableauはカスタマイズ性がすばらしいという印象を受けました。今回は私のTableauスキルがまだまだなこともあり、シンプルなダッシュボードしか作れていないですが、レイアウトやグラフのビジュアルなどをかなり操作できます。このあたりはおいおいまだ勉強していこうと思います。

Looker Studioだと基本的なグラフは用意されているものの、一定の値より上回っている指標の色を変える、というような動的なデザインはできません。Tableauのほうがビジュアル面での自由度が優れています。

また、予測機能もTableauの大きな強みですね。時系列データに対して重み付けをして需要を予測する「指数平滑法」が適用されており、信頼度の高い予測と言えると思います。

さらに、Tableau GPTというAIソリューションをリリースするというニュースも発表されています。これはTableauで可視化したデータに対し、インサイトをTableau側から提示してくれる機能のようで、活用できればかなりデータを解釈するヒントとして役立てられると思います。Tableau GPTとTableau Pulse は24年春に一般提供される予定とのこと。

データ分析も自動化がキーになってくるなかで、Tableauの予測機能や今後実装予定のTableau GPTをどれだけ有効活用できるかはデータドリブンな意思決定のキーになってきそうです。

Tableau GPTが提供開始されたら、また使ってみてまとめようと思います。

3
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
3
2