0

我想通过Google Analytics(分析).NET客户端将查询细分应用于某个查询,但我无法使其工作。这是我一直在努力:如何使用Google Analytics.NET客户端应用细分受众群

var segments = analyticsService.Management.Segments.List().Execute(); 
var engagedTeamsSegment = segments.Items.FirstOrDefault(x => x.Name.Equals("Engaged Teams", StringComparison.OrdinalIgnoreCase)); 

var format = "yyyy-MM-dd"; 
var today = DateTime.UtcNow.Date; 
var thirtyDaysAgo = today.Subtract(TimeSpan.FromDays(30)); 
var metrics = engagedTeamsSegment.Definition.Replace(';', ','); 

var gaData = analyticsService 
    .Data.Ga 
    .Get($"ga:{profile.Id}", today.ToString(format), thirtyDaysAgo.ToString(format), metrics) 
    .Execute(); 

它让我下面的错误

类型的未处理的异常“Google.GoogleApiException”发生在 Google.Apis.dll

附加信息:Google.Apis.Requests.RequestError

无效值 'users :: condition :: ga:dimension2!= 0,ga:sessionCount> = 2,ga:daysSinceLastSession < = 14'。 GA DIMENSION2 = 0,:sessionCount 值必须以下正则表达式匹配: 'GA:+'[400]

错误[

消息[无效值 “用户::条件::ガ! > = 2,ga:daysSinceLastSession < = 14'。 值必须在下面的正则表达式匹配:“嘎:+”] 位置[指标 - 参数]原因[参数无效]域[全球]

]

我可能做错了什么,但不肯定是什么。有任何想法吗?

+0

您可以检查您的要求使用你的参数在https://developers.google.com/apis-explorer/#p/analytics/v3/作品?只是为了确保您正在对Google Analytics后端进行正确调用。 – peleyal

+0

@peleyal会尝试。艾米我通过传递'engagedTeamsSegment.Definition.Replace(';',',')'作为上面的度量参数来做正确的事情?这似乎可能是我做错了的地方。 – tugberk

+0

对不起,我对API不熟悉,我会等待更熟悉Analytics的人在此处回答。这不是我......对不起。 – peleyal

回答

1

感谢this question,找到了解决方案。请求中有一个Segment参数。下面的代码的伎俩:

var segments = analyticsService.Management.Segments.List().Execute(); 
var engagedTeamsSegment = segments.Items.FirstOrDefault(x => x.Name.Equals("Engaged Teams", StringComparison.OrdinalIgnoreCase)); 

var format = "yyyy-MM-dd"; 
var today = DateTime.UtcNow.Date; 
var thirtyDaysAgo = today.Subtract(TimeSpan.FromDays(30)); 

var gaDataRequest = analyticsService 
    .Data.Ga 
    .Get($"ga:{profile.Id}", thirtyDaysAgo.ToString(format), today.ToString(format), "ga:users"); 

gaDataRequest.Segment = engagedTeamsSegment.Definition; 

var gaData = gaDataRequest.Execute(); 
相关问题