Javascript 是否可以托管Google Tag Manager';本地脚本是什么?
是否可以将Google Analytics生成的脚本,特别是Tag Manager生成的脚本托管在执行服务器上,而不是通过Google的脚本块从客户端获取它们 目标是避免任何对外部脚本的依赖 我知道谷歌不建议在本地托管analytics和tag manager,但有可能吗 据我所知,tag manager的工作原理是嵌入一个本地脚本,如下所示:Javascript 是否可以托管Google Tag Manager';本地脚本是什么?,javascript,google-analytics,google-tag-manager,Javascript,Google Analytics,Google Tag Manager,是否可以将Google Analytics生成的脚本,特别是Tag Manager生成的脚本托管在执行服务器上,而不是通过Google的脚本块从客户端获取它们 目标是避免任何对外部脚本的依赖 我知道谷歌不建议在本地托管analytics和tag manager,但有可能吗 据我所知,tag manager的工作原理是嵌入一个本地脚本,如下所示: <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','YOUR-GTM-CODE');</script>
<!-- End Google Tag Manager -->
(函数(w,d,s,l,i){w[l]=w[l]||【】;w[l]。推送({'gtm.start':
new Date().getTime(),事件:'gtm.js'});var f=d.getElementsByTagName[0],
j=d.createElement,dl=l!=“数据层”?“&l=”+l:“”;j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(窗口、文档、'script'、'dataLayer'、'YOUR-GTM-CODE');
当执行客户端时,它将获取一个新生成的脚本(),其中包含自上次发布以来编辑器添加到容器中的任何新标记或触发器
除了丢失新的标签管理器功能和新生成的标签外,这还能用吗?除了这些标签的开发人员之外,没有人能100%保证回答这个问题。 除了缺少版本更新之外,我将概述您可能面临的陷阱
- 这些脚本将以异步模式加载=>无页面呈现阻塞
- 这些脚本可能已经存在于浏览器的缓存中,因为它们几乎位于Internet上的任何站点上
- 谷歌的CDN有几十台边缘服务器,即使脚本不在缓存中,也可能很快加载
最后,如果确实有必要,请尽最大努力确保它在所有可能的环境中都能工作是的,此解决方案将起作用。但是如果你不更新脚本,它会限制你使用所有GTM功能的能力。我可能会建议不要尝试使用你自己的本地托管版本。通过停留在特定的静态版本上,您将容易受到与该版本的
gtm.js
相关的任何可能的安全漏洞的攻击。如果您不信任谷歌来提供安全的JavaScript,您可能需要考虑使用不同的分析提供商。