2013-04-15 114 views
1

好吧我一直在使用自定義變量一段時間了。我已經搜索並遵循網絡上的帖子的指示,但無論出於何種原因,它都無法正常工作。Google Analytics(分析)自定義變量不會跟蹤

這裏是我使用

<script type="text/javascript"> 
var _gaq = _gaq || []; 
var pluginUrl = '//www.google-analytics.com/plugins/ga/inpage_linkid.js'; 
_gaq.push(['_require', 'inpage_linkid', pluginUrl]); 
_gaq.push(['_setAccount', 'UA-xxxxxxx-x']); 
_gaq.push(['_setDomainName', 'domain.com']); 
_gaq.push(['_setCustomVar',1,'Enquiry Type','e-Notification']); 
_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); 
})(); 
</script> 

有一兩件事值得一提這裏的代碼是設置自定義變量的行包含在PHP IF語句。基本上我只想在表單提交後設置這個變量,以便我可以從選擇框中捕獲一個值。

在一天結束時,我想要做的就是讓人們填寫表單並獲取選擇框的值以傳回Google Analytics(分析)。我不希望在每個頁面加載時設置該值,因此一旦我設置了_setCustomVar後,我將會話值設置爲缺省值,以便它不再被調用(除非該表單第二次完成)。

這裏是構建以獲得與GIF通過PARAMATERS(如果它沒有任何用處的,以幫助調試此)

utmac=UA-xxxxxx-x 
utmcc=__utma=247537282.1869531581.1359929325.1365982402.1365984281.5;+__utmz=247537282.1365982402.4.3.utmcsr=domain.com|utmccn=(referral)|utmcmd=referral|utmcct=/; 
utmcs=UTF-8 
utmdt=Request A Call Back 
utme=8(Enquiry Type)9(e-Notification) 
utmfl=- 
utmhid=1514805008 
utmhn=www2.domain.com 
utmht=1365984805826 
utmje=1 
utmn=1234674801 
utmp=/request-call-back.php?action=sent&oForm=2 
utmr=0 
utms=7 
utmsc=24-bit 
utmsr=1680x1050 
utmu=qR~ 
utmul=en-us 
utmvp=1680x672 
utmwv=5.4.1 

通過我的各種測試,我用繞過PHP IF語句我有「取得了一些」成功。換句話說,我可以偶爾將我的測試數據寫入自定義變量報告中,但大多數時候我不能。似乎沒有一個一致的邏輯,爲什麼虛擬測試工作,並不起作用。

最後一件事,使用_setDomainName是必需的,因爲帳戶上的域是「domain.com」,但包含該腳本的網站是「www2.domain.com」。我不相信這個問題對於這個問題至關重要,而只是另一件事。

任何想法?

回答

0

你可能錯過了第四個參數scope在_setCustomVar方法:

_gaq.push(['_setCustomVar', 
     1,     // This custom var is set to slot #1. Required parameter. 
     'Items Removed',  // The name acts as a kind of category for the user activity. Required parameter. 
     'Yes',    // This value of the custom variable. Required parameter. 
     2     // Sets the scope to session-level. Optional parameter. 
    ]); 

所以,如果一個頁面上所設置的值,並在同一頁上不設置它在所有(甚至沒有一個「空值「),價值可能停留在最後一級。每次訪問和每個用戶級別都一樣。

您應該將變量視爲一種屬於用戶(終身),會話(訪問)或單頁面視圖的「屬性」。

根據我的經驗,在90%的實現中處理這個問題是錯誤的。

此外:忽略意味着頁面級別意味着每個命中都會添加一個值(或不)。

備註:根據你的提問,我認爲這應該是會話級別(2)而不是頁面級別(3)。只有在狀態轉換時才應該設置,你已經在PHP中實現了。

+0

感謝您的回覆。我已將範圍留空,以便它採用默認範圍,我認爲這對於我想要實現的範圍而言是正確的。這是我第一次使用自定義變量,根據我的理解,頁面級範圍就是我所追求的。一個用戶可以完成多個表單,並且我希望在每個提交的表單中捕獲該字段。這是做這件事的最好方法嗎? – SaRiD

+0

葉普,通常是的。這些值也需要一段時間才能填充到報表中。 「延遲」可能長達一小時(訪問期限爲30分鐘)。因此,「點擊和查看」測試可能會失敗,請繼續,讓自己喝點咖啡,然後......等待;-) –

+0

所以你建議我嘗試用「2」,而不是空(默認值3)範圍是什麼?如果我將它作爲默認值,我實際上並沒有改變我的代碼來測試任何新的東西?我很高興嘗試使用「2」,但這是否意味着我只是錯誤地理解了會話級別的工作方式? – SaRiD

相關問題