使用Google Analytics跟踪网站上的社交推文

时间:2015-07-14 18:10:12

标签: javascript jquery twitter google-analytics google-analytics-sdk

我们有一个网站,其中包含Twitter Tweet按钮。我们希望通过点击推文按钮来跟踪社交活动。

我们正在使用较新的Universal Analytics并遵循此示例: https://developers.google.com/analytics/devguides/collection/analyticsjs/social-interactions

对于Twitter,我们将JS包括如下:

<script async defer>
!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');
</script>

我们遇到了与推特活动绑定的问题,如Twitter上所述: https://dev.twitter.com/web/javascript/events

问题在于'twttr未定义'。 SO上有一个类似的问题: ReferenceError: "twttr is not defined" even while using twttr.ready()

我试图在这里实现相同的方法,但我没有收到任何控制台日志?

<script>
window.addEventListener("load", function() {
    document.getElementById('twitter-wjs').addEventListener('load', function() {
      console.log('1');
        twttr.ready(function (twttr) {
          console.log('2');
            twttr.events.bind('tweet', function(e){
              console.log('3');
                if(!e) return;
                ga('send', 'social', 'twitter', 'tweet', theURL);
                console.log('tweet');
            })
        });
    }, false);
}, false);
</script>

我们如何跟踪GA中的Twitter Tweet点击?

1 个答案:

答案 0 :(得分:2)

问题是你在load对象的window事件回调中为Twitter小部件脚本添加了load事件处理程序。如果Twitter小部件的脚本代码是页面初始内容的一部分,那么浏览器将下载该脚本并在触发window的{​​{1}}事件之前运行它。

换句话说,在为其添加侦听器之前,脚本的load处理程序从未运行,因为它已发生load事件。

在为脚本添加load侦听器之前,您可以更新代码以检查twttr对象是否存在:

load