簡體   English   中英

Google Analytics測量協議:如何從服務器上的cookie獲取客戶端ID?

[英]Google Analytics Measurement Protocol: How do I get the client-id from cookie on the server?

我想使用測量協議從服務器發送一個谷歌分析事件。

文檔說明了cid是必需的,並且應該是UUID( https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#cid )。

但是,我想使用與_ga cookie中存儲的內容相同的客戶端ID。 但根據這一點 ,我不應該直接解析cookie中的id,因為它可能會在沒有警告的情況下改變。

此外,tracker.get('clientId')在瀏覽器中返回的字符串不是標准的UUID字符串,所以即使我在瀏覽器中檢索了值並將其發送到服務器,它仍然不是格式化的文檔說它應該是。

那么,我需要做什么才能以前向兼容的方式從cookie中獲取客戶端ID?

使用ga.getAll()[0].get('clientId'); 獲取clientId。

關於他們的文檔,谷歌只是不希望你直接抓取cookie,並解析它,因為cookie將來可能會改變。

他們概述的方法是獲取clientId的首選方法。

關於clientId和使用UUID,您幾乎可以傳遞匿名識別某人的任何值(包括使用GA的clientId)。

我們所做的是使用ga.getAll()[0].get('clientId'); 獲取客戶端並將其發送到服務器,我們可以將clientId放入測量協議的require參數,並將服務器端測量協議請求發送回GA,其中包括銷售成本等交易數據等。使用clientId允許您將事務連接到源/介質等。

獲取ClientID的正確方法是通過傳遞回調來詢問跟蹤器。

它必須在ga("create",...)之后調用ga("create",...)並且請求是:

ga(function(tracker) {
  // very similar to internal method like ga.getAll()[0].get('clientId');
  var clientId = tracker.get('clientId'); 
  // now you can pass client id to your internal system
  myInternalMeasurementProtocolSetter(clientId);  
});

在此之后,您必須調用ga("send"...)來運行之前的一批設置。

如果您要將其調出初始設置隊列,則必須驗證GoogleAnalytics是否已初始化。

你可以問ga.getAll(); 如果有任何跟蹤器。 如果是,那么您可以傳遞回調。

如果您將使用任何其他方式,您可以提前或延遲陷入困境。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM