0

我們正在與代碼從服務器發送購買這樣的活動:GA增強型電子商務缺少採購活動

using (var httpClient = new RestClient()) 
      { 
       httpClient.SendAsync(new HttpRequestMessage 
       { 
        RequestUri = new Uri(url), 
        Method = HttpMethod.Get 
       }); 
      } 

但15-20%的人從未獲取GA記錄的事件。 Google似乎總是以GIF和狀態碼200迴應,因此很難判斷哪些事件沒有成功處理。

在開始時我們使用JavaScript API發送事件,但是當我們切換到服務器端時,我們複製了它創建的請求,並嘗試使用HttpClient進行復制。

發送請求如下所示:

https://www.google-analytics.com/collect?v=1&_v=j47&a=817546713&t=event&ni=0&_s=1& DL =#方案+主機+ pathAndQuery#& DP =#路#& DT =#路#& UL =#瀏覽器語言#& DE =#瀏覽器編碼#& SD =#比特#& SR =#屏幕分辨率#& VP =#可見瀏覽器區域#& CID =從_ga餅乾#採取#標識& JE = 0 & FL = 24.0%20r0 & EC =電子商務& ea =購買& _U = SCEAAAALI20%25〜& JID = & TID =#TrackingId#& GTM =#TagManagerId#& TI =#的OrderId#& TA = & TR =#TotalPrice#& TT =#TotalTax#& TS =#ShippingPrice# & TCC =#VoucherCode#& PA =購買&立方米=#貨幣代碼#& pr1nm =#ProducteName#& pr1id =#產品編號#& pr1pr =#ProductPrice#& pr1br =#品牌#& pr1ca = & pr1va =#變#& pr1qt =#數量#& z =#隨機生成的唯一ID#

關於什麼是錯的或如何調試這是值得歡迎的

+0

創造性的方法。你爲什麼不把事件及其有效載荷推入GTM使用的dataLayer? –

回答

0

你不應該這樣做在後端任何想法。正確的方法是在前端執行此操作

最簡單且正確的方法是將數據發送到dataLayer,然後在GTM中將事件發送到GA。

P.S.在你的C#代碼中,我可以看到你沒有在等待異步方法的問題。如果你的方法不是異步的,那麼你可以這樣使用它:

var temp = httpClient.SendAsync(new HttpRequestMessage 
      { 
       RequestUri = new Uri(url), 
       Method = HttpMethod.Get 
      }).Result; 
相關問題