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; 
相关问题