Help Center
SPAではページが変わってもPtengineの基本タグが再度読み込まれず、PVが正しく計測されないため、PtengineのsetPVTagを利用することでPVを手動で発火し計測する必要があります。しかし例えばページ刷新やその他の場合でページが更新される場合、基本タグと設定したsetPVTag が同時に発火され、PVが重複して計測されるケースがあります。 上記のように重複して発火されることを回避するためには、以下の方法で対応する必要があります。
基本タグもしくはsetPVTagが発火する際に、変数pt_spa_trigger_markを利用することでクッキーにアドレスバーのURLと発火タイミングを記録します。更に次回ページ更新された際にクッキーで記録した内容を元に、setPVTagを発火させるかを判断しコントロールします。
<script src="https://js.ptengine.jp/xxxxxxxx.js"> document.cookie="pt_spa_trigger_mark="+location.href+"ptengine"+new Date().getTime(); </script>
<script> try{ function getCookie(key){ var str = document.cookie; var arr = str.split(";"); for(var i=0;i<arr.length;i++){ var data = arr[i].split("="); if(data[0].trim() === key){ return data[1]; } } } if(getCookie("pt_spa_trigger_mark")){ var pt_mark = getCookie("pt_spa_trigger_mark").split("ptengine"); if(pt_mark[0] === location.href && (new Date().getTime() - parseInt(pt_mark[1])) > 3500){ window._pt_sp_2 && window._pt_sp_2.push('setPVTag,'+ location.href +',replace'); document.cookie = "pt_spa_trigger_mark="+location.href+"ptengine"+new Date().getTime(); }else if(pt_mark[0] != location.href && (new Date().getTime() - parseInt(pt_mark[1])) > 3000){ window._pt_sp_2 && window._pt_sp_2.push('setPVTag,'+ location.href +',replace'); document.cookie = "pt_spa_trigger_mark="+location.href+"ptengine"+new Date().getTime(); } }else{console.log("not found pt_trigger")} }catch(e){console.log(e)} </script>
以下タグを手動で設定することも可能ですが、設定する際に技術の方に依頼してください。
try{ function getCookie(key){ var str = document.cookie; var arr = str.split(";"); for(var i=0;i<arr.length;i++){ var data = arr[i].split("="); if(data[0].trim() === key){ return data[1]; } } } if(getCookie("pt_spa_trigger_mark")){ var pt_mark = getCookie("pt_spa_trigger_mark").split("ptengine"); if(pt_mark[0] === location.href && (new Date().getTime() - parseInt(pt_mark[1])) > 3500){ window._pt_sp_2 && window._pt_sp_2.push('setPVTag,'+ location.href +',replace'); document.cookie = "pt_spa_trigger_mark="+location.href+"ptengine"+new Date().getTime(); }else if(pt_mark[0] != location.href && (new Date().getTime() - parseInt(pt_mark[1])) > 3000){ window._pt_sp_2 && window._pt_sp_2.push('setPVTag,'+ location.href +',replace'); document.cookie = "pt_spa_trigger_mark="+location.href+"ptengine"+new Date().getTime(); } }else{console.log("not found pt_trigger")} }catch(e){console.log(e)}
この記事についてどう思いますか?
評価いただきありがとうございました
申しわけありません!理由を教えてください。
サポートチームに直接問合せたい場合、こちらをクリックしてチャットしましょう。
フィードバックいただき、ありがとうございました。
フィードバックはちゃんと届きました。ご意見を元に、より良いコンテンツをお届けしてまいります。アップデートした後また連絡します。