我正在尝试运行内容实验,因此
的基本结构应如下所示:<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);
...
如果问题的原因并不明显,则内容实验脚本应该是
中的第一个元素。但是,由于此脚本是插入到第一个脚本元素之前,所以它不是。为了复合这一点,其他脚本(也在我的控制范围之外)也通过此方法加载。所以,尽管文档中内容实验代码在前面,但是在 JS 执行并更新 DOM 之后,前面还放置了大量的脚本元素。
那么,这重要吗?
我认为这实际上并不重要吗?在页面加载时,第一个脚本元素将是加载内容实验脚本的元素(这是正确的),因为其他文件尚未动态插入。
CE 脚本会在其余脚本加载之前加载并运行吗?
抱歉,我问的问题有点冗长,但是,嗯,是的。
感谢您的帮助,
汤姆
最佳答案
这是网络上的标准做法,完全没问题。不过,很好的挖掘和调试!内容实验只是希望您将脚本加载到靠近您的头顶的位置,以便他们可以将人们重定向到远离控制 URL 的位置,同时对性能的影响尽可能小。
编辑:并且这样当人们在 google 分析之后不小心包含 CE 时,他们就不会获得大量支持票。
关于javascript - 同一页面上的 Google 内容实验和分析 : Adding scripts in correct order,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17153431/