Google Universal Analytics はサービスを終了したため、現在はこの記事で紹介しているコードは動作しません。
新しい Google Analytics 4 (GA4) プロパティを利用する必要があります。
GA4プロパティからのデータ取得はこちらの記事を参照してください。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Google.Apis.AnalyticsReporting.v4;
using Google.Apis.AnalyticsReporting.v4.Data;
using Google.Apis.Auth.OAuth2;
using System.IO;
namespace GoogleAnalyticsPVGet
{
public partial class FormMain : Form
{
public FormMain()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
FileStream stream = new FileStream("ipentectest-0f26d0134ab7.json", FileMode.Open, FileAccess.Read);
GoogleCredential credential = GoogleCredential.FromStream(stream).CreateScoped(AnalyticsReportingService.Scope.AnalyticsReadonly);
AnalyticsReportingService.Initializer initializer = new AnalyticsReportingService.Initializer() {
HttpClientInitializer = credential,
ApplicationName = "app"
};
AnalyticsReportingService service = new AnalyticsReportingService(initializer);
GetReportsRequest request = new GetReportsRequest();
ReportRequest report_request = new ReportRequest()
{
ViewId = "(Google AnalytivcsのビューのID)",
Metrics = new[] { new Metric { Expression = "ga:pageviews" } },
Dimensions = new[] { new Dimension { Name = "ga:date" } },
DateRanges = new[] { new DateRange { StartDate = "2010-01-01", EndDate = "2010-01-15" } },
OrderBys = new[] { new OrderBy { FieldName = "ga:date", SortOrder = "DESCENDING" } }
};
request.ReportRequests = new[] { report_request };
ReportsResource.BatchGetRequest batchRequest = service.Reports.BatchGet(request);
GetReportsResponse response = batchRequest.Execute();
foreach (var x in response.Reports.First().Data.Rows) {
textBox1.Text += string.Join(", ", x.Dimensions) + " " + string.Join(", ", x.Metrics.First().Values) + "\r\n";
}
}
}
}
FileStream stream = new FileStream("ipentectest-0f26d0134ab7.json", FileMode.Open, FileAccess.Read);
GoogleCredential credential = GoogleCredential.FromStream(stream).CreateScoped(AnalyticsReportingService.Scope.AnalyticsReadonly);
AnalyticsReportingService.Initializer initializer = new AnalyticsReportingService.Initializer() {
HttpClientInitializer = credential,
ApplicationName = "app"
};
AnalyticsReportingService service = new AnalyticsReportingService(initializer);
ViewId
に取得するビューのIDを、Metrics
に取得するデータの種類、Dimensions
に取得するデータのディメンジョン、DateRanges
に取得するデーターの日付範囲、
OrderBys
に取得するデータのソート順を設定します。ReportRequests
プロパティに作成した、ReportRequest オブジェクトを代入します。 GetReportsRequest request = new GetReportsRequest();
ReportRequest report_request = new ReportRequest()
{
ViewId = "(Google AnalytivcsのビューのID)",
Metrics = new[] { new Metric { Expression = "ga:pageviews" } },
Dimensions = new[] { new Dimension { Name = "ga:date" } },
DateRanges = new[] { new DateRange { StartDate = "2010-01-01", EndDate = "2010-01-15" } },
OrderBys = new[] { new OrderBy { FieldName = "ga:date", SortOrder = "DESCENDING" }
};
request.ReportRequests = new[] { report_request };
ReportsResource.BatchGetRequest
オブジェクトを作成し、Execute() メソッドを呼び出しデータを取得します。
取得したデータは、GetReportsResponse
オブジェクトに格納されます。 ReportsResource.BatchGetRequest batchRequest = service.Reports.BatchGet(request);
GetReportsResponse response = batchRequest.Execute();
GetReportsResponse
オブジェクトのRepostsプロパティに格納されています。response.Reports.First().Data.Rows
をforeachループで取得し、Dimenstions と、Values の値をテキストボックスに表示します。 foreach (var x in response.Reports.First().Data.Rows) {
textBox1.Text += string.Join(", ", x.Dimensions) + " " + string.Join(", ", x.Metrics.First().Values) + "\r\n";
}