0

Nous envoyons les événements d'achat à partir du serveur avec le code comme ceci:GA Achat manquants commerce électronique amélioré des événements

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

Mais environ 15-20% des événements n'est jamais enregistrés dans GA. Google semble toujours répondre avec un GIF et un code d'état 200, il est donc difficile de dire quels événements ne sont pas traités avec succès. Au début, nous utilisions l'API javascript pour envoyer l'événement, mais lorsque nous sommes passés au côté serveur, nous avons copié la requête créée et essayé de le répliquer avec HttpClient.

L'envoi de la demande se présente comme suit:

https://www.google-analytics.com/collect?v=1&_v=j47&a=817546713&t=event&ni=0&_s=1& dl = # schéma + hôte + PathAndQuery # & dp = # chemin # & dt = # chemin # & ul = langue # navigateur # & de = # navigateur encodage # & sd = # bit # & sr = # résolution d'écran # & vp = zone # navigateur visible # & cid = # Id prise du cookie _ga # & je = 0 & fl = 24,0% 20r0 & ec = E-commerce & ea = achat & _u = SCEAAAALI20% 25 ~ & JID = & tid = # TrackingID # & GTM = # TagManagerId # & ti = # OrderId # & ta = & tr = # TotalPrice # & tt = # TotalTax # & ts = # ShippingPrice # & tcc = # VoucherCode # & pa = achat & cu = # CurrencyCode # & pr1nm = # ProducteName # & pr1id = # ProductId # & pr1pr = # ProductPrice # & pr1br = # Marque # & pr1ca = & pr1va = # Variant # & pr1qt = # Quantité # & z = # ID unique généré de manière aléatoire #

Toutes les idées sur ce qui ne va pas ou comment déboguer est la bienvenue

+0

Approche créative. Quelle est la raison pour laquelle vous ne propagez pas l'événement et sa charge dans le dataLayer utilisé par GTM? –

Répondre

0

Vous ne devriez pas le faire sur le back-end. La manière correcte est de faire cela sur le frontend

Le moyen le plus simple et le plus correct est d'envoyer des données à votre dataLayer puis d'envoyer un événement à GA dans GTM.

P.S. Dans votre code C# je peux voir le problème que vous n'attendez pas la méthode async. Si votre méthode n'est pas asynchrone, vous pouvez l'utiliser comme suit:

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