Java中为Google Analytics API的RunReportRequest声明OrderBys
解决Google Analytics API v1beta按date升序排序的问题
只需正确构建OrderBy对象即可实现按date维度升序排序,具体修改如下:
修正后的排序逻辑代码
List<OrderBy> orderBys = new ArrayList<OrderBy>() {{ // 按date维度升序排序 add(OrderBy.newBuilder() .setDimension(OrderBy.DimensionOrderBy.newBuilder() .setDimensionName("date") .build()) .setDesc(false) // *false表示升序(ASC),true表示降序(DESC)* .build()); }};
完整修正后的代码片段
String VIEW_ID = "0000000000"; String[] GA_METRICS = {"newUsers","activeUsers","totalUsers","addToCarts","cartToViewRate","checkouts","screenPageViews","totalPurchasers"}; List<Metric> metrics = new ArrayList<Metric>() {{ for(String metricName : GA_METRICS) { add(Metric.newBuilder().setName(metricName).build()); } }}; List<OrderBy> orderBys = new ArrayList<OrderBy>() {{ // 按date字段升序排序 add(OrderBy.newBuilder() .setDimension(OrderBy.DimensionOrderBy.newBuilder() .setDimensionName("date") .build()) .setDesc(false) .build()); }}; RunReportRequest request = RunReportRequest.newBuilder().setProperty("properties/" + VIEW_ID) .addDimensions(Dimension.newBuilder().setName("date")) .addAllMetrics(metrics) .addAllOrderBys(orderBys) .addDateRanges(DateRange.newBuilder().setStartDate(dateRanges.get("startDate")).setEndDate(dateRanges.get("endDate"))).build();
说明:因为是按维度date排序,所以需要通过OrderBy.DimensionOrderBy指定排序维度名称,再通过setDesc(false)显式设置为升序(若省略该参数,默认排序方向也为升序,但显式设置更易维护)。
内容的提问来源于stack exchange,提问作者kim jason
相关产品推荐
相关产品推荐

