2011-02-23 53 views
1

我正在努力測量我的Google Adwords廣告系列和轉到App Store的正常流量的轉化情況。之前我在我的頁面上加載了一個「/ app_store /」鏈接,等待1秒鐘,然後繼續到應用商店。谷歌分析和Adwords延遲JavaScript鏈接到App Store被忽略?

我在使用Javascript的地方找到了更優雅的解決方案。對於adwords,它會加載一個像素圖像,對於分析,它會調用Google Javascript函數,暫停一小會兒,然後跟隨鏈接。

不幸的是,它不適合我。谷歌分析和谷歌Adsense沒有看到任何人去App Store(甚至不是我自己)。

<script type="text/javascript"> 
    var _gaq = _gaq || []; 
    _gaq.push(['_setAccount', 'UA-18180332-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); 
})(); 

function recordOutboundLink(link, category, action) { 
    try{ 
     // Google Analytics 
     var pageTracker = _gat._getTracker("UA-18180332-1"); 
     pageTracker._trackEvent(category, action); 

     // Google Adwords 
     var image = new Image(1, 1); 
     image.src = "http://www.googleadservices.com/pagead/conversion/1046551421/?value=$8&amp;label=zqrfCMWh0QEQ_baE8wM&amp;guid=ON&amp;script=0" 
     setTimeout('document.location = "' + link.href + '"', 100) 

    } catch(err) {} 
} 
</script> 

,並顯示鏈接:

<a href="http://itunes.apple.com/ae/app/isimplifiedchinese/id377690407?mt=8" 
onClick="recordOutboundLink(this, 'Outbound Links', 'http://itunes.apple.com/ae/app/isimplifiedchinese/id377690407?mt=8');return false;"> 
<img alt="Appstore" src="images/appstore.png"></a> 

什麼我錯在這裏做什麼?

更新23:13 我注意到,如果延遲爲100ms,由下面的錯誤閃爍(我花了一段時間的截圖)。

Failed to load resource

我只有二萬的建議測試這一點;不知道它是否也發生在舊版本中。這個錯誤似乎消失了更長的延遲;我將它設置爲300ms以保證安全。

回答

0

您應該防止點擊操作(瀏覽到鏈接)從beeing執行直到您錄製它。 在onclick屬性添加一個 「返回false」:

onclick="recordOutboundLink(params);return false;" 

希望它可以幫助

+0

謝謝,但我已經在使用「return false;」 (它有點隱藏,只能向右滾動) – 2011-02-23 15:21:03

0

我已經成功地得到我與_gaq.push();

,而不是工作:

var pageTracker = _gat._getTracker("UA-18180332-1"); 
pageTracker._trackEvent(category, action); 

做:

_gaq.push(['_trackEvent', category, action]); 

因爲_gaq在頁面啓動時已經初始化,所以不要再次獲取pageTracker。只需使用_gaq來推動事件追蹤器。另外,請記住,谷歌分析不會實時更新,而且更多情況下它不會在48小時內更新。

+0

大約48小時前,我將Google Analytics和Google Adwords代碼之間的'setTimeout'行 移到了兩者之下。所以這些變化可能尚未反映在數據中。否則它已經活了好幾個星期了。 我剛剛實施你的建議;讓我們看看它是如何發展的。 – 2011-02-23 14:55:32

+0

我會收回有關_gat的評論,當我在我的測試中執行'console.log(_gat)'時ga.js未完全加載。但是,你的'console.log(_gaq);'應該返回一個數組。去你的谷歌分析帳戶,並選擇你的網站。去編輯,然後右上角喲ushoudl看到檢查狀態點擊,看看你的trackign是否工作。 – kjy112 2011-02-23 15:30:44

+0

@SjorsProvoost你設法找出造成它的確切錯誤嗎? – kjy112 2011-02-26 20:54:53

0

在GA代碼運行完成之前,腳本可能會重定向。你可以嘗試將它放到gaq上,以保證在其餘代碼之後運行。然後,您的函數可能是這樣的:

function recordOutboundLink(link, category, action) { 
    // Google Analytics 
    _gaq.push(['_trackEvent', category, action]); 

    // Google Adwords 
    _gaq.push(function() { 
    var image = new Image(1, 1); 
    image.src = "http://www.googleadservices.com/pagead/conversion/1046551421/?value=$8&amp;label=zqrfCMWh0QEQ_baE8wM&amp;guid=ON&amp;script=0"; 
    }); 
    _gaq.push(function() {setTimeout('document.location = "' + link.href + '"', 100);}); 
} 

我沒有測試它,但它是類似的東西我以前嘗試。

+0

感謝您的建議;我只是實現了它,如果它能夠工作,我會讓你知道。 – 2011-02-23 15:00:38