テレビCMの残存効果をAd Stock(アドストック)で計算してみる【R & Pythonコード付き】

f:id:ekanoh:20180712214522p:plain

テレビCMの効果測定

昨今の広告市場を席捲しているデジタル広告市場においては、「効果測定」をしろと言われたば、 CVR(コンバージョン率)やCPA(獲得単価)など、極めて精緻で細やかな指標を用いてレポートすることができる。 そのため、広告をどれだけ出稿するかの意思決定を正確なデータに基づいて行え、大変使い勝手がよい。

しかしながら、このようにデータが整備されているデジタル広告と異なり、 新聞、雑誌、ラジオ、テレビなど古来からのメディアの効果測定はデータ分析にひと工夫が必要だ。

今回は、最もポピュラーに使われている「テレビCM」の効果測定を例にして考えてみよう。

例:テレビCMの効果測定

たとえば、以下のように「テレビCMとその視聴率」と「売上」の時系列データがあったとして、 「効果測定」をしたい状況を考えよう。(※架空のデータ)

日付(週) 視聴率 売上
2018年6月11日 0% 30万
2018年6月18日 10% 80万
2018年6月25日 15% 60万
2018年7月2日 8% 120万
2018年7月9日 10% 140万

どのように分析すればいいだろうか?

まず考えたいのは、 「視聴率が高い日に売上もあがっているのではないか」ということだ。

――しかしながら、よく見てみると視聴率が最も高い15%の日に、売上が2番目に低い60万となっているため、 この仮説の蓋然性は低いと考えられる。

グラフにしても以下の通りである。 「視聴率が高い日に売上もあがっている」と読み取るのは難しいだろう。

f:id:ekanoh:20180712204748p:plain

このようなデータは頻繁に出くわすのだが、 実はひとつの理由にテレビCMの効果には時間差があることがある。

たしかに、ゲームアプリのCMを見て、すぐにウェブ検索をしてアプリをダウンロードすることもあるだろうが、 化粧品のCMを見て、翌日または数日後にドラッグストアで買って帰る場合や、 高級な家電製品のCMを見て、ボーナスが出た翌月に店頭で購入する場合など、 効果のあらわれ方には時間差があることは想像に難くないだろう。

どうやって正しく効果測定するか?

広告の残存効果(アドストック)

このような効果の測定には広告の残存効果をモデル化したアドストックという指標を導入する。 英語ではAd Stock、Carry Over Effect、あるいはDecay Effectなどという表現をされることもある。

f:id:ekanoh:20180712205311p:plain

上図のように、広告を打った初週だけでなく、 翌週、翌々週以降も効果が残存しているという設定でモデルを定式化する。

定式化

Def: Simon Broadbent's Adstock

時点tでの残存効果(アドストック)A_tを以下のように定義する。

{ \displaystyle
A_t = T_t + \lambda A_{t-1}
}

ただし、

  • A_t: 時点tでのAdStock
  • T_t: 時点tでの広告指標(たとえば視聴率)
  • \lambda: 忘却率(減衰率・残存率)※
    • どれくらいの割合で減衰していくかを表す定数
    • 0から1の間の数値を取る

エビングハウスの忘却曲線のように、「消費者の脳内に広告の効果が留まっている」という考え方をして、「忘却率」と呼ぶ場合がある。

具体例でみる

「むむむ数式だけだとイメージが湧かないゾイ」という方には、 実際にアドストックを計算した例を用意したのでご覧いただきたい。数値は上記の例をそのまま使っている。

忘却率を仮に0.80と仮定すると、以下のようになる。

日付(週) 視聴率 アドストック 売上
2018年6月11日 0% 0% 30万
2018年6月18日 10% 10% 80万
2018年6月25日 15% 23% 60万
2018年7月2日 8% 26% 120万
2018年7月9日 10% 31% 140万

Excelで計算した場合の数式は、以下の通りである。 ぜひ、上記のモデルの数式と見比べながら確認してみて欲しい。

f:id:ekanoh:20180711121817p:plain

グラフにしてみると、ただの視聴率(GRP)を使っていたときと比べて、 広告の効果がはっきりとわかる形になっていることがわかるだろう。

f:id:ekanoh:20180712205534p:plain

忘却率をどうやって決めるか

さきほどは忘却率を0.80と仮に決めていたが、実際の現場ではどのように決めるのが妥当だろうか。 以下にふたつの方法を提案する。

1. 忘却率ごとに相関を出して最適化する(定量的)

ひとつは、広告効果を最も適切に説明するようなパラメータを機械的に選びとる方法である。

忘却率が0.01のとき、0.02のとき、・・・、0.98のとき、0.99のとき、と忘却率を100通り試して、 アドストックと広告効果の相関が最も高くなるようなパラメータを選びとればよい。

PythonやRで計算してもよいし、100通り程度ならExcelでガガっと計算させるのいいだろう。今回はPythonスクリプトを書いて最適なパラメータを見つけ出してみよう。

本記事の下部に掲載したPythonスクリプトを読み込んだ上で、adstock_optimize(grp, sales)の形で実行すれば以下のような結果になる。

f:id:ekanoh:20180711101905p:plain

グラフより、忘却率=0.78で相関係数が最大値をとるようなので、 忘却率=0.80としていた上記の例は、定量的に考えても筋が悪くはなさそうだ。

2. 商材・メディア・クリエイティブなどに合わせて決める(定性的)

ふたつめは、商材・メディア・クリエイティブなどに合わせて経験的に設定する方法である。

前段で触れたように、商材やクリエイティブの訴求方法によって広告の効果の表れ方が変わるのは 明らかだが、メディアによっても平均的な忘却率が存在すると考えられている。

実際にメディアに携わっている人などからヒアリングしたり、 分析の経験豊富な人から経験的な数字を教えてもらうなどして、忘却率を設定しよう。

半減期

なお、忘却率を表現する指標として半減期というものがあり、

効果の半分が無くなってしまう時点のことを表し、 概ね「広告効果はこれだけ持続しますよ」というものを表現している。

概ね、以下のようなものだと言われている。

  • テレビ:2-6週間
  • ラジオ:1-5週間
  • 新聞:2-3週間
  • 雑誌:4-8週間
  • オンライン(認知):2-4週間
    • Yahooのトップページなどのように、認知目的の広告
  • オンライン(行動):1-2週間
    • 刈り取り型の広告、リターゲティング広告など

(引用元:How Long Does Your Ad Have an Impact?(筆者訳))

忘却率をヒューリスティック(経験的・直観的)に定めたあとは、 上記のようなベースラインと見比べて過度に大きく・小さくなっていないか確認しておくとよいだろう。

さいごに

今回は、以下の3つのキーワードを扱った。

  • アドストック
    • 残存効果・Ad Stock・Carry-Over Effect・Decay Effect などとも言う
  • 忘却率
  • 半減期

広告の効果測定にはさまざまなモデルが提案されていて、日々論文も書かれているため なかなか何を使えばいいか難しいのだが、主要なモデルのひとつとしてぜひ理解しておいてほしい。

コンサルタント・マーケター・データサイエンティストなどの職種を目指している人は、分析手法の手札を増やすためにPythonまたはRなどのプログラミング言語を使えるようにしておくとよい。たとえば、プログラミング学習サイトであるCodecampPythonデータサイエンスコースの無料体験を受けて、現状の能力とこれから身に着けたいスキルを明確にしておくとよいだろう。

付録:Ad Stockを最適化するスクリプト

Python

Calculate the optimal Ad Stock

R

Calculate the optimal Ad Stock in R