トラッキングするURLから不要なパラメータを取り除くには?
トラッキングするURLには、意図的、または、自動的にパラメータが含まれる可能性があります。主に、?(クエスチョン)、&(アンパサンド)、;(セミコロン)、#(シャープ)の記号で表現されるものが付与されます。
URLにパラメータを含むと何が問題か?
パラメータを含む可能性があるページにトラッキングコードを設置した場合、同じページを表示しているにも関わらずパラメータの値が異なるごとにトラッキング情報が記録され、「ページアクセス」キャンペーンがパラメータの組み合わせ分、作成されてしまいます。
例えば、「https://www.synergy-marketing.co.jp/cloud/synergylead/support/tracking.html」にトラッキングコードを設置しても、以下のようにパラメータが付与されたURLにアクセスした場合は、それぞれ別のアクセスとして認識されます。
https://www.synergy-marketing.co.jp/cloud/synergylead/support/tracking.html?p=1
https://www.synergy-marketing.co.jp/cloud/synergylead/support/tracking.html?p=1&q=2
https://www.synergy-marketing.co.jp/cloud/synergylead/support/tracking.html;p=ABCDE12345
https://www.synergy-marketing.co.jp/cloud/synergylead/support/tracking.html#Tips
運用上、「付与されたパラメータごとのアクセスをトラッキングしたい」というケースもあるかと思いますが、上記の例だと「https://www.synergy-marketing.co.jp/cloud/synergylead/support/tracking.html」として集約したいと多くの方は思われるのではないでしょうか?
URLから不要なパラメータを取り除く方法
1. トラッキングコードの設定でパラメータを取り除く
トラッキングコードの設定によって、?(クエスチョン)、&(アンパサンド)、;(セミコロン)以降のパラメータを取り除くことができます。設定の方法はトラッキングコードを発行したSynergy!LEADのバージョンによって異なります。
- 2015年8月17日以降のトラッキングコード
<script language="JavaScript" type="text/javascript"> (function(){ var url=document.location.href; // Page URL var title=document.title; // Page TITLE var referrer=document.referrer; // Referrer var withoutparam=true; // Without URL parameter (true or false) var ver="201",cid="お客様のAPIクライアントID",host="f.msgs.jp",requri="//"+host+"/t/t.js"; var enc=function(str){return encodeURIComponent(str).replace(/[!*'()]/g, function(p){return "%" + p.charCodeAt(0).toString(16);});}; var elm=document.createElement("script"),hd=document.getElementsByTagName("script")[0],now=(1 * new Date()); elm.src=requri+"?ci="+enc(cid)+"&ht="+enc(host)+"&url="+enc(url)+"&ttl="+enc(title)+"&ref="+enc(referrer)+"&wp="+enc(withoutparam)+"&ver="+enc(ver)+"&now="+now; if(window.__s_lead_already_tracked != true){ elm.async=1,hd.parentNode.insertBefore(elm,hd); } window.__s_lead_already_tracked=true; })(); </script>
6行目の「var withoutparam=true;」がパラメータを取り除く設定です。
標準で取り除く設定が有効「true」となっておりますので修正する必要はありません。 - Synergy!LEADのバージョン「2.10」以降に発行したタグの場合
<script language="JavaScript" type="text/javascript"> (function(url,ttl,ref,wp){ var doc=document,tag="script",enc=encodeURIComponent,ht="f.msgs.jp",ci="[お客様のクライアントIDを暗号化したもの]",req="//"+ht+"/t/t.js"; var encrep=function(str){return enc(str).replace(/'/g, function(p){return "%" + p.charCodeAt(0).toString(16);});}; var ec=encrep(ci),eh=enc(ht),eu=encrep(url),et=encrep(ttl),er=encrep(ref),ew=encrep(wp),elm=doc.createElement(tag),hd=doc.getElementsByTagName(tag)[0]; elm.async=1;elm.src=req+"?ci="+ec+"&ht="+eh+"&url="+eu+"&ttl="+et+"&ref="+er+"&wp="+ew;hd.parentNode.insertBefore(elm,hd); })(document.location.href, document.title, document.referrer, true); </script>
8行目の一番右の設定(「true」となっている箇所)がパラメータを取り除く設定です。
標準で取り除く設定が有効「true」となっておりますので修正する必要はありません。 - Synergy!LEADのバージョン「2.8」までで発行したタグの場合
<script language="JavaScript" type="text/javascript"> (function(){ if(location.protocol == "https:") { var protocol = "https:"} else { var protocol = "http:"}; var host = "f.msgs.jp"; var url=encodeURIComponent(document.location.href); var title=encodeURIComponent(document.title); var referrer=encodeURIComponent(document.referrer); var clientid="[お客様のクライアントID]"; var withoutparam="true"; /* edit false or true. */ document.write("<img width=0 height=0 border=0 src='"+protocol + "//" + host + "/t/dummy.gif?url=" + url + "&title=" + title + "&referrer=" + referrer + "&clientid=" + clientid + "&withoutparam=" + withoutparam + "'>") }()); </script>
9行目を「var withoutparam="true";」とすることでパラメータを取り除く設定が有効になります。
- 2014年7月リリースのSynergy!LEADのバージョン「2.8」より「var withoutparam="true"」が標準設定となっております。
- 2014年9月リリースのSynergy!LEADのバージョン「2.10」より、トラッキングコードが変更となりました。
- 2015年8月17日より、トラッキングコードが変更となりました。
2. トラッキングコードの設定では取り除くことができないパラメータへの対応
#(シャープ)によるパラメータは、Webページ内につけることができる目印(アンカー)で「どの部分を参照したのか」という有用な情報となるため、取り除く対象からは除外しています。このパラメータも取り除きたい場合にはトラッキングコードの修正が必要です。
以下は、#(シャープ)のパラメータも取り除くためのサンプルコードです。
<script language="JavaScript" type="text/javascript"> (function(){ var url=document.location.href.split(/#/,1); // Page URL var title=document.title; // Page TITLE var referrer=document.referrer; // Referrer var withoutparam=true; // Without URL parameter (true or false) var ver="201",cid="お客様のAPIクライアントID",host="f.msgs.jp",requri="//"+host+"/t/t.js"; var enc=function(str){return encodeURIComponent(str).replace(/[!*'()]/g, function(p){return "%" + p.charCodeAt(0).toString(16);});}; var elm=document.createElement("script"),hd=document.getElementsByTagName("script")[0],now=(1 * new Date()); elm.src=requri+"?ci="+enc(cid)+"&ht="+enc(host)+"&url="+enc(url)+"&ttl="+enc(title)+"&ref="+enc(referrer)+"&wp="+enc(withoutparam)+"&ver="+enc(ver)+"&now="+now; if(window.__s_lead_already_tracked != true){ elm.async=1,hd.parentNode.insertBefore(elm,hd); } window.__s_lead_already_tracked=true; })(); </script>
2015年8月17日以降のトラッキングコードでは、3行目の「document.location.href」の部分に「.split(/#/,1)」という記述を追加します。
<script language="JavaScript" type="text/javascript"> (function(url,ttl,ref,wp){ var doc=document,tag="script",enc=encodeURIComponent,ht="f.msgs.jp",ci="[お客様のクライアントIDを暗号化したもの]",req="//"+ht+"/t/t.js"; var encrep=function(str){return enc(str).replace(/'/g, function(p){return "%" + p.charCodeAt(0).toString(16);});}; var ec=encrep(ci),eh=enc(ht),eu=encrep(url),et=encrep(ttl),er=encrep(ref),ew=encrep(wp),elm=doc.createElement(tag),hd=doc.getElementsByTagName(tag)[0]; elm.async=1;elm.src=req+"?ci="+ec+"&ht="+eh+"&url="+eu+"&ttl="+et+"&ref="+er+"&wp="+ew;hd.parentNode.insertBefore(elm,hd); })(document.location.href.split(/#/,1), document.title, document.referrer, true); </script>
バージョン「2.10」以降のトラッキングコードでは、8行目の「document.location.href」の部分に「.split(/#/,1)」という記述を追加します。
<script language="JavaScript" type="text/javascript"> (function(){ if(location.protocol == "https:") { var protocol = "https:"} else { var protocol = "http:"}; var host = "f.msgs.jp"; var url=encodeURIComponent(document.location.href.split(/#/,1)); var title=encodeURIComponent(document.title); var referrer=encodeURIComponent(document.referrer); var clientid="お客様のAPIクライアントID"; var withoutparam="true"; /* edit false or true. */ document.write("<img width=0 height=0 border=0 src='"+protocol + "//" + host + "/t/dummy.gif?url=" + url + "&title=" + title + "&referrer=" + referrer + "&clientid=" + clientid + "&withoutparam=" + withoutparam + "'>") }()); </script>
旧トラッキングコードでは、5行目の「document.location.href」の部分に「.split(/#/,1)」という記述を追加します。
留意点
- 過去に別々のキャンペーンとして作成されてしまっている場合は、1つのキャンペーンに集約することはできません。