Javascript Google analytics在jquery移动站点中的集成,报告单次点击的双页面视图

Javascript Google analytics在jquery移动站点中的集成,报告单次点击的双页面视图,javascript,jquery,asp.net-mvc-3,jquery-mobile,google-analytics,Javascript,Jquery,Asp.net Mvc 3,Jquery Mobile,Google Analytics,我刚刚在基于jquerymobile的移动网站上完成了谷歌分析的集成。为了使分析工作正常,我使用以下代码 <script> // domReady is unnecessary here and can slow down perceived performance // $(document).ready(function (e) { (function (i, s, o, g, r, a, m) { i['GoogleAnalyticsObject'] = r;

我刚刚在基于jquerymobile的移动网站上完成了谷歌分析的集成。为了使分析工作正常,我使用以下代码

<script>
// domReady is unnecessary here and can slow down perceived performance
// $(document).ready(function (e) { 
(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-XXXXXMYID', 'mydomain.com'); // move this here!
// });

$(document).on('pageshow', '[data-role=page], [data-role=dialog]', function (event, ui) {
    try {
        if ($.mobile.activePage.attr("data-url")) {
            ga('send', 'pageview', $.mobile.activePage.attr("data-url")); // remove quotes
        }
    } catch (err) { }
});

//domReady在这里是不必要的,它会降低感知性能
//$(文件).ready(函数(e){
(功能(i、s、o、g、r、a、m){
i['GoogleAnalyticsObject']=r;
i[r]=i[r]| |函数(){
(i[r].q=i[r].q | |[]).push(参数)
},i[r].l=1*新日期();
a=s.createElement(o),
m=s.getElementsByTagName(o)[0];
a、 异步=1;
a、 src=g;
m、 parentNode.insertBefore(a,m)
})(窗口,文档,“脚本”,“www.google-analytics.com/analytics.js”,“ga”);
ga('create','UA-xxxxx myid','mydomain.com');//把这个移到这里!
// });
$(文档)。在('pageshow','[data role=page],[data role=dialog]'上,函数(事件,ui){
试一试{
if($.mobile.activePage.attr(“数据url”)){
ga('send','pageview',$.mobile.activePage.attr(“数据url”);//删除引号
}
}捕获(错误){}
});

在检查分析的实时部分时,我每次单击都会产生双页面视图。请告诉我这个代码有什么问题,请看下面的图片来理解我的意思


我访问了四个页面,分析显示了8个页面的浏览量。如何纠正此问题?

页面在移动设备上显示为一项功能。这是移动设备执行多任务的方式,这种方式不断发展,但并不十分顺畅。因此,
pageshow
经常生成过多,以防止生成不足

以下是处理事件页面显示的两种方法:

方法1

尝试将分析调用添加到
pageinit
事件

// Every time a page is being created
$(document).on("pageinit", "div[data-role=page]", function(event){
try {
    if ($.mobile.activePage.attr("data-url")) {
        ga('send', 'pageview', $.mobile.activePage.attr("data-url")); // remove quotes
    }
} catch (err) { }
});
注意:早期版本建议使用
pagecreate
事件


方法2

另一种方法是使用
one
处理程序强制处理特定事件的单个事件

$(document).one('pageshow', '[data-role=page], [data-role=dialog]', function (event, ui) {
    try {
        if ($.mobile.activePage.attr("data-url")) {
            ga('send', 'pageview', $.mobile.activePage.attr("data-url")); // remove quotes
        }
    } catch (err) { }
});

跟进 根据研究,我怀疑你在移动设备上的问题是双重绑定。如果是,请在事件执行后尝试解除绑定:

$(document).on('pageshow', '[data-role=page], [data-role=dialog]', function (event, ui) {
    try {
        if ($.mobile.activePage.attr("data-url")) {
            ga('send', 'pageview', $.mobile.activePage.attr("data-url")); // remove quotes
        }
    } catch (err) { }

    $(document).off('pageshow');


});

你有这个网站吗?这样我就可以正确调试确保你的代码不重复。您使用的是哪个JQM版本?我用此代码进行了更新,但现在它有时生成4-5或6个视图:-P。。。我想我需要一天的时间来检查working@PankajUpadhyay哇,太疯狂了。你在用什么平台?JQ Mobile的哪个版本?我会做一些调查,看看是否有问题。。。。代码是有问题的。@PankajUpadhyay,显然,这可能发生在chrome 22上,因为事件是多个绑定的。尝试将
one
pageshow
组合使用此方法可以解决页面浏览量问题。但内容跟踪仅显示“/”,即我无法跟踪访问的页面