javascript - Google Analytics 无法正确跟踪事件

标签 javascript html facebook google-analytics facebook-javascript-sdk

我正在使用谷歌分析(analytics.js)来跟踪几个按钮以及 facebook 和 twitter 的社交部分,但问题是自从上周六我配置了分析代码以来,无法看到我在中注册的事件我的仪表板,这很奇怪,因为如果我打开 Chrome 或 Firefox 的开发人员控制台,可以看到请求并返回 200 OK,所以我不知道到底是什么错误。

Index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>

<a href="#" id="my_button">My button</a>
<a href="#" id="my_facebook_button">My Facebook Button</a>
<a href="https://twitter.com/intent/tweet?text=My tweet body!&url=http://mywebsite.com"></a>

<script>
    window.fbAsyncInit = function() {
        FB.init({
            appId      : 'XXXXXXXX',
            xfbml      : true,
            version    : 'v2.2'
        });

        //Track FB Share function
        FB.Event.subscribe('message.send', function(targetUrl) {
            ga('send', {
                'hitType': 'social',
                'socialNetwork': 'Facebook',
                'socialAction': 'Share',
                'socialTarget': 'http://giftagiftcard.com'
            });
        });    

    };
</script>
<script src="jquery.js"></script>
<script src="main.js"></script>
<script>
    // Google analytics
    (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','//www.google-analytics.com/analytics.js','ga');

    ga('create', 'UA-58646812-1', 'auto');
    ga('send', 'pageview', {
        'hitCallback': function() {
            console.log('Analytics is sending data');
        }
    });

    //Twitter Web Intents
    window.twttr = (function (d,s,id) {
        var t, js, fjs = d.getElementsByTagName(s)[0];
        if (d.getElementById(id)) return; js=d.createElement(s); js.id=id;
        js.src="//platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js, fjs);
        return window.twttr || (t = { _e: [], ready: function(f){ t._e.push(f) } });
    }(document, "script", "twitter-wjs"));

    //Track twitter tweets
    function trackTwitter(intent_event) {
        if (intent_event) {             
            ga('send', {
                'hitType': 'social',
                'socialNetwork': 'Twitter',
                'socialAction': 'Tweet',
                'socialTarget': 'http://mywebsite.com/'
            });
        }
    }


</script>
</body>
</html>

ma​​in.js

$(function() {

$('#my_button').on('click', function(e) {
    e.preventDefault();

    ga('send', 'My button', 'button', 'click', 'My button!');

});

$('#my_facebook_button').on('click', function(e) {
    e.preventDefault();

    FB.ui({
        method: 'feed',
        name: 'The name',
        link: 'http://mywebsite.com',
        picture: 'http://thepicture.png',
        caption: 'The caption',
        description: 'The description'
    },
        function(response) {
        }
    );
});

});

实际上,Facebook 和 Twitter 打开弹出窗口进行分享或发推文,但 Facebook 未检测到 FB.Event.subscribe。

所以,我的错误是:

  • 我不知道我的 GA 事件是否有误,但请求返回 200 OK,并且我在仪表板中看不到这些事件。
  • Facebook 未检测到该事件。一旦用户分享,请订阅并记录该事件

我希望有人知道我的代码有什么问题。 预先感谢您。

最佳答案

在你的 main.js 中,这一行看起来不合适:

 ga('send', 'My button', 'button', 'click', 'My button!');

“我的按钮”看起来不像“事件”这样的 GA 方法。

关于javascript - Google Analytics 无法正确跟踪事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28201454/

相关文章:

javascript - 谷歌应用脚​​本: How to set return to my page?

javascript - 加载另一个页面后从登陆页面重定向

Facebook:如何从用户的访问 token 中获取应用程序 ID - using/app?access_token=TOKEN?

javascript - 如何处理 Facebook javascript SDK 事件?

ios - 迁移 iOS SDK 的 Facebook 身份验证凭据

javascript - 仅用一个滚动条在 X 轴上移动三个表格

javascript - Electron 修改选项而不重新创建窗口

javascript - 相同域策略 jQuery

html - 如何防止移动浏览器微缩 HTML block 级元素?

javascript - 在加载页面之前加载所有资源