2017-11-14 13 views
0

私はASP.NET MVC Webアプリケーションを持っています。私はウェブサイトからのLIVEユーザーの数を表示したい。.NET MVCアプリケーションでGoogleアナリティクスのLIVEユーザー数を確認するにはどうすればよいですか?

Googleアナリティクスからこれを読み取るにはどうすればよいですか?

私はすでにこのガイドに従っています: http://www.markwemekamp.com/blog/c/how-to-read-from-google-analytics-using-c/ しかし、私はコードを動作させることはできません。走り続け、System.NullReferenceExceptionを与えます。

ここで、より良いアイデアやガイドを持つ人がいることを願っています。そして、それを細部まで完全にガイドしてください。あなたが何をすべきか分からない半分のガイドではありません。

ありがとうございました。

更新:

これは私が使用していますガイドからのコードがあります。私は日付だけを追加しました。私はGlobal.asax.csファイルでコードを使用しています。

ヌル例外は、コードのこの部分にoccures:

foreach (var x in response.Reports.First().Data.Rows) 
    { 
     Debug.WriteLine("The next line doesn't appear: seee....."); 
     Debug.WriteLine(string.Join(", ", x.Dimensions) + " " + string.Join(", ", x.Metrics.First().Values)); 
    } 

コード:

protected void Application_Start() 
    { 
     AreaRegistration.RegisterAllAreas(); 
     UnityConfig.RegisterComponents(); 
     RouteConfig.RegisterRoutes(RouteTable.Routes); 
     Database.SetInitializer<EFDbContext>(null); 
     MethodSomethingGoogle(); 
    } 

    public void MethodSomethingGoogle() 
    { 
     string todaysDate = DateTime.Now.ToString("yyyy-MM-dd"); 
     string tomorrowsDate = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd"); 

     try 
     { 
      var filepath = @"C:\Users\ckersten\Downloads\Dashboard-Match-Online-b2f3f0b438a1.json"; 
      var filepath2 = @"~\App_Data\Dashboard-Match-Online-b2f3f0b438a1.json"; 

      // path to the json file for the Service account 
      var viewid = "109154097"; // id of the view you want to read from 
      Googl 

      eCredential credentials; 
       using (var stream = new FileStream(filepath, FileMode.Open, FileAccess.Read)) 
       { 
        string[] scopes = { AnalyticsReportingService.Scope.AnalyticsReadonly }; 
        var googleCredential = GoogleCredential.FromStream(stream); 
        credentials = googleCredential.CreateScoped(scopes); 
       } 

       var reportingService = new AnalyticsReportingService(
        new BaseClientService.Initializer 
        { 
         HttpClientInitializer = credentials 
        }); 
       var dateRange = new DateRange 
       { 
        StartDate = todaysDate, 
        EndDate = tomorrowsDate 
       }; 
       var sessions = new Metric 
       { 
        Expression = "ga:pageviews", 
        Alias = "Sessions" 
       }; 
       var date = new Dimension { Name = "ga:date" }; 

       var reportRequest = new ReportRequest 
       { 
        DateRanges = new List<DateRange> { dateRange }, 
        Dimensions = new List<Dimension> { date }, 
        Metrics = new List<Metric> { sessions }, 
        ViewId = viewid 
       }; 
       var getReportsRequest = new GetReportsRequest 
       { 
        ReportRequests = new List<ReportRequest> { reportRequest } 
       }; 
       var batchRequest = reportingService.Reports.BatchGet(getReportsRequest); 
       var response = batchRequest.Execute(); 
       foreach (var x in response.Reports.First().Data.Rows) 
       { 
        Debug.WriteLine("The next line doesn't appear: seee....."); 
        Debug.WriteLine(string.Join(", ", x.Dimensions) + " " + string.Join(", ", x.Metrics.First().Values)); 
       } 
      } 
      catch (Exception e) 
      { 
       Debug.WriteLine("Google Exception: " + e.ToString()); 
      } 
      Debug.WriteLine(Console.ReadLine()); 
     } 
+0

これまでに得たコードを教えてください。どこでNullReferenceExceptionをスローしますか? –

+0

私はコードを追加しました。 –

答えて

0

あなたのコードは、あなたのリアルタイムデータを提供するつもりイマイチ報告APIを使用しています。レポートAPIのデータは、24 -48時間処理されません。

現在進行中のことを確認するには、リアルタイムAPIを使用する必要があります。一回のビューで1日にAPIに対して10000リクエストしか作成できないことを覚えておいてください。

DataResource.RealtimeResource.GetRequest request = 
service.Data.Realtime.Get(String.Format("ga:{0}", profileId), "rt:activeUsers"); 
RealtimeData feed = request.Execute(); 

foreach (List row in realTimeData.Rows) 
{ 
foreach (string col in row) 
    { 
    Console.Write(col + " "); // writes the value of the column 
    } 
Console.Write("\r\n"); 
} 

リアルタイムAPI here GitHubのサンプルプロジェクトでの私のチュートリアルを見つけることができhereあなたもservice account

注使用して検討する必要があります:限られた中で、

リアルタイムAPIを報告しますベータ版は、開発者のプレビューのみで利用できます。 Sign up to access the API

+0

最初のステップを追加します。「Google.Apis.Analytic.v3」パッケージを見つけることができません。 "Google.Apis.AnalyticsReporting.v4"という名前のパッケージがインストールされていますか? –

+0

corectパッケージをインストールするInstall-Package Google.Apis.Analytics.v3 – DaImTo

+0

"realTimeData"変数(foreach内)はどこから由来していますか?それは私には分かりません。これは決して割り当てられないため、使用できません。リストはどのタイプですか?それはちょうど "リスト"と名付けることはできません。それは型を持たなければならない。 –

関連する問題