【トラブル】スクロール率100%のゴールが機能していない
カスタムCVゴールを設定することで、任意の%のスクロールゴールを計測することが出来ます。
しかし、ユーザーが使用しているデバイスの画面サイズによっては、100%のゴールが発火しない場合が稀にございます。
ページを最後までスクロールしてもスクロール率100%のゴールが発火しない場合は、設定しているスクロールゴールを下記のコードに差し替えてお試しください。
var rawTgtReadingRate = [20,75,100]; // ここに計測したいスクロール率を0~100で入力してください。左記だと、20%,75%,100%のスクロール到達が計測できます。い。
var lastReachedTgt;
var conditions = {
docHeight : 1,
winHeight : 0,
scrollTop : 0,
readingRate : 0,
update : function(){
this.docHeight = $(document).height();
this.winHeight = $(window).height();
this.scrollTop = $(window).scrollTop();
this.readingRate = Math.round((this.scrollTop + this.winHeight) * 100 / this.docHeight);
}
};
var intent = function(readingRate){
//以下、必要な計測数値に応じてご調整ください。例として、25%,75%,100%を計測する場合のコードを下記に記述しています。
/* スクロール率25% */
if(readingRate == 25) {
/* 該当のカスタムコンバージョンタグを挿入してください */
}
/* スクロール率75% */
if(readingRate == 75) {
/* 該当のカスタムコンバージョンタグを挿入してください */
}
/* スクロール率100% */
if(readingRate == 100) {
/* 該当のカスタムコンバージョンタグを挿入してください */
}
$(window).trigger('scrollEvt', readingRate);
};
var timerId;
var checkConditions = function(){
if(typeof(timerId) !== 'undefined'){
clearInterval(timerId);
}
conditions.update();
if(conditions.readingRate >= tgtReadingRate[0]){
lastReachedTgt = tgtReadingRate.shift();
intent(lastReachedTgt);
}
if(tgtReadingRate.length){
timerId = setInterval(checkConditions, 300);
}
};
var tgtReadingRate = [];
for(var i=0,len=rawTgtReadingRate.length;i<len;i++){
if(rawTgtReadingRate[i]>0 && rawTgtReadingRate[i]<=100){
tgtReadingRate.push(rawTgtReadingRate[i]);
}
}
tgtReadingRate.sort(function(a,b){return a - b;});
if(Number($.fn.jquery.match(/\d+\.\d+/)[0])>=1.7){
$(window).on('load', checkConditions);
}else{
if(window.addEventListener){
window.addEventListener('load', checkConditions);
}else if(window.attachEvent){
window.attachEvent('onload', checkConditions);
}
}