Я пытаюсь использовать фильтр параметров сегмента для настраиваемого параметра в Google Analytics Api v4 на Java. В качестве шаблона я использую следующий образец:
https://developers.google.com/analytics/devguides/reporting/core/v4/samples
Это отлично работает со всеми измерениями, но как только я пытаюсь отфильтровать одно из наших специальных измерений, фильтр перестает работать. Не имеет значения, удовлетворяет ли Измерение условию фильтра, ответ включает все значения.
Но странно то, что когда я устанавливаю значение в условии фильтра, которого нет в настраиваемом измерении, я не получаю никакого ответа. Итак, в этот момент фильтры, кажется, работают.
Спасибо за вашу помощь.
// Create the DateRange object.
DateRange dateRange = new DateRange();
dateRange.setStartDate("yesterday");
dateRange.setEndDate("yesterday");
Metric User = new Metric().setExpression("ga:users").setAlias("User");
Dimension prev_page_path = new Dimension().setName("ga:previousPagePath");
Dimension err = new Dimension().setName("ga:dimension14");
Dimension ShopName = new Dimension().setName("ga:dimension1");
// Create the segment dimension.
Dimension segmentDimensions = new Dimension().setName("ga:segment");
// Create Dimension Filter.
SegmentDimensionFilter dimensionFilter = new SegmentDimensionFilter()
.setDimensionName("ga:dimension14")
.setOperator("EXACT")
.setExpressions(Arrays.asList("404"));
// Create Segment Filter Clause.
SegmentFilterClause segmentFilterClause = new SegmentFilterClause()
.setDimensionFilter(dimensionFilter);
// Create the Or Filters for Segment.
OrFiltersForSegment orFiltersForSegment = new OrFiltersForSegment()
.setSegmentFilterClauses(Arrays.asList(segmentFilterClause));
// Create the Simple Segment.
SimpleSegment simpleSegment = new SimpleSegment()
.setOrFiltersForSegment(Arrays.asList(orFiltersForSegment));
// Create the Segment Filters.
SegmentFilter segmentFilter = new SegmentFilter()
.setSimpleSegment(simpleSegment);
// Create the Segment Definition.
SegmentDefinition segmentDefinition = new SegmentDefinition()
.setSegmentFilters(Arrays.asList(segmentFilter));
// Create the Dynamic Segment.
DynamicSegment dynamicSegment = new DynamicSegment()
.setSessionSegment(segmentDefinition)
.setName("404");
// Create the Segments object.
Segment segment = new Segment()
.setDynamicSegment(dynamicSegment);
// Create the ReportRequest object.
ReportRequest request = new ReportRequest()
.setViewId(VIEW_ID)
.setDateRanges(Arrays.asList(dateRange))
.setDimensions(Arrays.asList( prev_page_path, ShopName, err, segmentDimensions))
.setSegments(Arrays.asList(segment))
.setMetrics(Arrays.asList(User));
// Create the GetReportsRequest object.
GetReportsRequest getReport = new GetReportsRequest()
.setReportRequests(Arrays.asList(request));
// Call the batchGet method.
GetReportsResponse response = service.reports().batchGet(getReport).execute();
Anwser будет выглядеть так:
ga:previousPagePath: #########
ga:dimension1: #########
ga:dimension14: 404
ga:segment: 404
Date Range (0): User: 1
ga:previousPagePath: #########
ga:dimension1: #########
ga:dimension14: productlist
ga:segment: 404
Date Range (0): User: 1
...