web-dev-qa-db-ja.com

Google Analyticsでクリックコンバージョンを追跡する

とにかくリンクのクリックコンバージョンを追跡するためにGoogleアナリティクスを使用できますか?

たとえば、www.a.comへのリンクがある場合、特定のリンクがページに表示された回数を追跡し、実際にクリックされた回数を追跡することは可能ですか? 問題はページが読み込まれるたびにwww.a.comへのリンクを表示しないことです。ランダム関数(サーバー側)を使用して、毎回異なるリンクを生成しています。 Googleアナリティクスで、ユーザーに表示するように選択した各リンクのクリックコンバージョンを提供してほしい。

おかげで、

ジョエル

3
Joel

はい、Googleアナリティクスを使用してほぼすべてを追跡できます ' イベントトラッキングa)リンクを表示する場合と(b)ユーザーがリンクをクリックする場合の2つの場合の追跡方法を次に示します。

(a)リンクを示すトラック

<script type="text/javascript">
    _gaq.Push(['_trackEvent', 'Links', 'Shown', 'http://www.a.com/']);
</script>

(b)リンクをクリックするユーザーを追跡する

<a href="http://www.a.com/" onclick="javascript:_gaq.Push(['_trackEvent', 'Links', 'Clicked', 'http://www.a.com/']); return true;">...</a>

もちろん、おそらくこれら両方のJavascriptイベントをハードコーディングしたくないを考えると、便利なJavascript関数を使用して、リンク時にすべての作業を行うことができます特定のクラスがあります----(jQuery を使用したいので、簡単な例を示します:

<script type="text/javascript">
/*
  ... assuming jQuery has been loaded and you're using the
      standard Google Analytics Asynchronous tracking snippet

      URL: http://code.google.com/apis/analytics/docs/tracking/asyncTracking.html
*/
$(document).ready(function() {
    if ( $('a.tracked').length ) {
        $('a.tracked').each(function() {
            _gaq.Push(['_trackEvent', 'Links', 'Shown', $(this).attr('href')]);
            $(this).bind( 'click', function() {
                _gaq.Push(['_trackEvent', 'Links', 'Clicked', $(this).attr('href')]);
                return true;
            });
        });
    }
});
</script>

...そして、class="tracked"を含むすべてのリンクを適宜追跡する必要があります。


更新:新しいコードですが、確かに-リンクが属するグループを指定して、代わりにグループを追跡することもできます:

<script type="text/javascript">
    $(document).ready(function() {
        if ( $('a.tracked').length ) {
            $('a.tracked').each(function() {
                var groupRegExp =/group([a-zA-Z])/i;
                var group = groupRegExp.exec( $(this).attr('class') );
                if (
                    ( !group ) ||
                    ( !group.length )
                ) {
                    var group = "groupUnknown";
                } else {
                    var group = group[0];
                }
                _gaq.Push(['_trackEvent', 'Links', 'Shown', group]);
                $(this).bind( 'click', function() {
                    _gaq.Push(['_trackEvent', 'Links', 'Clicked', group]);
                    return true;
                });
            });
        }
    });
</script>

... class="tracked groupA"class="groupA tracked"などで機能するはずです。


x2の更新:

...そして、yc01が言及した動作を説明するために、追跡されたアンカータグにバインドされた関数のわずかな変更:

                $(this).bind( 'click', function() {
                    _gaq.Push(['_trackEvent', 'Links', 'Clicked', group]);
                    setTimeout('document.location = "' + $(this).attr('href') + '"', 100)
                    return false;
                });
4
danlefree