Googleが提供する無料のBIツール「データポータル」、皆さんご活用されていますでしょうか。データポータルは2016年6月にリリースされ、今年で5周年を迎えます。
リリース当初は、
- Google広告(旧AdWords)
- Googleアナリティクス
- BigQuery
- スプレッドシート
- YouTube
- アトリビューション360
の6つのデータソースが対象でしたが、今では規模が拡大し、Google公式から18、パートナーから350超のデータソースが提供されています。また、リリースを行ってからというもの毎月のようにアップデートがあり、Googleが提供するツールの中でも、特に日に日に成長を遂げているツールです。無料ツールなこともあり、業務に積極的に使われている方もたくさんいらっしゃるかと思います。
そんなデータポータルですが、同じBIツールである「Tableau」と比較した際、ファネル形式でのデータ可視化を苦手としています。
「ページAを見た後、ページBに遷移したセッションはどれくらいか」というグラフを作ろうと考えた場合、通常のグラフで作成するなら複数のスコアカードを組み合わせて使う、といった方法がとれます。ですが、レポート内に設置するグラフやテキスト等のコンポーネントが増えるほど、レポートの読み込みに時間がかかり、動作も重くなってしまいます。
今回は、データポータル中級者の方がより高度なグラフを作る小技として、関数を使って「GAをデータソースとし、1つの表で複数の指標を使ったファネルを作る方法」をご紹介します。
具体的には、ファネルを作るために、複数の到達ページ型の目標を使い、「指標名を1ディメンション、指標に対応するデータを1指標にまとめる」という作業を行っていきます。
- 手順1. ディメンションとする新規フィールドを作成
- 手順2. 指標とする新規フィールドを作成
- 手順3. 作成したフィールドを表コンポーネントに適用
手順1. ディメンションとする新規フィールドを作成
対象とするプロセス(=今回は目標を利用)をCASE文でまとめて、「どういう条件の時にどのプロセスに一致するのか」というカスタムフィールドを作成します。
目標が記録されているGAデータソースの編集画面を開き、 [フィールドを追加] より以下のようなCASE文を記述してください。今回は目標を対象としてファネルを作成するため、ディメンション「目標の完了の場所」に対して、プロセスの条件を指定しています。
CASE
WHEN REGEXP_MATCH(目標の完了の場所, "条件①") THEN "1.プロセス名"
WHEN REGEXP_MATCH(目標の完了の場所, "条件②") THEN "2.プロセス名"
WHEN REGEXP_MATCH(目標の完了の場所, "条件③") THEN "3.プロセス名"
ELSE "その他"
END
各プロセスの条件は、目標の設定内容と基本揃えていただければ問題ありませんが、GAとデータポータルでは特殊文字のエスケープ方法が異なるので、目標の設定内容によってはデータポータル側の条件は微調整を行ってください。
また、汎用性を高くするため敢えてREGEXP_MATCHを使用していますが、サイト構造的に不要であればREGEXP_MATCHを使わない完全一致の記述でも問題ございません。
結果となるプロセス名には、ナンバリングすることをおすすめします。
手順2. 指標とする新規フィールドを作成
作成したディメンション用フィールドに対応する指標用フィールドを作成します。「目標の完了数(=末尾が『(Goal XX Completions)』となっている目標フィールド)」を、各プロセスに紐づけます。
①目標名 (Goal XX Completions) * MAX(CASE
WHEN 作成したディメンション用フィールド = "1.プロセス名" THEN 1
ELSE 0 END) + ②目標名 (Goal XX Completions) * MAX(CASE
WHEN 作成したディメンション用フィールド = "2.プロセス名" THEN 1
ELSE 0 END) + ③目標名 (Goal XX Completions) * MAX(CASE
WHEN 作成したディメンション用フィールド = "3.プロセス名" THEN 1
ELSE 0 END) + 0 * MAX(CASE
WHEN 作成したディメンション用フィールド = "その他" THEN 1
ELSE 0 END)
今回、ディメンション用フィールドと指標用フィールドでは条件指定方法が異なるため、ディメンション用フィールドの各プロセスの条件が、指標用フィールドの「目標の完了数」を上回るケースがあります。そのリスク回避として、MAXを使って「目標の完了数」を上回らないよう制限しています。
手順3. 作成したフィールドを表コンポーネントに適用
1と2で作成したフィールドを、表に適用します。
ディメンションを用いた昇順の並び替えや行番号の非表示、表示形式を棒グラフにする等して調整を行えば完成です。
まとめ
1つの表を使ったファネルの作り方、いかがでしたでしょうか。
スコアカードを使ったファネルはよくありますが、表コンポーネントでの表現方法は見かけなかったので、ご紹介させていただきました。今回は到達ページ型の目標を使いましたが、イベント型でも応用可能です。
また、今回は中級者向けに関数の概要説明は省かせていただきました。もしもこのブログを読んで関数に挑戦してみたいと思われた方がいれば、下記ヘルプドキュメントをご覧いただきながら書いてみると分かりやすいかと思います。
関数を使えば、流入元を分類したCASE文×セッション等、様々なケースに対応できます。関数はデータポータルを活用するための必須スキルです。
プリンシプルでは、今回ご紹介したファネルのように高度な表現方法を使ったレポートの作成や、自走を目指す企業様向けにトレーニングを行うことが可能です。ご興味ある方がいれば、下記よりお問い合わせください。