はじめに
こんにちは、R&D本部アドプラットフォーム開発部の加瀬です。
2018年も残すところあと1ヶ月となりましたが、みなさんいかがお過ごしでしょうか。
振り返ってみると「平成最後の年」ということもあってか、2018年も世間は話題に事欠かない年だったかと思います。
さてさて、アドテクの視点で2018年を振り返ってみると、テレビ番組などでも取り上げられていたように、アドフラウドがメイントピックとして取り上げられることが多かったかと思います。
アドフラウドを取り巻く状況
不正な広告掲載・配信に関しては昔からぼちぼちあり、例えば
- 見えないページを設置したり
- ボットに巡回させてトラフィックを水増しさせたり
- 強制的にリダイレクトさせてみたり
いろいろありますが、先述した2018年の状況に伴い広く認知されるようになった気がします。
また、日本のデスクトップ(PC)におけるアドフラウド率が81%だとか、年100億円の被害だとか、どうも日本ではアドフラウドとなじみが深いのは数字としても出ているようです。
(数字の実際のところ、という観点はありますが。。。)
■参考:
ご多分に漏れず、弊社でもサプライ・デマンド問わず、アドフラウド・不正広告の被害に遭遇することがあります。
が
黙って指を咥えているわけではありません。
みなさんは「NO MORE 映画泥棒」をご存知でしょうか。
映画上映前のCMで、劇場内での映画の撮影・録音が犯罪である、ということを啓発するためのあれです。
こちらからキャッチコピーを一部拝借して、「アドフラウド・不正広告許さないぞ」と言う旗の下にアドフラウド・不正広告の調査・検知に日々勤しんでおります。
ということで、弊社での取り組みを簡単に頭出しの部分ではありますが、
- メディア・ユーザー向けの取り組み
- 広告主向けの取り組み
をご紹介します。
メディア・ユーザー向けの取り組み
メディア・ユーザー向けの技術的な取り組みとして、リダイレクト広告への対策を説明します。
遭遇した方もいらしゃるかもしれませんが、リダイレクト広告はWebページを閲覧中に強制的に意図しないページへの遷移をさせるものを指します。
そこで対策として
- DSPから返却される広告タグの定期的な自動チェック
- ブラウザ側での(ほぼ)リアルタイムチェック
を行なっています。
広告タグの定期的なチェック
悲しいことに、DSPからレスポンスされる広告タグが悪意のないものだとは言い切れなかったりします。
そこで
- トラフィックの一部のレスポンスに含まれる広告タグの取得と保存
- headless chromeを用いて上記のレンダリングを行い、リダイレクトのチェック
ということをシステム的に行なっています。
これにより、リアルタイムではありませんが強制リダイレクトが起きたDSPとその広告タグを特定し、停止作業を行うことにより被害を最小限に防ぐことができるようになります。
ブラウザ側での(ほぼ)リアルタイムチェック
なるべくリアルタイムで起こっているものを早くキャッチしたい、という要望に答えて「JavaScriptで強制リダイレクトの検知ができないか」という取り組みを行なっています。
JavaScriptにはページ離脱をしたときに発生するbeforeunloadなどのイベントがあり、それをevent listenerでハンドリングすることで検知できないかを試みました。
が、一筋縄ではいきませんでした。
ページ離脱にはいくつかパターンがあり、一例を挙げると
- リンクのクリック
- URL直接入力による遷移
- 戻る/進むボタンによる遷移
- ページのリロード
など「ユーザーの能動的なアクションによって発生するページ離脱をどのように判断するか」という点が課題としてありました。
結局、
- click、history、focus、blurなどのイベントハンドリングを愚直に行いユーザーのアクションと切り分ける
- 上記をすり抜けてきたものに関してログを書き、バッチで集計する
という結論にいたりました。
ある程度の誤検知は防げるようになったのですが、まだ一部把握しきれていないパターンがあるみたいなので、今後の課題として取り組みたいと考えています。
広告主向けの技術的取り組み
広告主向けの取り組みとして、テレビ番組でも取り上げられた「隠し裏広告」のほかに、名前が似ていますが「隠し広告」への対策も紹介させていただきます。
隠し広告の配信検知
実は昔からよくある手法でして、0x0サイズのiframeの中に別のウェブページを書き出したり、広告だけのページを作りそれを書き出したりするやり方が多いです。
この時
- リファラーの偽造ぽいこと
- 配信ページの偽造ぽいこと
- トラフィックの不正水増し
が簡単にできてしまうというわけです。
著作権問題のあるサイトや、昔のまとめサイトでもよく見かけたお馴染みの手法だったりします。
手法の性質上、ユーザーの目に触れるとバレてしまうので、明らかにおかしなサイズのiframeの中に書き出します。
そのためJavaScriptでwindowサイズを取得し、適当に閾値を決めればある程度対応できる残念な手法だったりもします。
隠し裏広告の配信検知
隠し裏広告は、古くからあるポップアンダーと呼ばれる広告の配信方法の延長です。
結局のところ仕組みとしては
- 広告タグが呼び出される
- 広告タグのクリックURLを取得する
- ページ上のaタグのクリックイベントとして
- location.href = 2のリンクを登録
- window.open(正しいリンク)を登録
することにより
- 前面に本来のリンク先
- 裏面(もともとのwindow)に広告のリンク先
を表示させるものでした。
隠し裏広告は、ポップアンダーにおける広告のリンク先を別のメディアのURLにすることで
- 前面に本来のリンク先
- 裏面に別のメディアのURL
を表示することにより、トラフィックの融通や広告の不正表示を実現します。
つまり「ページが前面にあるかどうか」という点がポイントとなってきます。
都合のいいことにJavaScriptではdocument.visibilityStateで現在のページが「見える状態かどうか」を判定することができます。
なので
- 広告タグの書き出し
- document.visibilityStateで現在の状態を判定
- hiddenの場合だとオークションに行かない、もしくは何かしらのビーコンを書き出す
とすることで、ある程度の正しくない状態における表示の検知/停止が可能になると考えています。
終わりに
以上、
- アドフラウドを取り巻く現状
- 弊社での取り組み
を簡単ではありますが紹介させていただきました。
改めて振り返ってみるとアドフラウドにも色々な種類があり、各々に対する対策もそれに従って生まれてきている状況だということが分かるかと思います。
現状はバナー広告のクリック課金によるものが多いのですが、今後、特に動画のような高単価かつ視聴による課金を求めるようなものに関しては、不正なインプレッションが発生するだけで更に大きな被害になることが予想されるので、引き続き検証と対策を行なっていきます。
ありがとうございました。