У меня есть консольное приложение, которое успешно вызывает API Google Analytics и отправляет ответ с данными, которые я хочу. Однако в одном из отчетов при открытии диапазона дат для получения дополнительных исторических данных значение, возвращаемое для измерения ga: dateHour, не работает с моей программой ... оно возвращает значение "(другое)", а не ожидаемоеdate.
Я обнаружил, что вы можете фильтровать измерения, чтобы исключить записи, основанные на таких значениях, как и запрос может ..... однако независимо от того, как я пытаюсь реализовать фильтр, он либо не исключает строки, которые я хочу, либовызывает проблемы при попытке записать данные в файл, когда они ранее работали нормально.
Я ожидал бы, что, используя мои подходящие обработчики, я могу исключить любые строки, где значение измерения не равно значению моего фильтра.
Прикрепленный фрагмент кода показывает две мои попытки использовать фильтры во время функции, которую я использую для определения отчета, который будет запрашиваться. (Я понимаю, что это не полная функция).
Код над объектом reportRequest выполняется без проблем, но когда я смотрю на возвращенную коллекцию, первая запись имеет значение «(other)» в ga: dateHour измерение
код над оператором return выполняется, но при попытке записать оператор I linq выполняет поиск, который теперь выдает ошибку «последовательность не содержит элементов» .... это несмотря натот факт, что когда я смотрю на объект отчета, он содержит ожидаемые данные и заголовки.
//Create the Dimension Filter
//var dimensionFilter = new DimensionFilter();
//dimensionFilter.DimensionName = "ga:dateHour";
//dimensionFilter.Expressions = new List<string> { "(other)" };
//dimensionFilter.Operator__ = "EXACT";
//dimensionFilter.CaseSensitive = true;
//dimensionFilter.Not = true;
//var dimensionFilterClause = new DimensionFilterClause();
//dimensionFilterClause.Filters = new List<DimensionFilter> { dimensionFilter };
// Create the ReportRequest object.
ReportRequest reportRequest = new ReportRequest
{
ViewId = viewID,
DateRanges = new List<DateRange>() { dateRange },
Dimensions = _dims,
PageSize = 10000,
Metrics = _metrics,
//DimensionFilterClauses = new List<DimensionFilterClause> { dimensionFilterClause }
};
//reportRequest.FiltersExpression = "ga:datehour!%(other)";
return reportRequest;
}