2017-03-10 7 views
0

私は長年にわたってスタックオーバーフローを使用してきましたが、わからない単純なjQueryソリューションが初めて投稿されました。google analyticsはURLを提供せずにクリックをクリックします

私はウェブサイトを運営しており、送信リンクを追跡したいと考えています。私はhttps://support.google.com/analytics/answer/1136920?hl=enを読んで実装しました。私はwordpressを使用しています。すべてのリンク、特にヘッダーリンクを調整するのは面倒ですので、すべてのリンクでクリックイベントをキャプチャするjavascript/jqueryスクリプトと、そのリンクがリンクするリンクを追加したいと思います。

Googleアナリティクスでは、すべてのHTMLリンクタグに次のコードを使用するように言う:

<a href="http://www.example.com" onclick="trackOutboundLink('http://www.example.com'); return false;">Check out example.com</a>

が、私はちょうど上のすべてのクリックによってトリガーされる1つの簡単なjQueryの関数を作成したいのですが私のウェブサイト上のどのリンクでも、リンクが何であれtrackOutboundLink("")を記入してください。この場合、$this.href()などがありますか?

基本的に、私はすべてのリンクのためのイベントリスナーを持っているし、このようにそれらを記録したい:

$("a").click(function() {trackOutboundLink($this.a.href)});

申し訳ありませんが、私は私の質問が悪い言葉遣いさを知っている、と私は巨大なjQueryのよn00bですが、それを尋ねる良い方法はわかりません...そして、はい、私はすべてのリンク、内部のリンクさえも記録したいと思います。私は気にしない。私はちょうどリンクを記録する超簡単な方法が欲しい。

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

+0

私はこの '$(this).attr( 'href')' – jonmrich

答えて

0

まず、送信するすべてのURLを選択するセレクタが必要です。彼らの特徴の1つは、通常、ある形式のプロトコルを含んでいることです。次に、あなたのドメインを指しているすべてのリンクを除外します。最後に、単純なクリックイベントを使用して、ナビゲーションのデフォルト動作を防止し、代わりにユーザーがコールバックを介してナビゲートするようにするトラッキングコードを実行します。

jQuery(function ($) { 
    var domain = "example.com"; 
    $('a[href*=http]:not([href*=\'' + domain + '\'])').on('click', function (e) { 
    var url = $(this).attr('href'); 
    e.preventDefault(); 
    ga('send', 'event', 'outbound', 'click', url, { 
     'transport': 'beacon', 
     'hitCallback': function(){document.location = url;} 
    }); 
    }); 
}); 
+0

が欲しいと思います。本当にありがとう! – AndyF

関連する問題