2015-06-04 121 views
1

谷歌表明,這種多個事件track outbound links谷歌通用Analytics(分析) - 跟蹤一個鏈接點擊

ga('send', 'event', 'outbound', 'click', url, { 
    'hitCallback': function() { 
     document.location = url; 
    } 
}); 

它採用「hitCallback」將用戶重定向到頁面,一旦事件已被成功地跟蹤。

跟蹤每次點擊多個事件的語法是什麼?

我寧願不寫這樣的代碼:

ga('send', 'event', 'outbound', 'click', url, { 
    'hitCallback': function() { 

     ga('send', 'event', 'foo', 'click', url, { 
      'hitCallback': function() { 

       ga('send', 'event', 'bar', 'click', url, { 
        'hitCallback': function() { 
         document.location = url; 
        } 
       }); 
      } 
     }); 
    } 
}); 

任何解決方案需要支持IE7 +,並沒有庫的依賴。

+1

谷歌建議使用hitCallback確保在頁面導航離開之前發送命中。那麼你的鏈接是在標籤中還是在同一個標​​籤中打開?你可以嘗試使用「useBeacon」標誌(或者我認爲它現在叫做「transport」)而不是hitCallback。它在本質上做了同樣的事情:https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#useBeacon – nyuen

+0

鏈接將在同一個標​​籤中打開。我沒有看到信標功能,但是使用[Navigator.sendBeacon()](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/sendBeacon),它沒有太多的支持。這需要在IE7中工作+ –

+0

你有沒有試過在mousedown上發送事件?這樣,您可能不需要hitCallback,因爲事件將在用戶點擊完成之前發送。 – nyuen

回答

0

我認爲有兩種可能的途徑:

  • 依靠假設GA順序處理事件,並只用一擊回調的最後一個事件。

  • 使用單個回叫計數來計數調用次數,只有在接收到最後預期呼叫時更改document.location

+0

因爲那裏似乎沒有任何方法可以爲每個動作發送多個事件,並且做出假設從來都不是一個好主意,它實際上只留下第二種方法或嵌套回調作爲選項。雖然都不是理想的,但我已經實施了事件計數,因爲考慮到我的限制,它更合適。 –

0

你應該試試這個:

ga('send', 'event', 'outbound', 'click', url, {transport: 'beacon'}); 
ga('send', 'event', 'foo', 'click', url, {transport: 'beacon'}); 
ga('send', 'event', 'bar', 'click', url, { 
    transport: 'beacon', 
    hitCallback: function() { 
     document.location = url; 
    } 
}); 

傳輸參數由經典像素追蹤fallbacked,所以IE7應該生存之本。

如果使用了sendBeacon/transport,您在回調河中是獨立的,所以最後的ga呼叫已經足夠了。

相關問題