はじめに
こんにちは、GMOアドマーケティングのM.H(@masaseat)です。自分はGMOアドマーケティングでアドネットワーク「AkaNe」とDSP「ReeMo」のProduct Managerを担当しています。
業務において広告配信結果の分析や、売上や性能のボトルネックをGoogleのデータウェアハウス「Google BigQuery」を用いて分析することが多いのですが、今回はその解析結果をプロダクトマネジメント業務や、広告運用メンバーの業務改善に活かしてみた方法をご紹介します。
分析環境について
GMOアドマーケティングでは、広告配信結果のほぼ全てのログがGoogleのデータウェアハウス「Google BigQuery」に収納されています。GMOアドマーケティングではエンジニアだけではなく、自分のようなプロダクトマネジメント業務を行うメンバーや、広告運用メンバーもGoogle BigQueryにアクセス/クエリ実行を行う権限が付与されており、業務に必要な分析を自由に行うことが可能です。
(Google BigQueryはクエリ実行量に応じた従量課金制ですが、分析に関するコスト面でもかなり自由な利用が認められています。しかし「SELECT * 」のようなダイエットしないクエリ実行を乱発させた場合はアラートが入りますw)
また、毎日確認するようなデータの可視化/メンバーへの提供を行う場合には、Google BigQueryとGUIベースでシームレスに連携が可能な「Google Data Portal」を利用しています。
現状の課題
社内に必要なデータこそあるものの、事業部サイドではまだまだそのデータを十分に活用できている状況ではありませんでした。要因は以下のような部分にあると考えています。- 売上や広告効果の変動要因を正確に把握するにはある程度SQLを書く能力が必要だが、広告運用メンバーや営業メンバーではまだ対応が難しい/時間がかかる
- DSPなど高度な機械学習モデルを用いて広告配信価格を決定するプロダクトでは、売上や広告効果の変動変動要因が管理画面だけでは分かりづらい
- 新たな集計項目を管理画面に追加することは可能だが、恒久的に利用する/お客様に提供する画面のほうが優先度/緊急度共に高く、スピーディーな対応が難しい

やってみたこと
売上や性能の把握
まずはProduct Managerとしてマストな、売上数値の管理や性能の可視化に着手しました。プロダクト全体の数字をより早く集計し、特定メディアや広告アカウントの売上などの異常値に早く気がつくことで、技術的な課題を発見したり、運用上の課題を早期に発見して個別の運用メンバーをフォローすることが狙いです。 日別の売上や広告配信スペース毎の勝率などは管理画面でも分析が可能ですが、これに加えて特定のオークション環境毎の性能や売上の差分表示などの、より数値変動の要因を判断しやすい集計項目を洗い出し、ダッシュボードを作成しました。
(重要な数字であるだけに、中身を全く見せられず申し訳ありません!)

簡単なレポートであればSELECT/FROM/WHERE/GROUP BYの概念さえわかれば書けるようなクエリでも、Google Data Portalのデータソースとして利用可能です。
データソースを追加するためには、Google Data Portalで新規のレポート画面を作成後、上部メニューバーの「データの追加」項目より「BigQuery」を選択します。

この際に社内で既にレポート用のBigQueryテーブルが存在する場合は「カスタムクエリ」を使用せずに、そのままテーブルを指定することも可能です。
今回は例として、日別×広告配信スペース別ににインプレッション数の合計を集計するクエリを書きました。

ここでは例として標準で用意されている「日付を指定する」変数を追加し、後ほどダッシュボード上でレポーティングしたい期間を変更できるようにしておきました。
他にも、任意のテキスト(STRING)や数値(INT64/FLOAT64)で変数を指定することが可能です。
※例えば100個ある広告スペースIDを完成したダッシュボードで絞り込み検索することもできますが、表などを作成する場合は、SQL文自体のWHERE句で絞り込みをかけることも可能です。

報告に必要な数値の集計
他にも、定例ミーティング等で報告が必要な数字の集計を行っています。これは広告業界特有の事情ですが、売上を集計する区分として「商流」と呼ばれる、どの広告代理店/メディアレップ経由で配信している広告であるかの区分を行っています。
GMOアドマーケティングのGoogle BigQueryには、営業面で利用するような商流などに関する情報が入っていないため、ダッシュボード化には情報を追加する必要がありました。
Google Data Portalでは、Google BigQueryで集計したデータソースに加えて、広告運用者おなじみの「Googleスプレッドシート」も読み込むことが可能です。
今回は広告代理店名とメディアレップ名をGoogle BigQueryにテーブルとして追加せずに、既存の管理表を読み込む方法で集計を行いました。
Google BigQueryを利用しておらず、日々の配信結果集計をGoogleスプレッドシートで行っている場合も、同じ方法でBigQueryの「カスタムクエリ」の代わりに配信結果を読み込ませることが可能です。 Google Data Portalでスプレッドシートを扱う場合には以下の方法で追加することが可能です。 まずGoogleスプレッドシートをデータソースとして追加します

SQLで集計した数値と、Googleスプレッドシートにある項目はSQLの「JOIN」の要領で結合することが可能です。
今回はSQLで集計した「広告主ID毎の売上(gross)」とスプレッドシートで集計した「広告主IDと代理店名/メディアレップ名の対比表」を結合します。


広告運用者やセールス担当の方などは、お客様への定例レポートのうち数字集計部分をGoogle Data Portalで自動化し、要因分析や施策の考案により多くの時間を割くことも可能になります。

広告運用の効率化
さてさて、本題の広告運用効率化の部分です。先に述べたように、Google BigQueryとGoogle Data Portalを用いると、管理画面やExcel等で集計しているものはほぼ全て集計することが可能です。
また、Google BigQueryを用いることで管理画面で分析できる以上のことができるようになります。
Google BigQueryを広告運用に活かすためには、以下の2つの観点でデータの可視化目的を区分する必要があると感じました。
- 管理画面よりも効率的に集計が可能なもので、社内運用メンバーの業務効率に寄与するもの
- 各メンバーが運用している広告アカウントの課金状況/CPA等の効果状況(アカウントIDではなく担当メンバーの名前で絞り込みを可能にする)
- 残予算等の管理上必要な数字
- etc…
- 管理画面では集計が困難で、本来はGoogle BigQueryを用いた分析が必要であるもの
- クリエイティブ毎のフリークエンシー
- ニュース要因の把握(どのようなコンテンツでクリック率やコンバージョン率が高かったのか)
- etc…

- 広告主アカウント/配信先メディア毎の売上/粗利差分レポート
- メンバー毎の配信金額/予算管理レポート
- 広告配信モデル毎の基本性能(bid価格/勝率/モデル精度/課金金額等)レポート
- DSPとしての基本性能にボトルネックが無いかの確認用
- ニュース(記事コンテンツ)別の広告クリック率/コンバージョン率
- 広告効果や配信金額の変化が、ニュースの一時的要因であるのかの確認用
- コンバージョン計測APIの設定に失敗していないかのレポート
- 広告配信スペース毎のクリエイティブカテゴリ配信状況
- 配信が特定の業種の広告に偏っていないかの確認用
- 広告審査状況に遅延が発生していないかの確認用
- etc…
おわりに
基本は自分の分析効率を上げるという意図でスタートしたBig Dataの活用ですが、社内の運用メンバーに提供するにつれ「こんなレポートもあると運用がやりやすい」という声が上がるようになりました。また、まだ自らSQLを書いて分析するには至らずとも「こういった指標は出せるよね?」という、どのようなデータが蓄積されているか/どのように加工できるかを意識した要望も聞こえてくるようになりました。
業務効率の改善や分析能力の向上には技術的な能力に加えて「たぶんこんなことができそう」「こういう指標が売上に影響しそう」という感覚的なものが必要だと考えているのですが、今回のダッシュボード化を軸としてBig Data活用で、広告運用メンバーを中心とした非エンジニアメンバーにもこの分析すべき項目をとらえる感覚がより根付いてきたと感じています。
明日はM.H(イニシャルは同じですが自分じゃないですw)さんの「特徴量次元削減手法のt-SNE・UMAPで記事文章ベクトルの可視化をしてみた」に関しての記事です。
引き続き、GMOアドマーケティング Advent Calendar 2021 をお楽しみください!
■エンジニア採用ページ ~福利厚生や各種制度のご案内はこちら~
https://note.gmo-ap.jp/n/n02cbeb6edb0d
■noteページ ~ブログや採用、イベント情報を公開中!~
https://note.gmo-ap.jp/