我们正在从服务器发送购买事件,代码如下:
# Get the list sockets which are readable, time-out after 1 s
ready_to_read = select.select([s], [], [], 1)[0]
import msvcrt
if msvcrt.kbhit(): ready_to_read.append(sys.stdin)
但是大约有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 = #signal + host + pathAndQuery#& dp = #path#& dt = #path#& ul =#browser language#& de =#browser encoding#& sd =#bit#& sr = #screen resolution#& vp = #visable browser area#& cid =#Id取自_ga cookie#& je = 0& fl = 24.0%20r0& ec = Ecommerce& ea = purchase& _u = SCEAAAALI20% 25〜&安培; JID =安培; TID =#TrackingId#&安培; GTM =#TagManagerId#&安培; TI =#的OrderId#&安培; TA =&安培; tr = #TotalPrice#& tt = #TotalTax#& ts =#ShippingPrice#& tcc =#VoucherCode#& pa = purchase& cu =#CurrencyCode#& pr1nm =#ProducteName#& pr1id =#ProductId #& pr1pr =#ProductPrice#& pr1br = #Brand& pr1ca =& pr1va = #Variant#& pr1qt =#Quantity#& z =#随机生成的唯一ID#
欢迎任何有关错误或如何调试的想法
答案 0 :(得分:0)
你不应该在后端这样做。正确的方法是在前端
上做到这一点最简单,最正确的方法是将数据发送到dataLayer,然后在GTM中向GA发送事件。
P.S。在您的C#代码中,我可以看到您没有等待异步方法的问题。如果您的方法不是异步,那么您可以像这样使用它:
var temp = httpClient.SendAsync(new HttpRequestMessage
{
RequestUri = new Uri(url),
Method = HttpMethod.Get
}).Result;