どうやらgtm.linkClickはMouseDownとMouseUp両方で反応してるらしい。
で、デフォルトで用意されているものは1回だけ動くようにしてるみたいだけど、
カスタムHTMLタグとかはそんなこと知ったこっちゃないので、
何にもしないと2回動いたりする ( `д´) ケッ!
カスタムHTMLタグ
一番簡単なのはMouseDownだけ反応するようにしてしまう。
‘event’: ‘my.mouseDown’,
‘gtm.element’: e.target,
‘gtm.elementClasses’: e.target.className,
‘gtm.elementId’: e.target.id,
‘gtm.elementTarget’: e.target.target
カスタムJavascript
カスタムJavascriptでなんやかんやしてるところがあったりしたら、
おっ、ちょうどいいじゃん。データ揃ってるしこの中でEvent Trackingとかしちゃおうぜ!!ってなるじゃん。
にんげんだもの。
でもね.....
カスタムJavascriptはもっとひどくて、謎に何度も動いたりする場合がある。
カスタムJavascript in カスタムJavascriptとかすると謎挙動のオンパレードになる。
もうグローバルオブジェクトとか作って制御するしかない。( ・ㅂ・)و ̑̑ グッ
でこうしてみた。
window.clickValidate = window.clickValidate || 0;
if (window.clickValidate === 0) {
if (なんか判定式 part1) {
// たとえばこんなかんじで
ga('mutual.send', 'event', 'hogefuga', 'click', target.text);
}
// sidemenu event tracking
if (なんか判定式 part2) {
// たとえばこんなかんじで
ga('mutual.send', 'event', 'foobar', 'click', target.text);
}
window.clickValidate++;
}
リンクをクリックした時の挙動なので、
クリックしたら別のページに遷移するからまだ動いてないか動いたかの判定のみ。
(だったらtrue OR falseでよかったね...)
Ajaxでページ遷移せずにやるとか#とかがある場合は別の手を考える必要があるかも