2017-07-27 25 views
1

私はWPFアプリケーションからGoogleアナリティクスにデータを送信しようとしています。私はどのようにそれを行うかを明確に定義したオンラインリソースを見つけることはできません。利用可能なNuGetパッケージが数多くあることは知っていますが、どのパッケージを使用するのか、実装する方法はわかりません。また、私が興味を持っているサードパーティの "ヘルパー"ライブラリ(Using Google Analytics from a .NET desktop applicationを参照)があることも知っています。オンラインでのほとんどの指示は、どのようにプッシュするかではなく、GAからデータを引き出す方法を示しています。 「多分」や回避策は探していませんが、これを行うための通常の簡単な方法は何ですか。これは複雑ではありません。ちょうど "Hello World"が必要です。WPFからGoogleアナリティクスにデータを送信

正しい方向に私を指摘できますか?おかげで、

+0

をあなたは[測定プロトコル](https://developers.google.com/analytics/devguides/collection/protocol/v1/)になっているはずです。これは、使用している言語にかかわらず、HTTPリクエストライブラリを持つようにバインドされているかどうかにかかわらず、単純なHTTPリクエストを介してGoogleアナリティクスにデータを送信できます。リクエストを確認する方法については、[ヒットビルダーツール](https://ga-dev-tools.appspot.com/hit-builder/)を参照してください。 – Matt

答えて

0

これが私の仕事:

 var request = (HttpWebRequest)WebRequest.Create("http://www.google-analytics.com/collect"); 
     request.Method = "POST"; 

     // the request body we want to send 
     var postData = new Dictionary<string, string> 
        { 
         { "v", "1" }, //analytics protocol version 
         { "tid", "UA-XXXXXXXX-X" }, //analytics tracking property id 
         { "cid", "XXXX"}, //unique user identifier 
         { "t", "event" }, //event type 
         { "ec", category }, 
         { "ea", action }, 
        }; 

     var postDataString = postData 
      .Aggregate("", (data, next) => string.Format("{0}&{1}={2}", data, next.Key, 
                 Uri.EscapeDataString(next.Value))) 
      .TrimEnd('&'); 

     // set the Content-Length header to the correct value 
     request.ContentLength = Encoding.UTF8.GetByteCount(postDataString); 

     // write the request body to the request 
     using (var writer = new StreamWriter(request.GetRequestStream())) 
     { 
      writer.Write(postDataString); 
     } 

     var webResponse = (HttpWebResponse)request.GetResponse(); 
     if (webResponse.StatusCode != HttpStatusCode.OK) 
     { 
      throw new Exception($"Google Analytics tracking did not return OK 200. Returned: {webResponse.StatusCode}"); 
     } 
関連する問題