サイバーホルンのブログCyberhorn's Blog

データポータルで、広告KWのインプレッションシェア(IS)を表示する

  • 2021.03.18
  • 2021.02.22

データ×マーケティング

本記事では、Googleデータポータルで広告キーワードの「インプレッションシェア率 (IS)」を表示する方法について紹介します。

なお、GoogleデータポータルでGoogle広告のデータにアクセスするにあたり、弊社では「databeat」と呼ばれるツールを利用しています。

databeat は、Google広告(検索・ディスプレイ)、 Yahoo!広告 (検索・ディスプレイ)、Facebook といったプラットフォームの広告データを、Google BigQuery でアクセス可能なようにデータベース化してくれるサービスです。

媒体プラットフォームが異なればデータや指標の定義が異なる場合がありますが、datatbeatでは、媒体間で対応する指標を一つにまとめた上でBigQuery に出力してくれるため、媒体横断での広告成果を分析することが可能になります。

なお、databeat などの弊社で広告データを扱う上でのツール環境は、こちらの記事をご覧ください。

Web広告予算管理・レポート出力環境を紹介(弊社事例)

Web広告予算管理・レポート出力環境を紹介(弊社事例)
弊社サイバーホルンは、 リスティング広告(Google広告・Yahoo広告の検索・ディスプレイ)SNS広告 (Facebook・Instagram・LINE)そ...

インプレッションシェア率について

インプレッションシェア率とは、Google検索広告で広告運用を行う際に登場する概念です。Google の公式サポートページ には、このように説明されています。

インプレッション シェア = 表示回数 / 広告が表示可能だった合計回数

https://support.google.com/google-ads/answer/2497703?hl=ja

このほかにも、「検索広告のページ最上部インプレッション シェア」と呼ばれる指標も存在しますが、本記事では割愛します。

また、インプレッションシェアと並ぶもう一つの指標として、「完全一致のインプレッション シェア率」という指標も存在します。なお、

完全一致のインプレッションシェア率 = 実際に広告が表示された回数 / 完全一致で表示される可能性があった回数(推定値)

という数式で表されます。

インプレッションシェア率、完全一致のインプレッションシェア率の数値調べることで、入札したキーワードのマッチタイプは適切か?(完全一致での検索ボリュームがある程度あるのに、部分一致で入札しているために、損失が出ている)、広告の入札単価は適切か?(検索ボリュームが大きいと考えられるのに対して、インプレッションシェア率が低い場合は、設定予算や入札単価が低い可能性がある)といったことを読み取ることができます。

なお、「インプレッションシェア損失率」は、100 % からインプレッションシェア率 (%) を差し引いた値です。

本記事で作成するキーワードレポート

本記事では、下図のような、インプレッションシェア率など含むキーワードレポートを作成することを目指します。

Databeatでインプレッションシェア率にアクセスする

Databeat でアクセスできる広告指標は、以下のサイトで一覧形式でまとめられています。

Databeat Exploreのディメンション・指標一覧

ここには、「キャンペーン」「広告グループ」「キーワード」といった、様々なデータベース(表)に存在する様々な指標が確認できます。

今回用いるデータベース(表)の種類は「キーワード」です。

その表の中に、検索広告のインプレッションシェアは「SearchImpressionShare」というカラム名、検索広告の完全一致のインプレッションシェアは「SearchExactMatchImpressionShare」というカラム名で提供されていることが分かります。

Google BigQuery 上のSQLクエリで、上記のカラム名を Select することにより、インプレッションシェア率や完全一致のインプレッションシェア率の数値をデータソースとして取得し、データポータル上で表として可視化することができるようになります。

指標の集計方法に注意

インプレッションシェア率や完全一致のインプレッションシェア率のデータを Google データポータル (BigQuery) で扱う際は、数値の集計方法に注意する必要があります。

下の表に、各日付でのあるKW検索数、広告表示回数、インプレッションシェア率の一例を示しました。

※「検索数」は、「厳密には広告が表示可能だった合計回数」に対応しますが、単純化のため、「検索数」と記載しています。

繰り返しになりますが、インプレッションシェア率は、
広告表示回数÷検索数 の値を % 表示することにより算出しています。

ここで、表に示した4日間でのインプレッションシェア率は、
4日間の広告表示回数の合計÷4日間の検索数の合計

により、求めることができます。

ここで、4日間のインプレッションシェア率を、単純に平均するだけでは正しい集計値は求めることができません。(なお、単純に平均した場合は、67.8% となり、正しい集計値である71%とは乖離が生じます)

しかしながら、SearchImpressionShare や SearchExactMatchImpressionShare の数値の1ヶ月間の値ををデータポータル上で集計しようとすると、「割合を単純に平均しただけの、正しくない集計値」が得られてしまいます。

そのため、1ヶ月の インプレッションシェア率 を正しく集計するには、BigQuery のデータ接続やデータポータル上で少し工夫が必要になります。

データ接続の際の注意・工夫

Google BigQuery のコンソールを叩きながら、キーワードの表に格納されている実際のデータの一部を抜粋したのが下図です。

ここで注目すべきは、2021-01-14 のデータで、impressions (広告の表示回数) が 0 ではないのに、SearchImpressionShare (インプレッションシェア率) が 0 となっている点です。

インプレッションシェア率は、広告表示回数÷検索数 という式で表されるので、「インプレッションシェア率が 0 なのに、広告表示回数は 0 ではない」という状況は数式と矛盾することが分かります。

これは、一部のケースでインプレッションシェア率が得られない場合があり、そのデータが 0 として取得されてしてしまっているためです。

この先の作業として、

  • データとして取得できるインプレッションシェア率の数字
  • 広告表示回数の数字

から、「キーワード検索数」を逆算します。そして、逆算した「キーワード検索数」の合計値、および「広告表示回数」の合計値から、「インプレッションシェア率」の正しい集計値を求めることを行います。

ここで、IS (インプレッションシェア率) = 広告表示回数÷検索数
であるので、
検索数 = 広告表示回数 ÷ IS (インプレッションシェア率)

という式で検索数を逆算することができますが、IS (インプレッションシェア率) が 0 であると、0 除算エラーが生じます。

そのため、次のような SQL でデータベース接続を行います。

SELECT date,Keyword, KeywordMatchType, AdGroupName, CampaignName, Impressions, Clicks, Conversions, Cost,
SearchExactMatchImpressionShare,
SearchImpressionShare,
case when SearchImpressionShare <> 0 
    then Impressions end as IS_imp,
case when  SearchExactMatchImpressionShare <> 0 
    then Impressions end as EIS_imp
from ... #接続先データベース名をここに入力

4-5 行目では、SearchImpressionShare が 0 のときは、0除算を回避するために、impressions の値として null を返させる処理をしています。(この指標を、IS_imp と名付けています)

同様に、6-7 行目では、SearchExactMatchImpressionShare が 0 のときは、0除算を回避するために、impressions の値として null を返させる処理をしています。(この指標を、EIS_imp と名付けています)

なお、BigQuery のSQL環境では、0 ではなく null で除算すると、計算結果としてもnull が返されます。これにより、0除算による数値エラーを回避しています。

データポータルでのインプレッションシェア率の正しい集計

上記で接続したデータソースをもちいて、次はデータポータルで1ヶ月間にわたるインプレッションシェアを正しく集計するための計算フィールドを組み、数値の可視化を行います。

インプレッションシェアを集計する計算フィールドでは、次のような数式を入れました。

sum(IS_imp) / SUM(IS_imp/SearchImpressionShare)

同様に、完全一致のインプレッションシェアを集計する計算フィールドでは、次のような数式を入れました。

sum(EIS_imp) / SUM(EIS_imp/SearchExactMatchImpressionShare) 

いずれの数式も、分母にある SUM は、個別値に対して行った 広告表示回数÷IS の計算結果を合計し、検索数の合計を求めています。

そして、インプレッションシェア率の定義に基づいた計算を再び行うことで、1ヶ月間にわたるインプレッションシェア率を正しく集計するようにしました。

ここで用いた集計の方法を用いれば、インプレッションシェア率のみならず、1ヶ月間にわたるインプレッションシェア損失率もデータポータル上で表示させることができます。

集計した数値の検証

Google広告の管理ツール上では、データの閲覧期間を変えたとしても、その期間に渡るインプレッションシェア率は正しく集計されます。

しかしながら、Google広告の数値をAPIで取得し、BigQueryのデータソースからデータポータル上で可視化するには、数値が正しく集計されるように処理を追加する必要があることを説明しました。

この方法では、Google広告管理ツール上のインプレッションシェア率の数字と若干の誤差が生じる可能性があります。

手元の環境でGoogle広告管理ツール上のインプレッションシェア率、データポータルで処理・集計したインプレッションシェア率の数値を比較すると、若干の誤差はあるものの、インプレッションシェア率・完全一致のインプレッションシェア率のおおよその傾向を取得できていました。

そして、広告表示回数(impressions)の値が大きくなるほど、実際のインプレッションシェア率との誤差は小さくなり、広告表示回数(impressions)の値が小さくなるほど、実際のインプレッションシェア率との誤差は大きくなることも確認できました。

本記事で紹介した内容が、データポータル上で広告キーワードの成果を分析する際の一助となれば幸いです。

(文章 : Cyberhorn マーケティングデータチーム エンジニア)

  • 2021.03.18
  • 2021.02.22

データ×マーケティング

広告代理店/制作会社の方へ

無料アカウント診断サービス