2014-10-08 30 views
1

我不確定我的展示位置是否正確......這是我需要幫助的部分...谷歌分析文件下載沒有解僱,放置問題?

我有一個web應用程序,它將動態生成可用資源的列表,和文件信息的變量的分辨率完美的作品......我越來越裝出來的代碼錨標記像這樣:

<ul id="ul_4" class="resources_list fa-ul h_4"> 
    <li> 
     <a onclick="var that=this;_gaq.push(['_trackEvent','Resources: Tools','Download','Policy template: Access to confidential information']);setTimeout(function(){location.href=that.href;},200);return false;" href="/file.cfm?f=402&type=resource">Policy template: Access to confidential information</a> 
    </li> 
    <li> 
     <a onclick="var that=this;_gaq.push(['_trackEvent','Resources: Tools','Download','Policy template: Client records']);setTimeout(function(){location.href=that.href;},200);return false;" href="/file.cfm?f=407&type=resource">Policy template: Client records</a> 
    </li> 
    <li> 
     <a onclick="var that=this;_gaq.push(['_trackEvent','Resources: Tools','Download','Policy template: Privacy']);setTimeout(function(){location.href=that.href;},200);return false;" href="/file.cfm?f=391&type=resource">Policy template: Privacy</a> 
    </li> 
</ul> 

...注視着我對谷歌Analytics(分析)標準代碼如下:

<script> 
    var _gaq = _gaq || []; 
    _gaq.push(['_setAccount', 'UA-12345678-1']); 
    _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> 

不幸的是,無論我在這些鏈接上使用的點擊次數如何,觸發器似乎都不會記錄在Google Analytics(分析)中......即使在24小時的週轉時間或更長時間之後......我是否正在使用在我的鏈接上填充觸發器的錯誤方法,還是我使用錯誤的代碼來引用觸發器?我應該將最初的Google Analytics(分析)urchin代碼放在​​我的頁面頂部嗎?

我知道事實上,標準的GA代碼工作,因爲我看到各種其他網頁的活動......但對於從這些鏈接可用的文件下載是問題...我很n00b當涉及到GA,所以我願意接受任何建議......我錯過了什麼?

在此先感謝...

回答

1

的問題是onclick屬性不一定執行之前的頁面已經改爲資源;在GA請求通過之前,setTimeout可以執行。通過查看開發人員控制檯中的「網絡」選項卡,您會看到這一點;由於用戶在執行onclick之前被髮送到資源,GA請求可能永遠不會完成。

您似乎也在使用_gaq(用於舊版Analytics),而不是ga

在Google的docs上總結了正確的方法。這裏它適合你:

<script> 
var trackFileDownload = function(url, page, description) { 
    ga('send', 'event', 'fileDownload', url, page + " " + description, {'hitCallback': 
    function() { 
     document.location = url; 
    } 
    }); 
} 
</script> 

<a onclick="trackFileDownload(this.href, 'Resources: Tools', 'Policy template: Access to confidential information'); return false;" href="/file.cfm?f=402&type=resource">Policy template: Access to confidential information</a> 
+0

這看起來不錯,但應用程序是客戶端的應用程序,我們有點鎖定使用'_gaq'而不是'ga' ...有沒有機會,你可以修改上面的代碼以反映'_gaq'實例? – 2014-10-08 23:06:36

+0

@ Eliseod'Annunzio,你應該可以將你的代碼從'onclick'移動到函數中。另外,您的Google Analytics代碼不會將'_gaq'放入全局命名空間中? – sushain97 2014-10-11 21:11:05