2009-07-15 29 views
24
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); 
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); 

try 
{ 
    var pageTracker = _gat._getTracker("UA-XXXXXXX-1"); 
    pageTracker._trackPageview(); 
} 
catch(err) {} 

是否可以从外部JS文件调用此脚本?我想要类似于:是否可以将Google Analytics代码放入外部JS文件中?

<script type="text/javascript" src="googleanalytics.js" ></script> 

并将其中的一个放在我的每个HTML页面上。
我上面的代码将位于googleanalytics.js中
Google的说明是将代码放在每个页面中。这样做的问题是,它更难以更改跟踪代码。 (我们对DEV和PROD页面使用不同的跟踪代码)。
我试过了,它似乎没有工作。
这样做有什么问题吗?还是有其他的东西导致这个问题?

重要FYI 请注意,我们使用的是IE6和8个浏览器(是的,我知道,没有必要告诉我)

回答

14

是的,这是可能的。如果它不工作,那么还有其他事情正在发生。

只是一个想法,Google Analytics(分析)通常比报告晚一天,所以当您进行更改时,需要一段时间才能知道它正在工作。我喜欢做的是打到一个不经常获取流量的页面,以确保我的跟踪设置正确。

此外,您可以尝试将链接设为<script标记中的绝对链接。它可能只是在分析代码的错误位置。

+0

是的,我知道GA是一天后,问题是它没有注册任何命中,即使它已经4天,因为我应用了代码,并且我一整天都在浏览DEV网站整整4天,修复bug和东西。 希望这是注册或别的东西有问题。我们将尝试重新申请新的跟踪代码,然后查看会发生什么情况。感谢您的再次保证! – Nikko 2009-07-15 12:42:31

0

总结谷歌代码到功能,并执行每一页上;)

4

您是否可以不使用服务器端语言在每个页面的底部输出代码?有一个函数,如output_ga()并调用它。这样你就可以在一个地方改变它。

+1

我工作的公司更喜欢我没有为此使用任何服务器端脚本,所以这是不可能的。如果这取决于我,这将是我将如何做到这一点。 – Nikko 2009-07-17 01:14:14

1

如果您将脚本划分为2个脚本,则与Google Analytics将传统脚本划分为2个脚本标记的方式相同。

0

@Nikko

一个可能的原因是因为GA帐户是使用旧的分析创建。所以你必须使用传统的分析代码ga.js(_gaq.push)。我发现在GA网站中使用新的analytics.js与传统GA帐户不兼容。命中不会出现,所以我不得不使用传统的ga.js.

此外,您还可以设置一个回调函数,以保证命中发送成功,如下图所示:

//traditional way 
_gaq.push(['_set', 'hitCallback', function() { 
    console.log("%c ga.js finished sending pageview data to analytics %s ", "color:black; background: pink", pageviewUrl); 
}]); 

//new analytics way 
ga('send', 'pageview', { 
      'page': pageviewUrl, 
      'hitCallback': function() { 
       console.log("%c analytics.js done sending data. pageview url = %s ", "color: black, background: pink", pageviewUrl); 
      } 
     }); 

其中pageviewUrl =网站

希望帮助的网址!

相关问题