Google Analytics 优化/Google Analytics加载失败导致阻塞的解决方法

Google的服务能用的非常有限了,Google Analytics之前还算正常,近期经常处于pending状态,多是googletagmanager.com/gtag/js挂起,导致整个页面数据都无法正常渲染。
问题分析
正常的给的代码是这样的

<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-XXXXX-Y"></script>
<script>
    window.dataLayer = window.dataLayer || [];
    function gtag(){dataLayer.push(arguments);}
    gtag('js', new Date());
    gtag('config', 'UA-XXXXX-Y');
</script>

插入上述代码后,网页渲染时执行的流程如下:

1.下载https://www.googletagmanager.com/gtag/js?id=UA-XXXXX-Y脚本(下面简称gtag.js),此过程不阻塞HTML的解析
2.下载完成后,立即执行gtag.js,gtag.js会在标签中插入异步执行的script标签
3.下载https://www.google-analytics.com/analytics.js脚本(下面简称analytics.js),此过程不会阻塞HTML的解析
4.下载完成后,立即执行analytics.js,analytics.js会向https://www.google-analytics.com发送采集结果

上述过程需要从两个域名(www.googletagmanager.com与www.google-analytics.com)处下载脚本,而在国内,是无法访问上述两个域名的。

由于无法访问域名,更无法下载脚本,脚本会一直处于pending状态,在非常长的等待时间(默认状态约1min)后变为failed状态。

虽然GA提供的代码已经使用了script标签的async,使得脚本时异步执行的,下载脚本的过程不会阻塞HTML解析,但是由于下载迟迟没有完成,而下载的等待时间又远远长于页面加载时间,所以等待脚本下载失败的这个过程仍然会阻塞页面的最终渲染完成(包括部分图片和CSS渲染效果等),浏览器也会一直显示网页处于加载中。

Google Analytics加载失败/阻塞的解决方法

解决方案是,在网页完全渲染完成之后,再开始下载和执行GA相关的脚本。我们可以将这一过程与网页渲染分隔开来,这样在用户看来,浏览器上呈现出的网页已经渲染完成了,渲染速度只取决于网页本身。至于GA的脚本加载成功与否,对用户的体验没有影响。
基于上述思路,只要我们在网页元素load事件完成之后,再插入script标签并执行即可。插入的代码如下。经过试验,按照如下方式插入的GA脚本,能够正常进行统计。

<!-- Global site tag (gtag.js) - Google Analytics -->
<!-- Modified By Ricardo (Tongtong) Liu -->
<!-- <script async src="https://www.googletagmanager.com/gtag/js?id=UA-XXXXX-Y"></script> -->
<script>
    window.dataLayer = window.dataLayer || [];
    function gtag(){dataLayer.push(arguments);}
    gtag('js', new Date());
    gtag('config', 'UA-XXXXX-Y');
    window.addEventListener('load', function(){
        var s = document.createElement('script');
        s.src = "https://www.googletagmanager.com/gtag/js?id=UA-XXXXX-Y";
        document.body.appendChild(s);
    });
</script>

经实际测试,问题得到解决,即便Google Analytics加载失败,也不会阻塞其它数据正常渲染。

UniApp是一个跨平台的应用开发框架,它允许开发者使用一套代码来同时构建iOS、Android和Web应用。而Google Analytics是一种网站分析工具,可以用来监测和分析网站的活动和用户行为。结合起来,UniApp和Google Analytics可以用来跟踪和分析UniApp应用的使用情况和用户行为。 根据引用中的Google文档,设置基本和高级自定义目标在Google Analytics中并不困难,只需要按照正确的步骤进行操作。您可以参考该文档来了解如何在Google Analytics中设置自定义目标。 根据引用中的Google文档,Google Analytics中有四种主要的自定义目标类型可供选择。如果您只想了解最后一个类型,即“事件”目标类型,可以直接滚动到第4点:“设置事件目标”。 根据引用中的脚本说明,该脚本可以将多个Google Analytics帐户设置为一个包并进行控制。因此,如果触发了自定义事件,它将被发送到配置了该脚本的所有Google Analytics帐户。这样可以简化受众特征、自定义页面浏览量和自定义事件的跟踪,并提供一些测试功能。 根据引用中的文章,作者介绍了如何在Google Analytics中轻松设置自定义事件跟踪。随着对自定义事件跟踪的需求不断增长,学习如何设置和使用自定义事件跟踪可以帮助开发者更好地了解用户在UniApp应用中的行为和互动。 综上所述,您可以使用Google Analytics来跟踪和分析UniApp应用的使用情况和用户行为,并通过设置自定义目标和自定义事件跟踪来满足特定的分析需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值