データポータルで「Google Analytics流入元レポート」を作ってみた

Googleのサービスの「データポータル」を作って,Google Analyticsのデータで流入元(「チャネル」や「参照元/メディア」などのディメンション)軸のセッションやCV数とそれらの推移を確認できるレポートを作ってみました.

 

1.はじめに

今回は,指定した期間(デフォルトでは先月)で各チャネル等の流入元のディメンションでセッションやCV数などの値を確認・比較することが主目的のレポートを作ってみました.記事「データポータルで「Google Analytics 月・曜日・日・時間軸レポート」を作ってみた」で紹介したレポートは「時」を主軸としたもので,フィルタを使うことで各チャネルなどのデータを個々には確認できますが比較はしにくいものです.したがって,今回の流入元レポートは「時」を主軸としたレポートを補完しあうものとも言えます.

使用するデータは,Google Analyticsのデモアカウント(アカウント「Demo Account」のプロパティ「Google Merchandise Store」のビュー「1 Master View」)です.デモアカウントに関しては,記事「Google Analyticsにデモアカウントを追加」を参照してください.

 

2.レポート全体の説明

まず,今回作ったレポートは

[閲覧用] Google Analytics 流入元レポート

で閲覧できます. レポートは全部で4ページあります.

すべてのページの上段には,フィルタ(コントールボタン関連)が設置されていて,期間をデフォルト以外に変更したり,地域を絞れたり,チャネルやデバイスなどを絞れたりします(フィルタの内容はほぼ同じですが,レポートの内容によって変更箇所もあります).

レポートのデフォルトの期間は,表示した日に対して先月となっています.フィルタで期間を自由に変更できますが,このフィルタに連動しないグラフ(折れ線グラフと積み上げ縦棒グラフ)がレポート内に存在します.この折れ線グラフと積み上げ縦棒グラフは,レポートを表示した日に対して先月から15ヶ月前までの合計15ヶ月間の月別のデータが表示されます.15ヶ月としたのは,前年のデータと比較したいと要望があると考えたのと,四半期という区切りを考慮してプラスアルファで15ヶ月分を表示するようにしました.

フィルタの「曜日」は,曜日によって(平日と土/日などによって)セッションやCV数が大きな差がある場合に,それらを分けてデータを見る場合などで活用できると考えています.フィルタの「日付」や「時間」も同様な使い方を想定しました.つまり曜日では区別しきれない祝日などをフィルタの「日付」で該当日を追加で選択(除外)するような使い方ができ,昼間と夜の差を気にしなくてはいけない状況ならフィルタの「時間」を使って該当する時間帯のみを選択してデータを見てみるという感じです.このような曜日や時間などでのデータの違いがどの程度あるかを知るのは,記事「データポータルで「Google Analytics曜日×時間レポート(ヒートマップ付き)」を作ってみた」で紹介したレポートの役目となります.

フィルタの下には流入元(「チャネル」や「参照元/メディア」などのディメンション)を軸としたテーブルがあります.指標は集客・行動・コンバージョンに関係するものを選んでいますが,1ページと2ページ目のコンバージョンは目標1を採用し,3ページと4ページ目のコンバージョンは目標2を採用しています.テーブルは目標のCV数の降順で並べていますが,テーブルの列の項目をクリックすることでその項目で降順や昇順に並び変えることができます

その下にはセッションとコンバージョンに関するシェアを確認できる円グラフと縦積み上げ棒グラフがあり,空いたスペースに新規セッション率とコンバージョン率の折れ線グラフを入れてあります.

プリントアウトが必要な場面は少ないかもしれませんがA3サイズに印刷することを想定して,レポートの縦と横のサイズ比はA版用紙とあわせています.

 

3.チャネル別(目標1)レポート

1ページ目は,チャネル(デフォルトの「Default Channel Grouping」,記事「Google Analyticsのチャネル」参照)別が軸のレポートで,コンバージョンはビュー「1 Master View」で目標1に設定されている「Purchase Completed(購入完了)」を使っています.

テーブルの下には,該当期間(デフォルトでは先月)のチャネル別のセッションシェアが確認できる円グラフ,先月から15ヶ月前までの月毎の新規セッション率が確認できる折れ線グラフ,先月から15ヶ月前までの月毎のチャネル別のセッションシェアの推移が確認できる積み上げ縦棒グラフがあります.そしてその下には,該当期間のチャネル別の目標1のCV数シェアが確認できる円グラフ,先月から15ヶ月前までの月毎の目標1のCVR(コンバージョン率)が確認できる折れ線グラフ,先月から15ヶ月前までの月毎のチャネル別の目標1のCV数の推移が確認できる積み上げ縦棒グラフがあります.

図1.チャネル別(目標1)レポート

 

4.検索チャネル(目標1)レポート

2ページ目は,検索チャネルのチャネル「Organic Search」と「Paid Search」に該当する流入のみを集めたデータです(そのようなフィルタとを与えて集計しています).

フィルタの下のテーブルはディメンションが「参照元/メディア」のレポートで,コンバージョンはビュー「1 Master View」で目標1に設定されている「Purchase Completed(購入完了)」を使っています.セカンドディメンションとして「検索サイト中分類」というものを加えています

図2.検索チャネル(目標1)レポート

 

データを見ると検索チャネルに含まれる「参照元/メディア」の種類が少ないのでこのような新たな分類「検索サイト中分類」を作る必要はないとは感じるのですが,日本のサイトだとここにけっこう種類があるので,下記の円グラフ(データポータルの円グラフのスライス数の最大値は20)や積み上げグラフなどのためにもこれを入れました.

なお「日本のサイトだと結構種類がある」に関してですが,「プロパティ設定 > トラッキング情報 > オーガニック検索ソース」の設定ちゃんとすればするほど自然検索(Organic Search)のチャネルに該当する「参照元/メディア」が増えます(記事「Google Analyticsで日本固有の検索エンジンを追加する」参照)し,有料検索(Paid Search)のチャネルにはYahoo!のリスティングなども手動タグ(記事「Google Analyticsの広告流入を計測するための手動タグ」参照)を付けることで含まれるからです.

本レポートのデモサイトはGoogleのサイトというのもあり,有料検索にはGoogle広告だけだと見えますが,データを見ると広告を積極的に出している時期とそうでない時期との差が明確にあります(図3は,2019年10月から2020年9月までのチャネル「Paid Search」のセッションの推移です).また,Google Analyticsで「集客 > すべてのトラフィック > チャネル」にてチャネル「Paid Search」において「参照元」が「google」となっていても(図4参照),セカンドディメンションに「参照元/メディア」を追加すると,「(direct) / (none)」となっているものがあることがわかります(図5参照.これは,Google AnalyticsにリンクされていないGoogle広告があるためかもしれません.記事「Google AnalyticsとAdWordsのリンクでの諸注意」参照).そこで,この「(direct) / (none)」であるものと「google / cpc」で一緒にまとめて,検索チャネル中分類で「Google(有料)」となるようにしました.

上記のような理由で,「検索チャネル中分類」でというフィールドをデータポータルのCASE関数などで新たに作りました.たいした内容ではないですが,その計算式は下記のようになっています.

CASE
WHEN 参照元/メディア IN ("google / organic") THEN "Google(自然)"
WHEN 参照元/メディア IN ("baidu / organic") THEN "Baidu(自然)"
WHEN 参照元/メディア IN ("bing / organic") THEN "Bing(自然)"
WHEN 参照元/メディア IN ("yahoo / organic") THEN "Yahoo(自然)"
WHEN 参照元/メディア IN ("google / cpc") THEN "Google(有料)"
WHEN Default Channel Grouping = "Paid Search" AND 参照元/メディア IN ("(direct) / (none)") THEN "Google(有料)"
WHEN Default Channel Grouping IN ("Paid Search") THEN "その他(有料)"
ELSE "その他(自然)"
END

 

図3.2019年10月から2020年9月までのチャネル「Paid Search」のセッションの推移

 

図4.「集客 > すべてのトラフィック > チャネル」にてチャネル「Paid Search」での参照元でのレポート

 

図5.セカンドディメンションに「参照元/メディア」を追加すると「(direct) / (none)」となっているものがあるのがわかる

 

注意2ページ目のテーブルとグラフは同じフィルタとフィールドを使って検索の流入を集め分類して作成していますが,テーブルとグラフでセッションとCV数が異なっています(積み上げグラフの方の値が正しくありません).これは,この検索に関するグラフにサンプリングが実行されているためです(流入量が減ればサンプリングが起きないのですが,すくなくともこの記事の公開した2020年10月頃にレポートにアクセスするとサンプリングがおきました).一方で,同様の方法で作っている,4ページ目の参照サイトの流入を集め分類しているテーブルとグラフでセッションとCV数が一致しています(こちらは,流入量が検索に比べて少ないのでサンプリングがおきていないからです).

ページ内にサンプリングでの表示がある場合,ページの下に「サンプリングを表示」というリンクが出現する(図6赤枠内参照)ので,これをクリックするとサンプリングのデータを使っているテーブルやグラフが囲まれてそれぞれの右上にサンプリングレート(図7赤枠内参照)が表示されます.

図6.レポートにサンプリング表示がある場合の目印

 

図7.サンプリングレートの表示

 

5.チャネル別(目標2)レポート

3ページ目は,1ページ目と同じチャネル別が軸のレポートですが,コンバージョンはビュー「1 Master View」で目標2に設定されている「Engaged Users(エンゲージメントユーザー)」を使っています.ビュー「1 Master View」の目標設定を確認すると,この目標2はページビュー数 / スクリーンビュー数(セッションあたり)が「10」を超えた場合のCV数とのことです.

図8.チャネル別(目標2)レポート

 

6.参照チャネル(目標2)レポート

4ページ目は,参照チャネルとしてチャネル「Referral」と「Social」に該当する流入のみを集めたデータです.

フィルタの下のテーブルはディメンションが「参照元/メディア」のレポートで,コンバージョンはビュー「1 Master View」で目標2に設定されている「Engaged Users(エンゲージメントユーザー)」を使っています.セカンドディメンションとして「参照サイト中分類」というものを加えています

まず,目標2のCV数が多いチャネルは「Organic Search」なので検索チャネルとして集計するというのも考えられるのですが,それだと2ページ目と変化が少ないので参照チャネルに変えてみました.各テーブルやグラフの指標は2ページ目と同じです.

チャネル「Referral」と「Social」に含まれる「参照元/メディア」の種類は多いので,それこそ「参照チャネル中分類」というように主要なものとその他である程度の数になるように分類しないと,下のグラフが大変なことになります(データポータルの円グラフのスライス数の最大値は20なので,それ以上になると自動にまとめられてしまいます).

新たに作ったフィード「参照チャネル中分類」の計算式は下記のようになっています.

CASE 
WHEN Default Channel Grouping = "Social" AND REGEXP_MATCH(参照元, ".*youtube\\.com") THEN "Youtube(ソシャ)"
WHEN Default Channel Grouping = "Social" AND REGEXP_MATCH(参照元, ".*facebook\\.com") THEN "Facebook(ソシャ)"
WHEN Default Channel Grouping = "Social" AND REGEXP_MATCH(参照元, "t\\.co") THEN "Twitter(ソシャ)"
WHEN Default Channel Grouping = "Social" THEN "その他(ソシャ)"
WHEN 参照元 = "mall.googleplex.com" THEN "モールgoogleplex(リファ)"
WHEN 参照元 = "analytics.google.com" THEN "アナリティクスgoogle(リファ)"
WHEN 参照元 = "mail.google.com" THEN "メイルgoogle(リファ)"
WHEN REGEXP_MATCH(参照元, ".*google\\.com") THEN "その他google(リファ)"
WHEN Default Channel Grouping = "Referral" THEN "その他(リファ)"
ELSE "その他"
END

 

チャネル「Social」に該当するものは「(ソシャ)」,チャネル「Referral」に該当するものは「(リファ)」と目印をつけています.YoutubeやFacebookなどは該当する「参照元/メディア」が複数あるのでREGEXP_MATCH関数を使って判定しています.

図9.参照チャネル(目標2)レポート

 

7.おわりに

レポートのデザインにこだわると,データポータルは苦労しますね.1ページに配置できるデータ(テーブル,グラフなど)の上限が意外と厳しいです.そのような制限をふまえてどのようなレポートを作るかを考えるのがポイントでもある気がします(デザインよりも実用性を重要視した使い方が多そうですが).

今回のレポートは,Google Analyticsのオリジナルのデータソースを使った新たな値(フィールド)を活用しましたが,そこで用いたCASE関数やREGEXP_MATCH関数は下記にデータポータルの公式ヘルプがあります.

CASE:https://support.google.com/datastudio/answer/7020724?hl=ja&ref_topic=7019024

REGEXP_MATCH:https://support.google.com/datastudio/answer/7064476?hl=ja&ref_topic=7041728

その他の関数は下記に公式ヘルプがあります.

関数のリファレンス:https://support.google.com/datastudio/topic/7019880?hl=ja&ref_topic=7570421

公式以外では,下記の記事が参考になると思います.

Googleデータポータルでよく使う関数まとめ【コピペ利用可】

データポータルの CASE 文で Google アナリティクスの URL 系ディメンションを分類したレポート