Google 分析未正确跟踪事件
Google Analytics not tracking the events correctly
我正在使用 google 分析 (analytics.js) 来跟踪几个按钮以及 facebook 和 twitter 的社交部分,但问题是自上周六我配置分析代码以来,看不到我的仪表板中注册的事件,这很奇怪,因为如果我打开 Chrome 或 Firefox 的开发人员控制台可以看到请求并且 returning 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>
main.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 事件是否有误,但请求 return 200 OK,我在仪表板中看不到这些事件。
- Facebook 未检测到 Event.subscribe 一旦用户分享,记录事件
我希望有人知道我的代码有什么问题。
提前谢谢你。
这一行在您的 main.js 中看起来不对:
ga('send', 'My button', 'button', 'click', 'My button!');
"My button" 不像 'event'.
那样的 GA 方法
您可以使用 Google Analytics Debugger 插件 - 非常有用
我正在使用 google 分析 (analytics.js) 来跟踪几个按钮以及 facebook 和 twitter 的社交部分,但问题是自上周六我配置分析代码以来,看不到我的仪表板中注册的事件,这很奇怪,因为如果我打开 Chrome 或 Firefox 的开发人员控制台可以看到请求并且 returning 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>
main.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 事件是否有误,但请求 return 200 OK,我在仪表板中看不到这些事件。
- Facebook 未检测到 Event.subscribe 一旦用户分享,记录事件
我希望有人知道我的代码有什么问题。 提前谢谢你。
这一行在您的 main.js 中看起来不对:
ga('send', 'My button', 'button', 'click', 'My button!');
"My button" 不像 'event'.
那样的 GA 方法您可以使用 Google Analytics Debugger 插件 - 非常有用