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でアクセスしている場合のみ、サーバーへ解析結果のデータが送信されません(エラーが発生するわけではなく、ひっそりとリクエストが無視されます)。

どんな時に送信データが増えるのか?

長くなる原因は、いくつか考えられます。

最近実装された対策

この対策として、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

が欠損した状態で計測されます。

&[変数名]=[値] の途中で2047文字になった場合は、値が途中で切れます。

つまり、

s_code.jsをH.22.1以降にバージョンアップすると、

今まで計測できていなかったページ(ページURLが長い、リファラURLが長い、長い日本語のカスタム変数が多いなど)が、一部の変数と値が欠けた状態で計測できるようになります。

考えられる影響

では、どうすれば良いか?

実際にどのような場合にどれ位の頻度で2047オーバーが発生しているのかを調べ、サイトの作り方やSiteCatalystの実装方法を修正する必要があります。

1. 途切れたIMGリクエストを調べる方法

2. IMGリクエストのURLを短くする方法(準備中)