无法让google analytics在我的页面上运行,该页面使用AJAX加载其页面

时间:2010-01-14 21:09:40

标签: javascript jquery html ajax

所以经过一个巨大的头痛,我让我的网站通过ajax加载其页面。原因是客户希望它像旧的Flash网站一样流动..呃。

无论如何,一切都很花花公子,但后来我添加了谷歌分析跟踪器,它不再加载了!

以下是我如何做ajax:

$("li.home a").click (function() {       
    ajax_load("index.php",this);
    return false;
});
$("li.location a").click (function() {
    ajax_load("location.php",this);
    return false;
});

etc...

function ajax_load(page,element) {

    // deals with making an element active in left nav
    $('#mainnav').find('li.active').removeClass('active');
    $(element).parent().addClass('active');

    // empty the wrapper, then add new content with a fade effect
    $("#wrapper").empty();
    $("#wrapper").css({'display' : 'none'})
    $.ajax({
        type: "POST",
        url: page,
        success: function(msg){            
            $("#wrapper").append(msg);
            $("#wrapper").fadeIn();
        }
    });

    // set the page hash, so we can add these pages to favorites if wanted
    var strLen = page.length;
    page = page.slice(0,strLen-4);
    window.location.hash = page;
}

所有单独的页面都是php文件..当它们被加载时,会在文件的开头检查它是否是ajax请求。如果是..它会跳过标题并导航到内容,然后跳过页脚。这允许它在禁用javascript时工作。

因此,为了让谷歌分析能够处理ajax页面加载,我想我可以简单地将谷歌跟踪代码粘贴在加载的区域内,当它是ajax请求时...

那不行!目前,唯一一个包含google anayltics跟踪代码的页面是平面图页面,因此您可以看到正在发生的事情。任何指针都将非常感谢!

使用以下内容跟踪谷歌跟踪代码:

    <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">
try {
var pageTracker = _gat._getTracker("UA-11737385-5");
pageTracker._trackPageview();
} catch(err) {}</script>

// 更新 //

我相信应该这样做,谢谢Pekka!

    $.ajax({
    type: "POST",
    url: page,
    success: function(msg){            
        $("#wrapper").append(msg);
        $("#wrapper").fadeIn();
        pageTracker._trackPageview(page);
    }

1 个答案:

答案 0 :(得分:6)

您可以使用_trackPageview功能。请参阅Google Analytics manual

  

如何跟踪AJAX应用

     

使用典型的HTML页面,您可以使用URL来区分多个综合浏览量。但是在AJAX应用程序中,对服务器的请求是在不更改页面URL的情况下进行的,这使得难以跟踪。

     

但是,通过调用_trackPageview函数,您可以为任何AJAX事件分配页面文件名。通常,在返回数据并对页面进行所有更新之后,这将作为onreadystatechange函数的一部分完成。