2015-11-04 97 views
0

這幾乎涵蓋了原始 FB/Twitter按鈕的主題。但是如果我有我自己的「分享fb」按鈕呢?就像這樣:GA中的社交分享跟蹤

<div id="fb_share"><a target="_blank" href="http://www.facebook.com/share.php?u=blah-blah">Share on FB</a></div> 

所以我想出folloing解決方案:

var FBbtn = document.getElementById("fb_share"); 
    FBbtn.addEventListener('click', function() { 
     ga('send', 'social', { 
     'socialNetwork': 'facebook', 
     'socialAction': 'share', 
     'socialTarget': window.location 
    }); 
    //console.log('tracked'); 
}); 

被放置在谷歌Analytics(分析)代碼後。 儘管事實上它不會捕捉FB回調 - 它應該做的伎倆,但由於某種原因,我仍然無法在分析中看到任何結果,所以問題是這樣的:將解決方案實際工作?事實上,它可能會更喜歡我相信:

<a href="http://www.facebook.com/share.php?u=blah-blah" onClick="ga('send', 'social', 'Facebook','Share',window.location.href);");">FB</a> 
+2

你的鏈接缺少id,所以FBtn沒有定義。不過,你的第二個例子應該可以工作 –

+1

你的第二個例子拼寫'href'屬性「hre」。確保你沒有在你的實際代碼中這樣做。 –

+0

是的 - 是的...抱歉的傢伙 - 這兩個(身份證和「href」的正確拼寫)當然是存在的。我已更正問題 – Rossitten

回答

2

你的「分享在Facebook」鏈接導致頁面導航(而不是打開一個新窗口/標籤)。當此導航發生時,大多數主流瀏覽器取消當前頁面的所有掛起的HTTP請求,然後導航到新頁面(fb.com)

在這種情況下,其中一個掛起的HTTP請求將是GA事件跟蹤調用因此將永遠不會完成並且永遠不會被GA服務器接收。

您需要使用的是GA命中回調功能,這基本上取消了本地導航(FB),發送跟蹤調用並等待足夠的時間完成,然後執行JavaScript重定向到下一頁。

你應該read the google docs here

在你的情況你的事件跟蹤功能應該與此類似:

var FBbtn = document.getElementById("fb_share"); 
FBbtn.addEventListener('click', function() { 
    ga('send', 'social', { 
    'socialNetwork': 'facebook', 
    'socialAction': 'share', 
    'socialTarget': window.location, 
    'hitCallback': function(){ 
     window.location = this.href; 
    } 
    }); 
    //console.log('tracked'); 
    return false; 
}); 

所以我做了以下修改:

  1. 添加了hitCallback財產到事件跟蹤調用。這是一個匿名函數,一旦GA服務器發送了他們對事件跟蹤的響應,就會被調用。
  2. 添加了一個'return false'語句,它取消了原生功能,然後依靠hitCallback函數進行導航。
+1

我不確定這是否爲真 - Universal Analytics應該(在支持此功能的瀏覽器上)使用專門設計用於即使頁面已卸載的工作的navigator.sendBeacon - 請參閱https://開發人員。 google.com/analytics/devguides/collection/analyticsjs/field-reference#transport(我僅指出這一點 - 僅供參考 - hitCallback將支持尚未實施sendBeacon的舊瀏覽器,因此在任何情況下都是一個很好的解決方案) 。 –

+1

它是一個很好的觀點,但是我見過最近發生在客戶端的網站,即使使用Chrome 45+,理論上它應該支持navigator.beacon。這是我將與合作伙伴計劃共同討論的官方身份。 –

+0

非常感謝你們! – Rossitten