![](/img/trans.png)
[英]Adding Google Content Experiments code to a single page of Angular 1 application
[英]Google Content Experiments and Analytics on same page: Adding scripts in correct order
我正在尝试运行内容实验,因此<head>的基本结构应如下所示:
<head>
<!-- Content experiments code (CE) -->
***
<!-- End CE code -->
*** Standard <head> code: title, meta, CSS, JS, etc. ***
<!-- Google Analytics code -->
***
<!-- End GA code -->
</head>
在正在加载的各种JS中,有Google跟踪代码管理器 :
<script async="" src="//www.googletagmanager.com/gtm.js?id=GTM-***"></script>
该文件动态加载另一个脚本:
<script type="text/javascript" async="" src="//www.googleadservices.com/pagead/conversion_async.js"></script>
对我来说不幸的是,它使用以下方法将其插入第一个<script>标记之前 :
...
getElementsByTagName('script')[0].insertBefore(newScriptObject);
...
如果不清楚为什么会出现问题,则内容实验脚本应为<head>中的第一个元素。 但是,由于此脚本是在第一个脚本元素之前插入的,因此不是。
为了解决这个问题,其他脚本(也在我的控制范围之外)也通过此方法加载。 因此,即使在文档中首先使用内容实验代码,但在JS执行并更新DOM之后,它前面仍然放置了许多脚本元素。
我认为这实际上无关紧要吗? 与页面加载一样,第一个脚本元素将是加载内容实验脚本的脚本元素(正确),因为尚未动态插入其他文件。
CE脚本会在其余脚本加载之前加载并运行吗?
抱歉,提出一个非常直截了当的问题的方法有点冗长,但是,是的。
谢谢您的帮助,
汤姆
这是网上的标准做法,完全可以。 很好的挖掘和调试! 内容实验只希望您将脚本加载到靠近头部的位置,以便他们可以将用户重定向到控制网址之外,而对性能的影响尽可能小。
编辑:并且,这样当人们不小心将CE AFTER Google Analytics包括在内时,他们不会得到很多支持票。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.