当前位置: 首页 > 知识库问答 >
问题:

延迟加载谷歌分析Javascript代码和托管分析.js自己的服务器上

何甫
2023-03-14

下面的代码是谷歌推荐的。我把代码放在我的footer.php中,就在之前

此代码显示等待整个文档加载,然后加载外部文件“延迟加载.js”

<script type="text/javascript">
function downloadJSAtOnload() {
var element = document.createElement("script");
element.src = "/defer-loading.js";
document.body.appendChild(element);
}
if (window.addEventListener)
window.addEventListener("load", downloadJSAtOnload, false);
else if (window.attachEvent)
window.attachEvent("onload", downloadJSAtOnload);
else window.onload = downloadJSAtOnload;
</script>

在延迟加载中。js文件中,我放置了以下新的Google Analytics跟踪代码-也称为通用分析:(我替换了我的id号和域名)

(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','http://mydomainname.com/myga.js','ga');

ga('create', 'Uxxx-xx-xxx', 'auto');
ga('set', 'anonymizeIp', true);
ga('send', 'pageview');

附加说明:保留myga。js(analytics.js)代码更新,我在服务器上使用每日cron。它下载分析。js并替换我服务器上的旧版本。这部分工作正常。在这里您可以找到教程-如何更新脚本

不幸的是,我defer-loading.js文件中的新谷歌通用跟踪代码不跟踪访问!

为了找到错误,我在延迟加载中使用了以下旧的Google Analytics跟踪代码。js和它工作良好:

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'Uxxx-xx-xxx']);
_gaq.push(['_trackPageview']);

(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.mydomainname.com/myga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

使用firebug,我意识到下面的文件(1px/1px)只能加载旧的(工作中的)Google Analytics代码版本。新代码不会加载这个文件——但是其他一切看起来都没问题。

http://www.google-analytics.com/r/__utm.gif?................

知道为什么新的谷歌分析通用跟踪代码不起作用吗?


共有1个答案

公冶龙野
2023-03-14

以下是解决方案:

https://github.com/danielstjules/defer-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();
    i.initAnalytics = function() {
        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-000000-0');
ga('send', 'pageview');

function atOnload() {
    initAnalytics();
}
if (window.addEventListener) window.addEventListener("load", atOnload, false);
else if (window.attachEvent) window.attachEvent("onload", atOnload);
else window.onload = atOnload;
 类似资料:
  • 我正在尝试学习如何在一个新网站上整合谷歌分析和定制事件跟踪。在研究它之后,我似乎无法理解Google Tag Manager和仅仅编写自定义事件跟踪代码之间的区别和关系。 Google Tag Manager是否只是一种更简单的跟踪信息的方法,而无需编写JS?

  • 本文向大家介绍浅析js预加载/延迟加载,包括了浅析js预加载/延迟加载的使用技巧和注意事项,需要的朋友参考一下 Pre loader 预加载一般有两种常用方式:xhr和动态插入节点的方式。动态插入节点是最为简单也最为广泛的一种异步加载方式,然后使用动态插入节点方法加载的文件都会 在加载后立即执行,javascript的执行一方面会占用浏览器js执行进程,另一方面也可能改变页面结构,而css 的执行

  • 我正在阅读网络分析,遇到了GTM和GA。 似乎GA是谷歌提供的一项服务,它生成关于网站流量的报告和统计数据。根据我有限的理解,为了生成这些报告,我们需要在结束时执行某种类型的标记。 在GTM中,我们还需要在我们的网站上添加一些标签。 所以如果两个GA

  • 我终于明白了我是如何连接到谷歌分析的,正确的——现在我可以在某个时候访问数据了。我正在使用google-api-php-Client。 我可以工作与指标只是罚款fx,通过做 它将返回会话数、页面浏览量和会话持续时间。但是现在让我们假设我也对使用一些维度感兴趣-也许我希望查询返回搜索引擎所有流量的站点使用情况数据,按页面浏览量降序排序。 数据- 我尝试在数组中提供维度和过滤器,但它返回以下错误 警告

  • 我跟随这篇文章将谷歌分析添加到我的django中http://www.nomadblue.com/blog/django/google-analytics-tracking-code-into-django-project/ 我添加了和到 我添加了以下内容 hellowworld/上下文处理器/谷歌分析。派克 然后,我添加了helloworld。上下文处理器。谷歌分析。google_analyti

  • 当你想要分享你代码给其他人,或者是你需要在另外一台电脑上工作时,托管代码就会是一个非常重要的话题。基本上代码托管有两种不同的形式: do-it-yourself(建立一个自己的)或者 leave-me-in-peace(使用第三方提供的平台,不麻烦自己)。 (A) Do-It-Yourself 把你的 Git 仓库托管在你自己的服务器上会有很多的优点: 可以节省你花在代码托管服务上的费用。 你的代