0

Wir werden vom Server mit Code wie folgt den Kauf Ereignisse zu senden:GA erweiterten E-Commerce Fehlende Kauf Veranstaltungen

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

Aber etwa 15-20% der Ereignisse wird nie in GA registriert. Google scheint immer mit einem GIF und Statuscode 200 zu antworten, daher ist es schwierig zu sagen, welche Ereignisse nicht erfolgreich verarbeitet werden.

Am Anfang verwendeten wir die Javascript-API, um das Ereignis zu senden, aber als wir zur Serverseite wechselten, kopierten wir die Anfrage, die erstellt wurde, und versuchten, sie mit HttpClient zu replizieren.

Anfrage Senden sieht wie folgt aus:

https://www.google-analytics.com/collect?v=1&_v=j47&a=817546713&t=event&ni=0&_s=1& dl = # Schema + Host + pathAndQuery # & dp = # Pfad # & dt = # Pfad # & ul = # Browser-Sprache # & de = # Browser-Kodierung # & sd = # Bit # & sr = # Bildschirmauflösung # & vp = # sichtbaren Browserbereich # & cid = # Id aus dem _ga Cookie # genommen & je = 0 & fl = 24,0% 20r0 & ec = Ecommerce & EA = Kauf & _u = SCEAAAALI20% 25 ~ & jid = & tid = # TrackingID # & GTM = # TagManagerId # & ti = # OrderId # & ta = & tr = # Totalprice # & tt = # TotalTax # & ts = # Shipping # & TCC = # den Gutscheincode # & pa = Kauf & cu = # Currency # & pr1nm = # ProducteName # & pr1id = # ProductId # & pr1pr = # Product # & pr1br = # Brand # & pr1ca = & pr1va = # Variant # & pr1qt = # Anzahl # & z = # Zufällig generierte eindeutige ID #

Irgendwelche Ideen, was falsch ist, oder wie es zu debuggen

+0

Kreativer Ansatz. Gibt es irgendeinen Grund, warum Sie das Ereignis und seine Nutzlast nicht in den DataLayer von GTM schieben? –

Antwort

0

willkommen ist, sollten Sie nicht das Backend auf das tun. Der richtige Weg ist, dies am Frontend zu tun

Der einfachste und korrekte Weg ist, Daten an Ihre DataLayer zu senden und dann in GTM ein Ereignis an GA zu senden.

P.S. In Ihrem C# -Code kann ich das Problem sehen, dass Sie nicht asynchrone Methode erwarten. Wenn Ihre Methode nicht asynchron ist, können Sie sie folgendermaßen verwenden:

var temp = httpClient.SendAsync(new HttpRequestMessage 
      { 
       RequestUri = new Uri(url), 
       Method = HttpMethod.Get 
      }).Result; 
Verwandte Themen