Looker Studio(旧データポータル)で Search Console と GA4 を統合する

Looker Studio(旧データポータル)で Search Console と GA4 を統合する

Web解析SEOライティング

既存記事をリライトするために Looker Studio(データポータル)を使ってSearch ConsoleとGoogleのインプレッション数や アナリティクスのPVを合算したデータの表を作りました。

Looker Studio はクセがあり複雑な設定があるので、具体的にどう作業してデータを統合したのかをまとめました。

画像多めで詳しく解説しているので、敷居の高い Looker Studio も設定可能です。

この記事はこんな方におすすめです

  • ブログのリライトをしたいけどどの記事から手を付けていいかわからない
  • Looker Studioを使っててっとり早くWeb解析をしたい
  • Looker Studioを使っていろんなデータを統合してみたい
  • GA4に慣れないので、ユニバーサルアナリティクスのような表示にLooker Studioでスタマイズしたい

注意点!今回はユニバーサルアナリティクスを使用しています!後日、GA4版も作成します。

追加済みです!!

かみーゆ
かみーゆ

Looker Studioはビッグクエリなどと連携しない場合は無料で使えます!

解析対象の記事のURLとタイトルのスプシを準備する

解析対象の記事のスプシを準備します。現在公開中の記事のURLとタイトルを抽出したシートを作りました。

ローカル側のGraphQLで記事のみ抽出してシート

一般の方はWordPressでブログ管理している人が多いと思うので、WP CSV Exporterというプラグインを使って出力するのがベストと思います。

私のブログはGatsbyでできているのでローカル側のGraphQLで記事のみ抽出してシートを作りました。やり方は、こちらに書いておきましたので興味のある方はお読みください。

Looker Studioにアクセス、無料で利用するでスタート

Looker Studioにアクセスし、無料で利用するをクリックします。 ローカル側のGraphQLで記事のみ抽出してシート

もしくは、直接アクセスしましょう。

空のレポートを作成しておく

まずは空のレポートを作成します。

空のレポートを作成しておく 無題のレポートができました。 空のレポートを作成しておく

データの連携処理

空のレポートからデータの連携処理を行っていきます。

無題のレポートが出来上がりますので編集をクリックします。

スプレッドシートと連携しておく

まずはスプレッドシートのデータを取り込みます。

ローカル側のGraphQLで記事のみ抽出してシート
データを追加し、必要なスプシとシートを取り込みます。 ローカル側のGraphQLで記事のみ抽出してシート
使用したいスプシを選び、先頭行をヘッダーとして使用するにチェックをし、右下の追加ボタンをクリック。 ローカル側のGraphQLで記事のみ抽出してシート

ディメンション設定をしてデータがきちんと取り込めているか確認する

URLとタイトルを表示してみます。

ディメンションにURLとTITLE(先頭行の名称)を選びます。以下のように表示されていれば成功です。

ディメンション設定

Search Console と連携する

次に、Search Consoleのデータを取り込みます。データの追加を行います。 ローカル側のGraphQLで記事のみ抽出してシート

対象のドメイン、URLのインプレッション、Webを選びます。
スクショでは切れてますが、右下に追加ボタンがあるのでクリック。

Search Consoleのデータを取り込む

これでSearch Consoleのデータを使えるようになったので、データソースのデータを統合をクリック。

Search Consoleのデータを取り込む

別のテーブルを結合をクリック。

Search Console データソースのデータを統合
サイズにLanding Pageを選択。 サイズにLanding Pageを選択
結合の設定(Confiture join)をクリック。URLとLanding Pageの一致を条件とし、左外部結合を選びます。 Confiture joinをクリック。URLとLanding Pageの一致を条件とし、左外部結合を選びます。

Search Consoleでは以下を指標として選びました。

  • Impressions(表示回数)
  • URL Clicks(クリック数)
  • URL CTR(クリック率)
  • Avarage Position(掲載平均順位)
指標はImpressions(表示回数)・URL Clicks(クリック数)・URL CTR(クリック率)・Avarage Position(掲載平均順位)

各ページの指標にどれだけの数値があるのか一目瞭然です。

空のレポートを作成しておく

GA4と連携する(2023年2月追記)

Search Console同様、GA4 を追加します。

アナリティクスのデータを統合

データが追加できたら、データソースを編集(鉛筆マーク)をクリック。

データソースを編集(鉛筆マーク)をクリック

データの結合・スプシのURLと値が一致しないので専用のフィールドを作る

データの結合するためのGA4のディメンションには ページパス + クエリ文字列またはスクリーン もしくは ページの完全な URL を使います。

GA4では ページパス + クエリ文字列またはスクリーン もしくは ページの完全な URL他のURLに関するデータと一致しません

// ページパス + クエリ文字列またはスクリーン クラス
/blogs/entry500/

// ページの完全な URL
ginneko-atelier.com/blogs/entry500/

// スプシ
https://ginneko-atelier.com/blogs/entry500/

そこでスプシやExcelでおなじみの CONCAT関数 を使ってフィールドを作成し、一致する URL を作成します。

フィールド
CONTAT("https://", ページの完全な URL)
// もしくは
CONTAT("https://ginneko-atelier.com", ページパス + クエリ文字列またはスクリーン)

フィールド名をURLなどとし、ディメンションに追加し、データを結合します。

フィールド名をURLなどとし、ディメンションに追加し、データを結合します

指標の設定

GA4の指標を追加します。 GA4の指標

サーチコンソールと連携して主に行いたいのはランディングページの改善なので、アナリティクスでは以下を指標として選びます。

  • ランディングページのPV
  • 直帰率

残念ながら、直帰率もランディングページのPVも Looker Studio で指標として直接引っ張ってこれないのでフィールドやフィルターで割り出します。

ランディングページのPVのみカウント

GA4では、PV数などはイベントとしてカウントされます。

ランディングページのPV数をカウントするためには、session_startというイベントを利用します。このイベントはセッションが始まったときのみにカウントされるイベントなのでランディングページのPV数を数えることができます。今回は結合元のデータまるごとフィルターを使って絞り込みます。

GA4では、PV数もイベントなのでフィルターを使って絞り込み

これでイベント数が ランディングページのPV になるので名前をPVなどに変更しておきます。

一致条件 : イベント名 =(一致) session_start

直帰率のフィールド

直帰率はエンゲージメント率を利用して作成します。

エンゲージメント率は直帰率の真逆の数字なので 1-エンゲージメント率 で直帰率が割り出せます。フィールドを使って出力します。

フィールド名をURLなどとし、ディメンションに追加し、データを結合します
1-エンゲージメント率

ユニバーサルアナリティクス と連携方法(サポート終了後は削除予定)

Google アナリティクス のデータ追加方法も明記しておきます。 アナリティクスのデータを統合

スプシのURLとアナリティクスのランディングページの値が一致しないので専用のフィールドを作る

アナリティクスのディメンションにはランディングページを使います。

// アナリティクス
/blogs/entry500/
// 他のデータの値
https://ginneko-atelier.com/blogs/entry500/
CONTAT("https://ginneko-atelier.com/", ランディング ページ)

Google アナリティクス と結合の設定と指標の設定

結合の設定(Confiture join)で左外部結合、表1(スプシ)はURL、表3(アナリティクス)はPerfect URLのフィールドを選択。

必要なアナリティクスの指標を追加します。

取得日時をコントロールする

日時を設定します。すべてのデータが一度に設定できたほうが便利なので、コントロールを使った方法をご紹介します。

上部メニューからコントロールの追加をクリックし期間設定を選択します。

コントロールの追加

表の位置を調整して、表の上にコントロールを設置します。期間を選んでおきます。

表の上にコントロールを設置

表のデフォルトの日付範囲を自動にしておきます。

表のデフォルトの日付範囲を自動

これでコントロールから日時を集計できるようになりました!

統合したデータに出力したいディメンション、指標を設定し表にする

以下の取得するデータをセットしただけなので、実際に出力する表に必要なデータを設定していきます。

データの統合の全体

データの統合を保存して閉じ、実際の右側のパネルから指標とディメンションを設定します。

統合したデータに出力したいディメンション、指標を設定し表にする

指標を追加するとおそらく右側のアイコンがデフォルトでSUM(合計値)と表示されているので必要に応じてAVR(平均値)に切り替えます。

ディメンション
URL(表1)
TITLE(表1)
指標
-
Impressions(表示回数)
URL Clicks(クリック数)
URL CTR(クリック率)
Avarage Position(掲載平均順位)
PV数(イベント数)
直帰率
※ SUMは合計、AVRは平均です。

ヒートマップ付きデータ表にすると、データの統合の全体はこんな感じになります。

データの統合の全体

リライト記事をフィールドを使って分類する(2023/02追記)

データスタジオ

リライトする記事を条件ごと分類できるようにします。【ブログのSEO対策】リライト記事の選び方でリライト記事の選び方を紹介しました。せっかくなので、この記事の条件に沿って分類しできるようにします。

予めスプシに 公開日(date)更新日(mod_date) も追加しておきます。

データは公開して1ヶ月間以上立ったもののみで対象、期間も1ヶ月単位などという感じで固定しておくことをおすすめします。

アクション指標
リライト(フェーズ1)公開3ヶ月以上インプレッション数月間100以下
リライト(フェーズ2)順位平均20位以下
リライト(フェーズ3)順位平均11 ~ 20位でクリック率平均3%以下
リライト(フェーズ4)直帰率が80%以上
noindexもしくは削除公開半年以上経ったのにimpression10以下/ページビュー10以下
-ページビュー300以上
【ブログ・SEO対策】リライト記事の選び方

なぜSEO対策にリライトが効果的なのか?何を基準にどの記事をリライトしたらいいのか?なんとなくリライトをするのは卒業した...

統合したデータのスプシのディメンションにも、 date と mod_date を追加しておきます。

まずは記事のフェーズの登録です。ディメンションにフィールドを追加します。

ディメンションにフィールドを追加

フィールドにフェーズという計算式を追加します。

フィールドに計算式を追加
※ スクショは多少値が違います。操作方法のみ参考にしてください。

Looker Studioでの条件式の書き方です。CASE文を使って分岐します。

CASE
WHEN 条件 THENELSE デフォ値
END

まとめて書くとこんな感じになります。

計算式
CASE
WHEN Impressions IS NULL AND PV IS NULL AND DATE_DIFF(TODAY("Asia/Tokyo"),date) > 180 THEN "noindex"
WHEN Impressions < 10 AND PV < 5 AND DATE_DIFF(TODAY("Asia/Tokyo"),date) > 180 THEN "noindex"
WHEN Impressions < 10 AND PV IS NULL AND DATE_DIFF(TODAY("Asia/Tokyo"),date) > 180 THEN "noindex"
WHEN Impressions IS NULL AND PV < 5 AND DATE_DIFF(TODAY("Asia/Tokyo"),date) > 180 THEN "noindex"
WHEN PV > 300 THEN "5"
WHEN Impressions < 300 AND Impressions > 50 AND DATE_DIFF(TODAY("Asia/Tokyo"),date) > 90 THEN "1"
WHEN Impressions > 300 AND Average Position < 20 AND Average Position > 50 THEN "2"
WHEN Average Position > 10  AND Average Position < 20 THEN "3"
WHEN 直帰率 > 0.9 THEN "4"
ELSE "5"
END

いくつか関数をご紹介します。

今日を取得
TODAY("Asia/Tokyo")
値がnull
〇〇 IS NULL
日の差分取得
DATE_DIFF(終了日,開始日)

記事の更新があった記事をわかりやすくしたい

記事の更新があった場合のみ値を表示したい時です。そのまま以下のように出力すればOKです。

日の差分取得
CASE
WHEN MOD_DATE IS NULL THEN ''
ELSE MOD_DATE
END

IS NULL が効かない場合は = ‘null’ に置き換えてください。

公開もしくは更新から30日以上立った記事のみに経過日数を表示したい

経過日数を表示するためのフィールドです。30日は様子を見たいので、公開ないしは更新から30日以上たった記事のみに経過日数を表示させます。

日の差分取得
CASE
WHEN MOD_DATE = 'null' AND DATE_DIFF(TODAY("Asia/Tokyo"), date) > 30 THEN  CONCAT(DATE_DIFF(TODAY("Asia/Tokyo"), date), '日経過')
WHEN DATE_DIFF(TODAY("Asia/Tokyo"), cast(mod_date AS DATE)) > 30 THEN  CONCAT(DATE_DIFF(TODAY("Asia/Tokyo"), cast(mod_date AS DATE)), '日経過')
ELSE '-'
END

mod_date は更新されたことがない記事がある場合、ブランクデータ(null)として取り扱われてしまいます。その場合は、mod_dateのタイプは文字列と認識されています。

CAST関数で日付にタイプを変換して使います。

cast(mod_date AS DATE)

これでリライトすべき記事や優先度がわかりやすくなります。

データスタジオ

作成したデータを期間で区切ってスプなどに落とし、作業ログを作る

どのようにリライトしたかなどログを残しておきたいですよね?ログを記録するように作成したデータをさらにスプシに変換します。

表の右上にケバブメニュー(縦3つのドット)があるのでそちらをクリックしエクスポートを選びます。

表の右上にケバブメニュー(縦3つのドット)があるのでそちらをクリックしエクスポート

スプレッドシートにチェックを入れエクスポートをクリックします。もちろん、ExcelやCSVでエクスポートもできます。

スプレッドシートにチェックを入れエクスポート

これで、いつどんなリライトをしたかログを残しておきつつ、効果測定が行なえます。

まとめ・Looker Studio を使って各種データを統合すると全貌が把握できる

Looker Studio でデータを統合すると、総合的に見てどの記事を分析すればいいかなど把握しやすくなります。

今回この表を作るのも結構手探りで作りましたが、まだまだ紹介できていない機能があるのでまた記事にまとめられたらなーと思っています。

この記事が皆さんのWeb解析ライフの一助となれば幸いです。

最後までお読みいただきありがとうございました。

この記事を書いた人

かみーゆ/フロントエンドエンジニア

資金ゼロからフィリピンで起業した海外ノマドエンジニア。IT業界10年以上でテクニカルディレクター(技術責任者)・エンジニア講師・ブリッジSEを経てLenzTechnologies Inc.を設立し、代表を務める。CMS concreteCMSエバンジェリスト。テックブログ以外も「磨耗しない人生」や「海外ノマド」のライフスタイルについて発信。好きなものは肉とハイボール。