読者です 読者をやめる 読者になる 読者になる

でぶててのWEB録

PPC広告とか!タグマネジメントとか!WEB解析とか!だいたいそこらへん。

【YTM】滞在時間を取得して、リタゲを精緻化

f:id:debutete:20151113072505j:plain

久しぶりの投稿です。
別にメンドくさかったわけじゃないんだからねっ!(誰



ということで、


Yahoo!タグマネージャー(YTM)のスクリプトを解放していきます。
どう設定していいかわからんっ!と息巻いていた方々にでぶててがお届け☆(キャピ


ガンガン使ってくだいませっ!!!


滞在時間を取得する、その意味

ページ内滞在時間を取得してリターゲティングに生かす場合、滞在時間を取得することで「直帰ユーザー」と「精読ユーザー」とに分けることを目的とします。

  • 「直帰」とは、ページ内コンテンツを読むことなく離脱したユーザー、
  • 「精読」とは、ページ内コンテンツを読んだ/見たユーザー を指します。


「滞在時間」=「ページ内で経過した時間」を、「読んだ/見た」とみなすわけです。


直帰ユーザーはページ内コンテンツに興味がないユーザーとみなしてリターゲティングリストから除外し、精読ユーザーはコンテンツに興味があるとみなして「入札単価をあげる」などアグレッシブな調整をかけます。



一つ注意してもらいたいのは、あくまで仮説は仮説。
社内実験だと『直帰ユーザーのほうがCPAが安くなった』ケースもあったりしたんでご注意を^^


全体フロー

GTMのように簡単に設置できるわけではないです。少し手間が、かかります。
ここで記載する方法は、複数の滞在時間を取得してタグを稼働する手法になります。

  1. 滞在時間を取得するイベントタグを設置
  2. 滞在時間を取得したいページに、1)のイベントをバインディング
  3. リターゲティングタグに稼働条件とパラメータをセット


という、流れです。

※本記事内のJSは、同僚である @AQRiL_1132 の協力を得て作成。


手順1)滞在時間を取得するイベントタグを設置

サービスタグ > サービスタグを追加 > スマートカスタムタグを追加 > サービスタグ情報 に、スクリプトを記述して保存。

<script type="text/javascript">
(function() {
    var timer_sec = [5,60,600];
    timer_sec.sort(function(a,b){return a - b;});
    var timer_id = 0;
    var stay_over_sec = 0;
    ytm_stay_over_time_value = '';
    
    var intent = function(){
        clearInterval(timer_id);
        stay_over_sec = timer_sec.shift();
        ytm_stay_over_time_value = to_hms(stay_over_sec);
        jQuery(window).trigger("elps_time");
        if(timer_sec.length){
            timer_id = setInterval(intent, (timer_sec[0] - stay_over_sec) * 1000);
        }
    }
    timer_id = setInterval(intent, timer_sec[0] * 1000);
    function to_hms(raw_sec){
        var hms= '';
        var h = raw_sec / 3600 | 0;
        var m = raw_sec % 3600 / 60 | 0;
        var s = raw_sec % 60;
        if(h){ hms = h + 'h';}
        if(m){ hms += m + 'm';}
        if(s){ hms += s + 's';}
        return hms;
    }
}());
</script>

※3行目の右辺 [5,60,600] で、取得したい秒数を指定します。コピペするときにでも取得したい値に変更してください。


実際に設置するとこんな感じ。

f:id:debutete:20151113062557p:plain



手順2)滞在時間を取得したいページに、1)のイベントをバインディング

イベントバインディングを追加する

ページ管理 > 滞在時間をしたい任意のページを選択 > イベントバンディング > イベントバインディングを追加 > イベント > 新規作成 と進んで、キャプチャのように設定して保存。手順通りにキャプチャを並べてます。

f:id:debutete:20151113064016p:plain

f:id:debutete:20151113064031p:plain

※各項目の説明

  • イベント名 … 任意
  • イベントの説明 … 任意
  • トリガー … elps_time
  • バインディング方法 … ダイレクト
  • エレメントセレクター … window

イベントバインディングにデータエレメントを追加する

保存したイベントバインディング > イベントデータバインディング とクリックして、キャプチャのように設定する。

f:id:debutete:20151113065301p:plain

※各項目の説明

  • データエレメント … 任意
  • データバインディングエクスプレッション … ytm_stay_over_time_value

手順3)リターゲティングタグに稼働条件とパラメータセット

手順2までで取得したいページでイベントを起こし、そのイベントを取得する準備が終了。リターゲティングタグにイベントを稼働条件として動くよう設定します。


稼働条件にイベントをセット

サービスタグ管理 > 滞在時間を設定したいタグ > タグ実行条件 > 条件となるイベントの追加 で、手順2)で作ったイベントを指定。

f:id:debutete:20151113065936p:plain

f:id:debutete:20151113065944p:plain


タグにパラメータをセット

サービスタグ管理 > サービスタグ情報 とクリック。
GDNは、Custom Parametersにセット。
YDNは、Retargeting Labelにセット。

f:id:debutete:20151113070327p:plain
※画像はYDNの場合。


最後に、管理画面でリターゲティングリストを作成。

滞在時間の単位は、「時(h)」「分(m)」「秒(s)」で表示するようにしています。

例えば、
YTM内で「30s」「60s」でイベントが動くように設定してると、
YDNでは「stay_over30s」「stay_over1m」
GDNでは「over30s」「over1m」 となります。



ご注意くださいませ^^


注意点

この方法は滞在時間を複数取得してタグの稼働条件にしますが、リターゲティングタグにGDNのカスタムパラメーターやYDNのリターゲティングラベルのように、オプションで値をセットできるタイプに限ります。ただし、取得する時間が1つであれば、どんなリタゲタグでも使えます。

一つ一つ滞在時間を指定する方法もありますが、大人の事情によりここには書けないので日を改めて別の場所に書きます。お待ちくださいませ♪




copy right 2012 でぶてて