2016-11-25 21 views
1

Googleアナリティクスのアウトバウンドリンクイベントの記録に問題がある。これはどこが間違っているのか理解できないような簡単な作業です。誰でも自分のコードに問題があれば通知することができます。 Googleの機能は、私のonclickイベント時に実行されている、問題は何のイベントが動作>イベント>概要Googleアナリティクス、アウトバウンドイベントトラッキング

google_analytics.php

<script> 
    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 
    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 
    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 
    })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); 

    ga('create', 'UA-86854644-1', 'auto'); 
    ga('send', 'pageview'); 


var trackOutboundLink = function(url) { 
    alert(url); 
       ga('send', 'event', 'outbound', 'click', url, { 
         'transport': 'beacon', 
         'hitCallback': function(){document.location = url;} 
       }); 
} 



function handleOutboundLinkClicks(event) { 

  ga('send', 'event', { 
    eventCategory: 'Outbound Link', 
    eventAction: 'click', 
    eventLabel: event, 
    transport: 'beacon' 
  }); 
} 

</script> 

Clickイベントに私のGoogle Analyticsのダッシュボードにログオンされていないということです

onclick=\"handleOutboundLinkClicks(this);\" 

header.phpの

include_once("/includes/google_analytics.php"); 
+0

私は、ブラウザがトラッキングが行われる前にリンクにユーザーをリダイレクトしていると思います。 '' event.preventDefault'(https://developer.mozilla.org/en/docs/Web/API/Event/preventDefault)でリンクを開くというブラウザの動作を止めなければならないので、あなたのコードは 'hitCallback'にあります。実際にイベントが送信された後に呼び出されます。 – danguilherme

+0

私はこれが事件2であったかもしれないと思った。私はまだコールバックのログがないことを試みましたonclick = \ "trackOutboundLink( '$ hreflink'、event); \" var trackOutboundLink = function(url、event){ alert(event); event.preventDefault(); –

答えて

0

ありがとう、私はイベントリスナーが特に複数のイベントでより良いアプローチであることに同意します。しかし、私の初期の機能とクリックイベントが機能しました。それは、Googleアナリティクスがダッシュボードに表示するのに時間がかかりました。 ありがとう

0

eventをパラメータとして送信できますが、thisではありません。 '$hreflink'のようなものはありません。 onclickの使用を避けてください! (下記を参照してください)

thisを送信すると、要素自体(あなたの場合は<a>要素)が送信されます。だからあなたの場合には、私はthis JSFiddleでのような何かをするだろう:onclick属性を使用して

theAnchor.addEventListener('click', function (event) { 
    // avoid browser from following the href 
    event.preventDefault(); 

    // call google analytics, and on hitCallback, follow the url: 
    document.location = this.href; // `this` is the own element 
}); 

回避を!

HTMLとJavaScriptを混在させないでください。 onclickアトリビュート(および同等のもの)を使用しないでください。イベント管理には向いていません。アプリケーションが大きくなるにつれ、メンテナンスが難しくなります。

つまり、要素にイベントを追加するにはEventTarget.addEventListenerを使用します(上記の例を参照)。

+0

サウンド可能、私は自分のPCのATMから離れています。 BTW '$ hreflink'は、そのページにナビゲートされている外部ページのリンクです。イベントリスナーが機能するかどうかをお知らせします。感謝 –

関連する問題