2013-08-28 22 views
1

我試圖在我的「輪播廣告」中實施trackevent,但點擊次數未在Google Analytics中計算。trackEvent在注入javascript時未登錄onclick

我正在使用javascript數組來容納我的鏈接,圖像和trackevent標籤。

我打電話給div內的腳本,並在相同的DIV中插入我的錨點和圖像。

這裏是我的腳本:

for (var i=0; i < imgArr.length; i++) { 
strCreateLink = "<a href='" + imgArr[position][1] + "' target='_blank' onclick='_gaq.push(['_trackEvent', 'AdClick', 'Click', '"+ imgArr[position][2] + "']);return false;'><img src='" + imgArr[position][0] + "' /></a>";} 
document.getElementById(ele).innerHTML = strCreateLink; 

它的工作原理,當我靜在頁面上放置的元素。我也試着將onclick放在IMG上。

任何有關Google不計算這些點擊次數的想法?

謝謝!

回答

0

這是用於新的Google Analytics配置文件嗎?如果是這樣,你在使用Universal Analytics(analytics.js)還是使用遺留的ga.js?

如果您使用的是Universal Analytics,請確保您使用的是正確的功能,因爲它是相對較新的。網絡上的大多數GA文檔都是針對ga.js.

+0

使用「遺產」的ga.js;) – user2726112

0

我以前遇到過這個挑戰。您需要確保分析有機會在鏈接點擊的默認功能將瀏覽器帶到新頁面之前發送信標。我解決這個問題的方式是創建一個函數來處理髮送事件信標的出站鏈接,並延遲100ms後點擊進入點擊的href。您可能希望將其重命名爲更適合您的用例。

function trackOutboundLink(link, category, action, label) { 
    try { 
     _gaq.push(['_trackEvent', category , action, label]); 
    } catch(err){} 

    setTimeout(function() { 
     document.location.href = link.href; 
    }, 100); 
} 

要調用此方法onclick您必須記得返回false。這裏有一個例子:

<a href="http://www.google.com/" 
    onclick="trackOutboundLink(this, 
    'Outbound Links', 'google.com', 
    'Google Outbound'); return false;">outbound link</a> 

沒有return false;,瀏覽器將按照href馬上。或者,您可以使用onclick來捕獲事件對象以調用event.preventDefault(),這會產生相同的效果(並且可能更優雅...)。

+0

我會嘗試這些了。但我也實際上通過使用document.getElementById(「id」)。setAttribute(「onclick」,「trackeventcode」); 不知道爲什麼setAttribute可以正常工作,而不是僅僅將它寫入anchor/div/img。 – user2726112

1

在這種情況下,你只需要修復語法錯誤引號:

onclick='_gaq.push([\"_trackEvent\", \"AdClick\", \"Click\", \""+ imgArr[position][2] + "\"]);return false;'