はじめに
DFP (DoubleClick for Publishers) でウェブサイトに広告枠を表示する場合、インプレッション数(広告が表示された数)に対して、クリックされる割合が高いほど、表示された広告がクリックされやすい枠とみなされて広告枠の価値が高まります。
しかし、スマートフォンなどでスクロールして見ていく縦長のサイトの場合、サイトの下の方に設置された広告はユーザーに視認されずにページから移動されてしまうことがあります。このような広告の場合、サイトの初期描画時から広告を表示していると、見られていないのにインプレッションが加算されて広告枠の価値を下げてしまっていると想定できます。
今回、広告価値の指標である CPM(広告表示1,000回あたりにかかる掲載コスト)を上げる施策で、一定の位置までスクロールした場合に DFP 広告を表示させて、広告枠の無駄なインプレッションを減らす対応を行ったので紹介したいと思います。
※この記事は、すでにサイトに DFP が導入されていることを前提とします。
スクロールで DFP を表示する
実装は以下の通りです。
HTML
<body>
...(略)
...(略)
...(略)
...(略)
<div id="div-gpt-ad-123456789-0"></div>
...(略)
</body>
(スクロールで表示させたい広告枠)
JavaScript
var $win = $(window);
var $banner = $('#div-gpt-ad-123456789-0');
// スクロールイベント登録
$win.on('scroll.dfp1',function(){
// 広告の最上部がウィンドウに現れる500px手前まで来たら
if($banner.offset().top-500 < $win.scrollTop()+$win.height()) {
// スクロールイベントを解除
$win.off('scroll.dfp1');
// 広告表示
googletag.cmd.push(function() {
googletag.defineSlot('/1234/travel/asia', [300, 250],'div-gpt-ad-123456789-0').addService(googletag.pubads());
googletag.display("div-gpt-ad-123456789-0");
});
}
});
実装のポイントを以下に記載します。
- 広告の読み込みを見せないようにするため、広告の最上部がウィンドウに現れる前に広告表示処理を実行する
- 広告を表示した後はスクロールイベントを発生させたくないため、名前空間をもたせて登録したイベントを解除する
まとめ
上記の実装によって、想定通り広告のインプレッションが減り、CPM 向上につながりました!
コンテンツが見られない場合の無駄な広告表示がなくなり、効率の良いサイトになりました!