如何使用其他域上的脚本添加Google Analytics代码?

时间:2012-10-09 23:38:09

标签: javascript cookies google-analytics cross-domain

我有一个域名,我们称之为myhost.com,我在myhost.com上有一个脚本addGAcode.js。该代码包含函数includeGA(),该函数调用为我的客户端域设置的帐户的标准GA代码。它看起来像这样:

function includeGA() {   
var _gaq = _gaq || [];  
_gaq.push(['_setAccount', 'UA-432432432-43']);  
_gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);   })(); 
}

includeGA();

让我们称之为域名groceryinbelfast.com。

现在我添加了appsofbelfast脚本标签的meta以包含myhost.com/addGAcode.js。不幸的是,GA不起作用。 GA代码正确加载,但我想是因为它位于其他域名域名,它不能在不足的域名上设置cookie,这是统计工作所必需的。

我的观点是在我的服务器上安装GA脚本,以便当Google改变其中的内容或者我想对其进行一些调整时,我不需要每次我的客户的网站管理员调用变化。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您的includeGA()函数可能无效,因为_gaq需要声明为全局变量,而不是includeGA()函数中的局部变量。

您可以通过更改为:

来解决该特定问题
function includeGA() {   
    window._gaq = window._gaq || [];  
    _gaq.push(['_setAccount', 'UA-432432432-43']);  
    _gaq.push(['_trackPageview']);

    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
}