-
Notifications
You must be signed in to change notification settings - Fork 20
Expand file tree
/
Copy pathQuickStartJsonCredentials.cs
More file actions
124 lines (111 loc) · 4.4 KB
/
QuickStartJsonCredentials.cs
File metadata and controls
124 lines (111 loc) · 4.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
// Copyright(c) 2020 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License"); you may not
// use this file except in compliance with the License. You may obtain a copy of
// the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
// License for the specific language governing permissions and limitations under
// the License.
/* Google Analytics Data API sample quickstart application.
Before you start the application, please review the comments starting with
"TODO(developer)" and update the code to use correct values.
This application demonstrates the usage of the Analytics Data API using service
account credentials.
Usage:
cd analytics-data/QuickStartJsonCredentials
dotnet restore
dotnet run
*/
// [START analyticsdata_json_credentials_quickstart]
using System;
using System.IO;
using Google.Analytics.Data.V1Beta;
using Google.Api.Gax;
using Google.Apis.Auth;
using Google.Apis.Auth.OAuth2;
namespace AnalyticsSamples
{
class QuickStartJsonCredentials
{
static void SampleRunReport(
string propertyId = "YOUR-GA4-PROPERTY-ID",
string credentialsJsonPath = "YOUR-CREDENTIALS-FILE"
)
{
/**
* TODO(developer): Uncomment this variable and replace with your
* Google Analytics 4 property ID before running the sample.
*/
// propertyId = "YOUR-GA4-PROPERTY-ID";
// [START analyticsdata_json_credentials_initialize]
/**
* TODO(developer): Uncomment this variable and replace with a valid path to
* the credentials.json file for your service account downloaded from the
* Cloud Console.
* Otherwise, default service account credentials will be derived from
* the GOOGLE_APPLICATION_CREDENTIALS environment variable.
*/
// credentialsJsonPath = "/path/to/credentials.json";
GoogleCredential credential;
using (var stream = new FileStream(credentialsJsonPath, FileMode.Open, FileAccess.Read))
{
credential = CredentialFactory
.FromStream<ServiceAccountCredential>(stream)
.ToGoogleCredential();
}
// Explicitly use service account credentials by specifying
// the private key file.
BetaAnalyticsDataClient client = new BetaAnalyticsDataClientBuilder
{
GoogleCredential = credential,
}.Build();
// [END analyticsdata_json_credentials_initialize]
// [START analyticsdata_json_credentials_run_report]
// Initialize request argument(s)
RunReportRequest request = new RunReportRequest
{
Property = "properties/" + propertyId,
Dimensions = { new Dimension { Name = "city" } },
Metrics = { new Metric { Name = "activeUsers" } },
DateRanges =
{
new DateRange { StartDate = "2020-03-31", EndDate = "today" },
},
};
// Make the request
RunReportResponse response = client.RunReport(request);
// [END analyticsdata_json_credentials_run_report]
// [START analyticsdata_json_credentials_run_report_response]
// For more information on processing paged responses, see:
// https://cloud.google.com/dotnet/docs/reference/help/page-streaming
Console.WriteLine("Report result:");
foreach (Row row in response.Rows)
{
Console.WriteLine(
"{0}, {1}",
row.DimensionValues[0].Value,
row.MetricValues[0].Value
);
}
// [END analyticsdata_json_credentials_run_report_response]
}
static int Main(string[] args)
{
if (args.Length > 0)
{
SampleRunReport(args[0], args[1]);
}
else
{
SampleRunReport();
}
return 0;
}
}
}
// [END analyticsdata_json_credentials_quickstart]