2017-08-16 144 views
0

我需要發送谷歌Analytics客戶ID的服務器端,我們將運行谷歌測量協議API中的GA客戶端ID。我怎樣才能JSP或Java代碼

我們有GA通過GTM實現。

按照谷歌的建議,我不應該來解析_ga餅乾因此,我試圖要通過推薦的方式。如果我將下面的代碼粘貼到控制檯上,它可以正常工作,但只要我在jsp中包含此代碼,就不會定義錯誤ga引用。

trackers = ga.getAll(); 
var i, len; 
    for (i = 0, len = trackers.length; i < len; i += 1) { 
    if (trackers[i].get('trackingId') === "UA-62222232-2") { 
    console.log(trackers[i].get('clientId')); 
    } 
} 

請讓我知道什麼是獲得ga客戶id的正確方法?我無法通過jsp來這樣做,並且認爲在java代碼中解析cookie會更好。

TIA

+0

Java還是javascript? – shmosel

+0

Java。最終我需要獲得客戶端ID並將其發送到服務器。 – user1633800

回答

0

如果你把上面的代碼在JSP文件變得簡單的JavaScript在瀏覽器中,所以這是你需要調試什麼。

但其實我建議你忽略了谷歌警告,簡單地解析的cookie。即使你通過Javascript檢索clientId,你也需要將它傳遞給服務器,讓服務器端代碼解析這個cookie來解決這個問題。

如果你真的想要一個很簡單的解決方案,您可以創建和維護在Java代碼中一個clientId,並把它傳遞到GA標籤(例如通過數據層變量,因爲您使用GTM)。從那以後,您可以自己控制客戶端ID的格式,您可以確定沒有任何意外。

+0

謝謝。是解析cookie是我的最後手段,但我確實想嘗試GA提供的解決方案。我認爲原因可能是因爲我們通過GTM使用GA,這是由於異步本質,當我的javascript觸發時,ga跟蹤器可能不可用。 – user1633800

+0

您是否在GTM內部執行此操作?如果你把它放在一個自定義的HTML標籤中,你可以通過標籤排序來執行它,這取決於GA標籤。或者你遵循廝磨Ahavas文章,自定義任務中訪問的clientid在追蹤:https://www.simoahava.com/gtm-tips/use-customtask-access-tracker-values-google-tag-manager/ –

+0

不幸,我需要將這個值傳遞給服務器端,因此我需要通過在jsp或java代碼本身內部激發的JavaScript來做到這一點。 – user1633800