web-dev-qa-db-ja.com

Google Analyticsでアウトバウンドクリックを追跡する方法

ユーザーがアウトバウンドリンクをクリックした回数を調べるのに役立つ方法はいくつかありますが、状況はかなり複雑です。

これは学校のウェブサイト KENT SCHOOL DISTRICT であり、ウェブサイトのホームページにはショートカット(リンク)のある左側のサイドバーがあります。 WebサイトはSchool Wires(コンテンツ管理システム)で構築されており、学校のワイヤーはサイトのショートカットのコードを提供していません。

サイトマネージャーの下に、サイトショートカットタブがあります(下をご覧ください) enter image description here

基本的に、ショートカットのハードコーディングは行いません。

これまで私は試しました:

  1. アンカータグでEVENT TRACKING 'onClick'を使用することを最初に計画していましたが、学校のWebサイトがハードコードされたリンクを使用していないことに気付いたとき、私はその考えを捨てました。

私の質問は、とにかくアウトバウンドリンクを追跡できるかどうかです。基本的に、左サイドバーのショートカットがクリックされた回数をカウントしたいですか?

1
akki0996

GTMを使用すると、すべてのページで起動するリンククリックリスナーを確立し、リンクがクリックされるたびに起動する「アウトバウンドリンク」タグを作成できます。リンクのhref属性を収集して、イベントに渡すこともできます。簡単に説明しますが、必要に応じて詳細をご確認ください。 http://cutroni.com/blog/2013/10/07/auto-event-tracking-with-google-tag-manager/ 。 HTMLにまったく触れることなく、すべてを実行できます。

3
nyuen

WebサイトでjQueryを使用していることがわかります。リンクに属性を書き込むことはできませんが、ユーザーをリンクに送信する前にGoogleアナリティクスイベントを記録するJavaScriptのスニペットを含めることができます。

function logeventga(category, action, label, value, callback, nonAction){
    var event = {
        'eventCategory': category,
        'eventAction': action
    };
    if (label) event['eventLabel'] = label;
    if (value) event['eventValue'] = value;
    if (callback) event['hitCallback'] = callback;
    if (nonAction) event['nonInteraction'] = 1;
    if (typeof ga == 'function' && ga.hasOwnProperty('loaded') && ga.loaded === true) {
        ga('send', 'event', event);
    } else if (callback) {
        callback.call();
    }
}

$(document).ready(function(){
    $('#div-id a').click(){
        var href = $(this).attr('href');
        logeventga('external-link','click',href,null,function(){
            document.location=href;
        });
        return false;
    }
});

仕組みに関するいくつかの注意事項:

  • ユーザーがページを離れることを許可する前に、イベントのログが完了するまで待つ必要があります。そうしないと、イベントがログに記録されない場合があります。 Googleアナリティクスには、イベントが記録されたときにトリガーされるコールバック関数があります。このコールバック関数を使用して、document.hrefを設定することにより、イベントが記録された後にユーザーを新しいページに移動できます。クリックイベントハンドラからのreturn falseは、クリック直後にユーザーが退場することを防ぎます。
  • 一部のユーザーは、Adblockまたは同様のソフトウェアでGoogleアナリティクスをブロックしています。このような場合、JavaScriptが失敗し、ユーザーがリンクを使用できないようにする必要はありません。 logeventgaは、ロードされていないGoogleアナリティクスのケースを検出し、すぐにコールバック関数をトリガーします。
  • $('#div-id a')を、実際にリンクを見つける適切なjQueryセレクターに置き換える必要があります。 IDを持つdivにある場合は、div-idを実際のIDに置き換えることができます。
  • logeventga関数は、ga関数を使用する新しいユニバーサル分析を使用することを前提としています。 _gaqで古いスタイルの分析呼び出しを使用している場合、コードを少し変更する必要があります。
1

このコードは私にとっては高額です:

// Track external links - http://www.axllent.org/docs/view/track-outbound-links-with-analytics-js/
function _gaLt(event){
  var el = event.srcElement || event.target;
  while(el && (typeof el.tagName == 'undefined' || el.tagName.toLowerCase() != 'a' || !el.href)){ el = el.parentNode; }
  if(el && el.href){
    var link = el.href;
    if(link.indexOf(location.Host) == -1 && !link.match(/^javascript\:/i)){
      var hitBack = function(link, target){ target ? window.open(link, target) : window.location.href = link; };
      var target = (el.target && !el.target.match(/^_(self|parent|top)$/i)) ? el.target : false;
      ga("send","event","Outgoing Links",link,document.location.pathname + document.location.search,{"hitCallback": hitBack(link, target)});
      event.preventDefault ? event.preventDefault() : event.returnValue = !1;
    }
  }
}
var w = window;
w.addEventListener ? w.addEventListener("load",function(){document.body.addEventListener("click",_gaLt,!1)},!1) : w.attachEvent && w.attachEvent("onload",function(){document.body.attachEvent("onclick",_gaLt)});

http://www.axllent.org/docs/view/track-outbound-links-with-analytics-js/

0
Ken Sharp