Javascriptでgoogleアナリティクスとアフィリのイベントを同時にカウントしたい


googleアナリティクスでクリックしたときにイベントをカウントして
ASP側(infotop)でも同時にカウントさせたいです。

タグは以下の形で配信されています。

<script type="text/javascript" src="http://www.infotop.jp/click.js"></script>
<a href="http://test.co.jp" onClick="return clickCount(XXXX, XXX);">テキスト</a>

googleアナリティクスのイベントを埋め込んで

<script type="text/javascript" src="http://www.infotop.jp/click.js"></script>
<a href="http://test.co.jp" onClick="return _gaq.push(['_trackEvent','asp_click','http://test.co.jp,'test']);clickCount(XXXX, XXX);">テキスト</a>

と2つ実行するようにしているのですが、ASP側がうまくカウントしてくれません。

どのように実装すればよいのか、ご教授お願い致します。

回答の条件
  • 1人10回まで
  • 13歳以上
  • 登録:2013/06/03 21:21:46
  • 終了:2013/06/05 10:10:21

ベストアンサー

id:a-kuma3 No.1

a-kuma3回答回数4546ベストアンサー獲得回数18962013/06/04 22:55:56

ポイント100pt

_gaq.push() と clickCount() を、セミコロン(;)で区切ってますが、カンマ(,)にしたら上手くいきません?

<a href="..." onclick="return _gaq.push([...]) , clickCount(XXXX, XXX);">
    テキスト
    </a>

clickCount() の前を、セミコロンではなく、カンマです。

他1件のコメントを見る
id:a-kuma3

セミコロンとカンマではどのように動きが違うのでしょうか。

こう書いてみると、分かりやすいと思います。
セミコロンで区切っている場合は、以下のコードと同じです。

<a href="..." onclick="return countEvent()">
    テキスト
    </a>
<script>
function countEvent() {
    return _gaq.push([...]);    // return 文なので、ここで処理を抜けちゃう
    clickCount(XXXX, XXX);
}
</script>

セミコロンは、文を区切ります。
区切られた文は順番に実行されるのですが、return 文は、そのブロックを抜けてしまうので、次の文に制御が渡りません。

カンマで区切っている場合は、以下のコードと同じです。

<a href="..." onclick="return countEvent()">
    テキスト
    </a>
<script>
function countEvent() {
    var ret = _gaq.push([...]);
    ret = clickCount(XXXX, XXX);    // _gaq.push() の戻り値はつぶされてしまう
    return ret;
}
</script>

カンマは、式を区切ります。
区切られた式は、左から順番に評価(実行)されます。
return 文は、それに続く式を評価して、その値を呼び出し元に返します。

# というような説明で分かりますか?

2013/06/05 10:17:37
id:airlike

非常にわかりやすいご説明ありがとうございました!
とてもよくわかりました。

returnがない場合での複数のJavascripthセミコロンで今まで何度も使って不具合がなかったで
ずっとセミコロンを使っていたのですが
returnがあると、最初の関数で処理が終わっていたのですね。

一方、カンマの場合は、戻り値を次々と上書きしていき、
最後の関数の戻り値が返却されるというわけですね。
納得しました。

戻り値がないと、最後の関数は動かないので計測されてなかったわけですね。

ご回答ありがとうございました!

2013/06/05 13:18:08

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません