繁体   English   中英

同一页面上的Google内容实验和Google Analytics(分析):以正确的顺序添加脚本

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM