Google Analytics Api: 如何在代码中使用自定义变量?

Google Analytics Api: How to use Custom Variables in the code?

尝试在 Google 分析仪表板上模拟我的操作方式。

如何使用 Custom Variable Value 创建细分?我已经尝试编写以下代码,但它没有 return 返回任何结果。
Custom Variable Value 可以设为 DimensionFilter 吗?

// Create Dimension Filter.
          SegmentDimensionFilter dimensionFilter = new SegmentDimensionFilter()
              .setDimensionName("ga:customVarValue1")
              .setOperator("EXACT")
              .setExpressions(Arrays.asList("account_id"));


          // 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("Sessions with Safari browser");

          // 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(segmentDimensions))
              .setSegments(Arrays.asList(segment))
              .setMetrics(Arrays.asList(sessions));

一些可以帮助你的东西 运行。

  1. 不再使用自定义变量,因为它们已被替换为 custom dimensions for Universal Analytics
  2. 使用 API explorer 构建并分享您的调试请求。
  3. 最初不使用过滤器或段进行查询,以确保您要查找的数据存在于您正在查询的视图中。

据说要创建一个包含自定义变量段的请求:

Java 例子

  // Create the DateRange object.
  DateRange dateRange = new DateRange();
  dateRange.setStartDate("2015-06-15");
  dateRange.setEndDate("2015-06-30");

  // Create the Metrics object.
  Metric sessions = new Metric()
      .setExpression("ga:sessions")
      .setAlias("sessions");

  //Create the custom var  dimension.
  Dimension customVarValue1 = new Dimension()
      .setName("ga:customVarValue1");

  // Create the segment dimension.
  Dimension segmentDimensions = new Dimension()
      .setName("ga:customVarValue1");

  // Create Dimension Filter.
  SegmentDimensionFilter dimensionFilter = new SegmentDimensionFilter()
      .setDimensionName("ga:customVarValue1")
      .setOperator("PARTIAL")
      .setExpressions(Arrays.asList("account_id"));

  // 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("Sessions with Safari browser");

  // Create the Segments object.
  Segment segment = new Segment()
      .setDynamicSegment(dynamicSegment);

  // Create the ReportRequest object.
  ReportRequest request = new ReportRequest()
      .setViewId("XXXX")
      .setDateRanges(Arrays.asList(dateRange))
      .setDimensions(Arrays.asList(customVarValue1, segmentDimensions))
      .setSegments(Arrays.asList(segment))
      .setMetrics(Arrays.asList(sessions));

  // Create the GetReportsRequest object.
  GetReportsRequest getReport = new GetReportsRequest()
      .setReportRequests(Arrays.asList(request));

  // Call the batchGet method.
  GetReportsResponse response = analyticsreporting.reports().batchGet(getReport)
      .execute();

要检查的内容。:

  1. 确保您使用的是正确的自定义变量。您是要搜索 ga:customVarName1 吗?
  2. 查询没有段或过滤器的变量以确保数据在 filtering/segmenting.
  3. 之前存在
  4. 确保您使用的是正确的operator

最后,如果您在 UI 中创建一个细分,您始终可以在 API 中按细分 ID 进行查询:

Java 按段 ID 请求。

  // Create the Segments object for returning users.
  Segment segment = new Segment()
      .setSegmentId("gaid::-3");

  // Create the ReportRequest object.
  ReportRequest request = new ReportRequest()
      .setViewId("XXXX")
      .setDateRanges(Arrays.asList(dateRange))
      .setDimensions(Arrays.asList(browser, segmentDimensions))
      .setSegments(Arrays.asList(segment))
      .setMetrics(Arrays.asList(sessions));

  // Create the GetReportsRequest object.
  GetReportsRequest getReport = new GetReportsRequest()
      .setReportRequests(Arrays.asList(request));

要获取细分 ID,您可以在分析管理 API 中调用 segments.list 方法。