2012-11-20 72 views
1

因此,我們剛剛重新啓動了我們的網站,將其作爲Backbone技術支持的單頁面應用,但我們需要一段時間才能將Google AdWords轉換爲Google Analytics 。使用Backbone路由器在網站上跟蹤AdWords的性能

的問題是,爲了讓谷歌Analytics(分析)來跟蹤用戶是來自AdWords在事實上,它看起來在URL稱爲gclid一個URL查詢參數:

http://test.com/?gclid=(Q#kjsdf0INKJSDJF9 

但是,路由器時從Backbone初始化後,它會從URL中刪除所有查詢參數,因此當跟蹤事件觸發時,它不會看到用戶來自AdWords廣告。

我們試圖發送用戶加載的分析代碼,並等待觸發事件,然後將它們轉發到該網站的彈出式頁面,但

  1. 它的醜陋,向用戶顯示一個空白頁而
  2. 不無顯著等待IE8的用戶(誰彌補我們的用戶羣的50%黯然)

我們聯繫了谷歌的AdWords幫助,看看我們是否可以手動給gclid來分析和工作他們的回答是

您應該聘請我們的顧問誰將會找出如何保持你的站點的URL參數,以便它能夠正常工作,因爲我們不支持手動設置gclid ID

(遺憾的是隻有一個)

Google-fu在這方面讓我很空虛 - 很多人在Google論壇上提問,但沒有答案。

回答

1

我不知道如何設置所有東西,但Backbone可能沒有看到該網址的參數作爲匹配或它知道的路線。事實上,你可以通過執行類似測試...

unless Backbone.history.start(pushState: true) 
    window.location = someDefaultURL; 

如果你想只是一個簡單的方法來匹配使用參數的路線,這裏有兩種方法,你可以做到這一點。

class MyRouter extends Backbone.Router 
    routes: 
    'test?*params': 'test' 
    'testTwo?gclid=:gclid': 'testTwo' 

    test: (params) -> 
    console.log 'test route', params 

    testTwo: (gclid) -> 
    console.log 'test route two', gclid 
+0

問題是沒有得到URL查詢參數,而是將它們保留在URL中。由於Google Analytics(分析)是異步的,因此我無法控制它何時觸發跟蹤事件,因此它們需要在事件觸發後才能存在。 – tkone

+0

啊,好吧,哎呀。抱歉,我一開始並沒有聽清楚那部分內容。 –

+0

我不確定,對不起。在本地做一些測試,Backbone不會從我的URL中去除查詢參數。 –

0

所以這裏的問題是,我立刻推一個進入歷史的對象與navigate方法。

這會覆蓋(正確)當前的URL,並且不會保留URL參數(儘管它會很好,如果可以的話,我猜這是我應該做出的拉取請求)。

通過不立即調用navigate,這允許URL參數保留在足夠長的G.A.看見了。