0

私たちは、このようなコードで、サーバからの購入イベントを送信している:GA拡張eコマースの欠落購入イベント

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

しかし、GAに登録されることは決してありませんイベントの約15から20パーセント。 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 =#ブラウザの言語#&デ=#ブラウザエンコード#& SD =#ビット#& SR =#画面解像度#& VP =#表示可能なブラウザエリア#& CID =#Idは_gaクッキー位から採取& JE = 0 & FL = 24.0パーセント20r0 & EC = eコマース& ea =購入& _u = SCEAAAALI20%25〜& JID = & TID =#TrackingId#& GTM =#TagManagerId#& TI =#OrderIdで#& TA = & TR =#TotalPrice#& TT =#TotalTax#& TS =#ShippingPrice# & TCC =#VoucherCode#& PA =購入&のcu =#CURRENCYCODE#& pr1nm =#ProducteName#& pr1id =#のProductId#& 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; 
関連する問題