ニガくて難しいアクセス解析を、たっぷりのミルクでふわふわの贅沢ラテ的な仕上がりに

GAの_linkおよび_getLinkerUrlをIEで使うときに注意すること

別ドメインへのリンク時に、現ドメインのクッキー情報をパラメータにしてリンクURLに乗せる「_link」という関数があって、こう使いますね。

<a href="https://www.secondsite.com/?login=parameters"
 onclick="_gaq.push(['_link', 'https://www.secondsite.com/?login=parameters']); return false;">Login Now</a>

これは、onclickのときに_linkを実行してます。_linkの引数はそのリンク先情報そのもの。 _linkの動作は、引数(URL)にパラメータをつけてリンク先に遷移するというもの。
で、_linkは内部的には_getLinkerUrlという関数を実行していて、そいつは引数(URL)にパラメタをつけて、つけたURLを返すというところまでを担ってます。

単体でつかうとこんな感じ。

gaq._link['_getLinkerUrl','https://www.secondsite.com/?login=parameters'];
//return 'https://www.secondsite.com/?login=parameters&__utma=xxxx&__utmb=yyyy....'

このとき、_getLinkerUrlを単体で使う場合、かつ、IEで動作させる、かつ、リンクのアンカーテキストがURLそのものの場合に、バグります。

これが問題の現象↓


FirefoxやSafariでは問題ありませんね。

どういうことかというと、書き換えてるのは<a href>なのに、なぜかアンカーテキストまでパラメタつきになっちゃってるんですね。
これはIEのバグで、aのhref属性を動的に書き換えたとき、aタグの子(アンカーテキスト)まで書き換わっちゃうという現象です。
対策は、無理やりリンク先に半角スペースをつけること。

<a href=" https://www.secondsite.com/?login=parameters">

こうです。hrefの中でhttpが始まる直前にスペースをつけることで、ブラウザのリンク挙動が正しいままhref書き換えにも対応できます。コーディング的には気持ち悪いですね。

Home > 07.実践編 > GAの_linkおよび_getLinkerUrlをIEで使うときに注意すること

このページの上へ