IEでは計測データが欠損することがある
Post date: Sep 23, 2011 7:38:22 PM
(eVar7での投稿へのフォローアップです)
IE(Internet Explorer)には、URL に使用可能な文字数は最大 2,083 文字、という制約があります。
SiteCatalystは、
http://[namespace].d1.sc.omtrdc.net/b/ss/[RSID]/1/H.23.3/s64650032560433?AQB=1&ndh=1&t=23%2F8%2F2011%2014%3A57%3A38%205%20360&c1=a&...
というように、複数の変数を含む長いURLの画像を仮想的に読み込む(画面には表示しない)ことで、各種のデータをサーバーに送信します(Google Analyticsも同じ)。
そのため、変数に入れる値が長くなって全体のURLが2083文字を超えると、IEでアクセスしている場合のみ、サーバーへ解析結果のデータが送信されません(エラーが発生するわけではなく、ひっそりとリクエストが無視されます)。
どんな時に送信データが増えるのか?
長くなる原因は、いくつか考えられます。
Googleなどで長い日本語で検索した場合:リファラーが長くなる
例:「サイトカタリストのユーザー会」で検索すると、390文字のリファラーが増えます。
&r=http%3A%2F%2Fwww.google.co.jp%2Furl%3Fcd%3D2%26q%3D%25E3%2582%25B5%25E3%2582%25A4%25E3%2583%2588%25E3%2582%25AB%25E3%2582%25BF%25E3%2583%25AA%25E3%2582%25B9%25E3%2583%2588%25E3%2581%25AE%25E3%2583%25A6%25E3%2583%25BC%25E3%2582%25B6%25E3%2583%25BC%25E4%25BC%259A%26sa%3Dt%26source%3Dweb%26ved%3D0CDsQFjAB%26url%3Dhttp%253A%252F%252Fs.evar7.org%252F%26rct%3Dj%26ei%3DOf18Tue1E6_ZiAKPqvTwDQ
入力フォームを送信した場合:URLが長くなる
例:楽天GORAでゴルフ場を検索すると、URL部分だけで352文字になります。
&g=http%3A%2F%2Fsearch.gora.golf.rakuten.co.jp%2F%3Fcomp_planid_quot%3D%264sum%3D%26assurance2r%3D%26highway%3D0%26distance%3D0%26combine%3D0%261except%3D0%262except%3D0%263except%3D0%26year%3D2011%26page%3D1%26act_before%3Ddisp%26menu%3Dsrch%26act%3Ddisp%26back%3D%26focus%3D4%26order%3Drsv%26group%3D%26add_fee_2b%3D%26add_fee_3b%3D%26drink%3D%26half
次のページに移動すると、さらに同じ長さのリファラーが追加されます。
長い日本語の文字列をカスタム変数にセットしている
例:Web担当者Forumの記事タイトル「ソーシャルメディアからの「予測できない流入急増」もガッツリとらえて改善する 第3回 | Web担当者Forum」は415文字増える
&pageName=%E3%82%BD%E3%83%BC%E3%82%B7%E3%83%A3%E3%83%AB%E3%83%A1%E3%83%87%E3%82%A3%E3%82%A2%E3%81%8B%E3%82%89%E3%81%AE%E3%80%8C%E4%BA%88%E6%B8%AC%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E6%B5%81%E5%85%A5%E6%80%A5%E5%A2%97%E3%80%8D%E3%82%82%E3%82%AC%E3%83%83%E3%83%84%E3%83%AA%E3%81%A8%E3%82%89%E3%81%88%E3%81%A6%E6%94%B9%E5%96%84%E3%81%99%E3%82%8B%E3%80%80%E7%AC%AC3%E5%9B%9E%20%7C%20Web%E6%8B%85%E5%BD%93%E8%80%85Forum
最近実装された対策
この対策として、2010年10月にリリースされたs_code.jsのH.22.1からは、IEの場合のみimgリクエストのURLを2047文字以内に強制的にカットするようになりました。
詳細はこちら:Code version H.22.1 released (Industry Insights)
超えた場合は、imgリクエストURLの後ろから強制的にカットします。例えば後半が以下のようなリクエストでは、
...&v37=D%3Dc37&c49=Topic%3A426&c50=D%3Dg&c51=forum%3Atopics%3Ashi-fang-jiao&v51=D%3Dc49&c53=1246&s=1600x900&c=24&j=1.7&v=Y&k=Y&bw=1093&bh=366&AQE=1
ブラウザの高さ (bh)
ブラウザの幅 (bw)
cookie (k)
JavaScript (v)
JavaScriptのバージョン (j)
画面の色 (c)
画面の解像度 (s)
それでも収まらない場合は後半のカスタム変数
が欠損した状態で計測されます。
&[変数名]=[値] の途中で2047文字になった場合は、値が途中で切れます。
つまり、
s_code.jsをH.22.1以降にバージョンアップすると、
今まで計測できていなかったページ(ページURLが長い、リファラURLが長い、長い日本語のカスタム変数が多いなど)が、一部の変数と値が欠けた状態で計測できるようになります。
考えられる影響
全体のページビューが増える
「ブラウザの高さ」「ブラウザの幅」「cookie」「JavaScript」「JavaScriptのバージョン」「画面の色」「画面の解像度」などのレポートで値の割合が変化する(精度が高まる)
入口ページや離脱率が少し変化する
数字の大きいカスタム変数も少し変化する
では、どうすれば良いか?
実際にどのような場合にどれ位の頻度で2047オーバーが発生しているのかを調べ、サイトの作り方やSiteCatalystの実装方法を修正する必要があります。
2. IMGリクエストのURLを短くする方法(準備中)