Фильтр параметров сегмента для специальных параметров в Google Analytics API v4

Я пытаюсь использовать фильтр параметров сегмента для настраиваемого параметра в 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

...


person Lukas    schedule 08.11.2017    source источник


Ответы (1)


Проблема все еще существует, но я нашел обходной путь для всех, кто находится в той же Ситуации:

  DimensionFilterClause DFC = new DimensionFilterClause().setFilters(Arrays.asList(
            new DimensionFilter()
            .setDimensionName("ga:dimension14")
            .setOperator("EXACT")
            .setExpressions(Arrays.asList("404"))));

    // Create the ReportRequest object.
    ReportRequest request = new ReportRequest()
        .setViewId(VIEW_ID)
        .setDateRanges(Arrays.asList(dateRange))
        .setDimensionFilterClauses(Arrays.asList(DFC))
        .setDimensions(Arrays.asList( prev_page_path, ShopName, Seitentyp))
        .setMetrics(Arrays.asList(User));
person Lukas    schedule 08.11.2017