Я пытаюсь получить данные из Google Analytics с помощью локального консольного приложения. Im может извлечь некоторые данные без входа в учетную запись google и только с использованием API.Извлечение данных из API Google Analytics с использованием .NET/C#
Проблема в том, что я не получаю правильные значения, и я не уверен, как отформатировать код для извлечения правильных значений. Я не буду получать всех посетителей в течение определенного периода времени, в этом случае «2012-01-01» - «2014-02-20». Фактическое количество посетителей в 10 раз больше, когда вы просматриваете панель инструментов Google Analytics. При отладке кода я получаю число 15000. Я показываю d.TotalResults в консоли, которая может быть неправильной, переменная «d» содержит множество разных свойств.
Это код, я бегу:
public static void Main(string[] args)
{
var serviceAccountEmail = "[email protected]";
var certificate = new X509Certificate2(@"C:\Users\User\Desktop\key.p12", "notasecret", X509KeyStorageFlags.Exportable);
var credential = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(serviceAccountEmail)
{
Scopes = new[] { AnalyticsService.Scope.Analytics }
}.FromCertificate(certificate));
// Create the service.
//Twistandtango
var gas = new AnalyticsService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "TestGoogleAnalytics",
});
var r = gas.Data.Ga.Get("ga:MYProfileID", "2012-01-01", "2014-02-20", "ga:visitors");
//Specify some addition query parameters
r.Dimensions = "ga:pagePath";
r.Sort = "-ga:visitors";
r.MaxResults = 5;
//Execute and fetch the results of our query
Google.Apis.Analytics.v3.Data.GaData d = r.Execute();
Console.WriteLine(d.TotalResults);
Console.ReadLine();
}
Я пытаюсь запросить результаты, я хочу с этим инструментом https://ga-dev-tools.appspot.com/explorer/. Когда я реализую это в моем коде это выглядит следующим образом:
public static void Main(string[] args)
{
var serviceAccountEmail = "[email protected]";
var certificate = new X509Certificate2(@"C:\Users\User\Desktop\key.p12", "notasecret", X509KeyStorageFlags.Exportable);
var credential = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(serviceAccountEmail)
{
Scopes = new[] { AnalyticsService.Scope.Analytics }
}.FromCertificate(certificate));
// Create the service.
//Twistandtango
var gas = new AnalyticsService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "TestGoogleAnalytics",
});
var r = gas.Data.Ga.Get("ga:MYProfileID", "2012-01-01", "2014-02-20", "ga:visits");
//Specify some addition query parameters
r.Dimensions = "ga:visitCount";
r.Metrics = "ga:visits";
r.Segment = "gaid::-1";
//r.Sort = "-ga:visitors";
r.MaxResults = 10000;
//Execute and fetch the results of our query
Google.Apis.Analytics.v3.Data.GaData d = r.Execute();
Console.WriteLine(d.TotalResults);
Console.ReadLine();
}
}
Однако после добавления метрики (r.Metrics = "ga:visits";
) для проекта я получаю эту ошибку:
Error 7 Property or indexer 'Google.Apis.Analytics.v3.DataResource.GaResource.GetRequest.Metrics' cannot be assigned to -- it is read only
Также вот индекс классов в аналитике v3:
кто-нибудь есть знания о том, как это работает? Как получить общее количество посетителей с указанного мной временного интервала?
Thx
ваш также выбор PagePath, который вам нужно будет суммировать их все, чтобы получить полную сумму за все. вы уверены, что не ищете визитов и посетителей? – DaImTo
Ну, я просто ищу все визиты между датами, указанными мной. Все визиты полные, новые, старые и т. Д. Как я могу их суммировать?Угадай, что я не понял, как это работает, пробовал разные измерения и показатели, но я думаю, что им не форматировать код правильно, так как я не получаю ожидаемых результатов. Я думаю, вы можете комбинировать фильтры или размеры, но я не уверен – koffe14