我们是否需要为所有不同的第三方脚本添加 noscript 标签
Do we need to add noscript tag for all different third party scripts
我在网页上安装了很多第三方脚本。
其中一些是 google 分析、facebook 像素、bing 跟踪、google 广告跟踪等等。
它们都提供了一段 script 和 noscript 代码。
例如:
bing 跟踪代码
<script>
(function(w,d,t,r,u){
var f,n,i;w[u]=w[u]||[],f=function(){
var o={ti:"5709384"};o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad")},
n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function(){
var s=this.readyState;s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null)
},i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i)})(window,document,"script","//bat.bing.com/bat.js","uetq");
</script>
<noscript><img src="//bat.bing.com/action/0?ti=5709384&Ver=2" height="0" width="0" style="display:none; visibility: hidden;" /></noscript>
和 facebook 像素代码
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window,document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '756756745676');
fbq('track', 'PageView');
</script>
<noscript>
<img height="1" width="1"
src="https://www.facebook.com/tr?id=756756745676&ev=PageView
&noscript=1"/>
</noscript>
现在我担心的是我们是否需要添加所有 noscript 标签。如果我删除所有 noscript 标签并放置一个带有消息的 noscript 标签以打开 javascript 会更好吗?或者可能是我对 noscript 标签有错误的想法。请指教
如果明确向您提供了 <noscript>
标签,您不应该删除它们,尤其是使用 Facebook Pixel、Google 标签管理器等。
对于普通用户(默认打开脚本),普通 <script>
标签将 运行 而您的第三方跟踪工具将 运行 如预期的那样,因此适当贡献到你的分析。
但是,对于某些关闭了脚本的用户,正常的 <script>
标签不会 运行,因此您的分析将不再准确。这就是 <noscript>
发挥作用的地方。
如果您注意到,这些第三方分析提供的 <noscript>
具有 <iframe>
或 <img>
以及 src
属性以及您的 "app_id".使用 Facebook Pixel 和 GTM,您还会在属性中看到类似 "PageView" 或类似内容的内容。
每当加载带有 src
的 <iframe>
或 <img>
时,页面浏览量就会归因于您的跟踪 ID。
因此,如果脚本被关闭,<noscript>
现在可以跟踪您的网络性能,使您的分析更加准确(即使无法使用某些高级跟踪功能)。
我在网页上安装了很多第三方脚本。 其中一些是 google 分析、facebook 像素、bing 跟踪、google 广告跟踪等等。 它们都提供了一段 script 和 noscript 代码。 例如: bing 跟踪代码
<script>
(function(w,d,t,r,u){
var f,n,i;w[u]=w[u]||[],f=function(){
var o={ti:"5709384"};o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad")},
n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function(){
var s=this.readyState;s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null)
},i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i)})(window,document,"script","//bat.bing.com/bat.js","uetq");
</script>
<noscript><img src="//bat.bing.com/action/0?ti=5709384&Ver=2" height="0" width="0" style="display:none; visibility: hidden;" /></noscript>
和 facebook 像素代码
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window,document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '756756745676');
fbq('track', 'PageView');
</script>
<noscript>
<img height="1" width="1"
src="https://www.facebook.com/tr?id=756756745676&ev=PageView
&noscript=1"/>
</noscript>
现在我担心的是我们是否需要添加所有 noscript 标签。如果我删除所有 noscript 标签并放置一个带有消息的 noscript 标签以打开 javascript 会更好吗?或者可能是我对 noscript 标签有错误的想法。请指教
如果明确向您提供了 <noscript>
标签,您不应该删除它们,尤其是使用 Facebook Pixel、Google 标签管理器等。
对于普通用户(默认打开脚本),普通 <script>
标签将 运行 而您的第三方跟踪工具将 运行 如预期的那样,因此适当贡献到你的分析。
但是,对于某些关闭了脚本的用户,正常的 <script>
标签不会 运行,因此您的分析将不再准确。这就是 <noscript>
发挥作用的地方。
如果您注意到,这些第三方分析提供的 <noscript>
具有 <iframe>
或 <img>
以及 src
属性以及您的 "app_id".使用 Facebook Pixel 和 GTM,您还会在属性中看到类似 "PageView" 或类似内容的内容。
每当加载带有 src
的 <iframe>
或 <img>
时,页面浏览量就会归因于您的跟踪 ID。
因此,如果脚本被关闭,<noscript>
现在可以跟踪您的网络性能,使您的分析更加准确(即使无法使用某些高级跟踪功能)。