我在使用Google Analytics和_trackEvent时遇到了一些麻烦。
在文档中使用它似乎很简单,但我不能这么简单 工作的例子。对_trackEvent的调用失败,出现'TypeError:o is undefined'
对_trackPageview的调用正在成功,我可以在分析仪表板中看到它已更新。
我试着偷看ga.js来了解发生了什么 - 只是为了表现而头疼!
这是我第一次涉足GA - 尤其是自定义事件。该帐户是新的。 一切似乎都正确设置 - 但我可能不知道它是不是!
看起来很简单 - 但显然我错过了一些东西。 任何有关移除我的盲人褶皱的帮助都非常感谢!
-vs
示例HTML - 只需要跟踪代码。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker;
try {
pageTracker = _gat._getTracker("UA-XXXXXX-1");
pageTracker._trackPageview();
} catch(err) {
console.log(err.toString());
}
$(document).ready(function() {
try {
pageTracker._trackEvent('my_category', 'my_action', 'my_optional_label', 42);
} catch(err) {
console.log('trackEvent ' + err.toString());
}
});
</script>
</head>
<body>
</body>
</html>
答案 0 :(得分:0)
noob错误与代码块!这是完整版。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker;
try {
pageTracker = _gat._getTracker("UA-xxxxxxx-1");
pageTracker._trackPageview();
} catch(err) {
console.log(err.toString());
}
$(document).ready(function() {
try {
pageTracker._trackEvent('my_category', 'my_action', 'my_optional_label', 42);
} catch(err) {
console.log('trackEvent ' + err.toString());
}
});
</script>
</head>
<body>
</body>
</html>
答案 1 :(得分:0)
在调用_trackEvent之前,需要调用_initData()。不知道为什么会这样,但它现在似乎有效。希望它可以帮助别人。 修改过的样本..
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker;
try {
pageTracker = _gat._getTracker("UA-xxxxx-1");
pageTracker._trackPageview();
} catch(err) {
alert(err.toString());
}
$(document).ready(function() {
try {
pageTracker._initData(); // <<--- The addition.
pageTracker._trackEvent('my_category', 'my_action', 'my_optional_label', 42);
} catch(err) {
alert('trackEvent ' + err.toString());
}
});
</script>
</head>
<body>
</body>
</html>