12:302015年10月に仙台で開催された講演のレポートがWeb担当者Forumで公開されました。リファラの代わりにURLパラメータを使う理由サイトにどこから訪問したかを特定するため、アクセス解析のツールはブラウザが送信するリンク元のURL(リファラー)を調べます。ところが、リファラーは完全ではなく、URLがセットされないことがあります。その数が少ない場合は無視していても問題ないのですが、お金をかけて実施するリスティングなどの広告や、効果がすでに認知されているメルマガ(ニュースレター)、最近注目が高いソーシャル系の取り組みに関しては、社内で効果を求められることが多いものです。3986の定義では、URI中の「?」以降の文字列、ただし「#」以降を含まない)にパラメータを追加する方法です。Analyticsの場合http://www.cms-ia.info/?utm_source=Twitter&utm_medium=Social&utm_campaign=20110718ツールに関わらず基本は同じですが、SiteCatalystは一つのパラメータのみを付与し、計測後にそのメタデータをCSV(TSV)でサーバーにアップロードするので、URLは短めです。楽天でアクセス解析を推進していた時は、SEO的な懸念はありましたが、効果測定を優先してこの普及に努めていました。Analyticsは決められた種類のメタデータをURLに含めるため、URLが長くなりがちです。Analyticsの方式を使うことはほとんどありません。見た目に悪いメールやTwitterでURLを伝えにくい検索エンジンのリンク評価が分散されるソーシャルブックマークなどが分散されるという4つのデメリットがあります。加えて、パラメータ付きのURLが別の場所で流通してしまい、計測の精度が落ちる動的プログラムとパラメータ名がコンフリクトすることがあるというデメリットもあります。最近はパラメータ付きのURLでサイトを訪問し、そのまま「いいね!」や「Tweet」するという行動も多いはず。本来とは異なる状況でパラメータが流用されてしまうため、アクセス元のトラフィックソースを計測したデータの精度が落ちてしまいます。Analyticsのページビューとしてカウントしない、という方式がWeb担では実装されています。再読み込みするのでユーザーにとっての体感が犠牲になるというデメリットが残ります。そこで、少し割り切った妥協案を考えてみました。ハッシュという解決策URLのタグ付にクエリ文字列「?」ではなくハッシュ「#」を使う計測後にページを再読み込みすることなく#以降を消す(ただしURLの最後に「#」が残る)HTML5対応ブラウザのみ#以降を完全に消す実装は割とシンプルです。true]);これだけで、http://demo.ga7.org/hash.html#utm_source=cms-ia&utm_medium=web&utm_campaign=blog0727というURLを認識できるようになります。32クロスドメインの_linkerでhashを使う設定にした場合のURLも認識できますHTML5対応ブラウザでは、計測後に「#」以降が完全に消えます。未対応ブラウザだと、URLの最後に「#」だけ残り、ブラウザの履歴に元のURLが残ります(何もしないよりは良いですよね)デモページを作ったので、いろいろなブラウザでアクセスしてみてください。クエリのかわりにhashを読むプラグインを導入するKevinのサイトからダウンロードしてください。キャンペーン変数をセットする行を以下のように書き換える。