我将一些在网上找到的关于在 Analytics 中跟踪长文章页面上的滚动距离的想法拼凑在一起。我有兴趣在用户到达文章的中间标记时记录一个事件,然后在终点再次记录一个事件。我的代码还不完美,因为它没有考虑页面上的时间(如果用户在页面加载后立即滚动到底部怎么办?),但一旦我解决了这个问题,这是一个很容易解决的问题。
通过下面的代码,两个 console.log()
调用准确地跟踪它们应该在的时间,所以我的假设是 _trackEvent 调用也可以工作,但事实并非如此。不会抛出任何错误。他们只是从未出现在 Analytics 中。
任何人都可以看到任何明显的错误或漏洞吗?这是我使用此代码的网站:http://www.adlucent.com/blog/
$(document).ready(function() {
if ($(document.body).hasClass('single')) {
var doc_height = $(document).height(),
article_pos = $('#main > article').offset(),
article_height = $('#main > article').height(),
article_half = (article_height/2) + article_pos.top,
article_bottom = article_height + article_pos.top,
scrolled_half = Math.round(100 * article_half / doc_height),
scrolled_whole = Math.round(100 * article_bottom / doc_height);
$(window).scroll(function(){
var scrollPercent = GetScrollPercent();
if (!isScrolledHalf) {
if (scrollPercent > scrolled_half) {
isScrolledHalf = true;
console.log("Reached halfway mark!");
_gaq.push(['_trackEvent', 'Content Engagement', 'Scroll', 'Half']);
}
}
if (!isScrolledWhole) {
if (scrollPercent > scrolled_whole) {
isScrolledWhole = true;
console.log("Reached the end!");
_gaq.push(['_trackEvent', 'Content Engagement', 'Scroll', 'End']);
}
}
});
}
});
function GetScrollPercent(target){
var bottom = $(window).height() + $(window).scrollTop(),
height = $(document).height();
return Math.round(100 * bottom / height);
}
最佳答案
事实证明,这实际上可能是新 GA 中的一个错误。当我收到回复时,我会在这里作为评论进行报告。
稍后...
我从未收到过有关此问题的答案,但我的代码最终开始跟踪。后来我改成了using this跟踪滚动深度,它的工作绝对完美。
关于javascript - 谷歌分析和_trackEvent : Events not logging to Analytics,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6687597/