2013-12-16 61 views
0

與大多數Web應用程序一樣,我有3種不同的環境 - Dev,QA和Production。爲不同環境分離Google Analytics

我有3個Google Analytics配置文件ID。

我期待了解應用程序理解它所處環境的最有效方式,並使用相應的ID,而無需在每次升級期間更新「UA-XXXXX-X」。

每個環境都有自己的子域名,例如:

生產:www.MyWebsite.com QA:www.qa.MyWebsite.com 開發:www.dev.MyWebsite.com

我想使用jQuery來捕獲主機名,並使用相關的ID。我的應用程序是使用HTML5,jQuery和CSS創建的。

例如:

var hostname = window.location.hostname; 
var profileId; 

If hostname=’qa.MyWebsite.com’ 
{ 
    profileId = ‘123qaId’ 
} 
Elseif hostname=’dev.MyWebsite.com’ 
{ 
    profileId = ‘123devId’ 
} 

的思考?

回答

1
var envKey = { 
    'dev.mydomain.com': 'XX-XXXXXXXX-X', 
    'qa.mydomain.com': 'YY-YYYYYYYY-Y', 
    'mydomain.com': 'ZZ-ZZZZZZZZ-Z' 
}; 
var hostname = window.location.hostname; 

    var _gaq = _gaq || []; 
    _gaq.push(['_setAccount', envKey[hostname]]); 
    _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); 
    })(); 
+0

你能解釋一下上面什麼是幹什麼的? –

+1

你對不同的環境域(envKey)有不同的密鑰。您會收到當前的主機名稱,並在Google Analytics分析中初始化您使用適當的密鑰。您應該使用您的密鑰和域名,而不是虛擬密鑰和域名 – devalentino

+0

非常感謝。如果在我的域名中,我有兩個產品,例如mydomain.com/product1和mydomain.com/product2 ...我如何才能捕獲product1? –

0
var envKey = { 
    'mydomain.com/product1': 'XX-XXXXXXXX-X', 
    'mydomain.com/product2': 'YY-YYYYYYYY-Y', 
    'mydomain.com/product2': 'ZZ-ZZZZZZZZ-Z' 
}; 
var hostname = window.location.hostname + window.location.pathname.replace(/(\/[^\/]+)\/.*/, "$1"); 


var _gaq = _gaq || []; 
_gaq.push(['_setAccount', envKey[hostname]]); 
_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); 
})(); 
相關問題