Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java APIv4直方图-can';t排序_Java_Google Analytics_Google Api_Google Analytics Api_Google Api Java Client - Fatal编程技术网

Java APIv4直方图-can';t排序

Java APIv4直方图-can';t排序,java,google-analytics,google-api,google-analytics-api,google-api-java-client,Java,Google Analytics,Google Api,Google Analytics Api,Google Api Java Client,我正试图通过APIv4从google analytics获取5天直方图,其中每个桶为1天 这就是我试图实现的查询,当通过查询生成器运行时,它运行良好 { "reportRequests": [ { "viewId": "810020000", "filtersExpression": "ga:pagePath=@mypage", "dateRanges": [ { "startDate": "5daysAgo",

我正试图通过APIv4从google analytics获取5天直方图,其中每个桶为1天

这就是我试图实现的查询,当通过查询生成器运行时,它运行良好

{
  "reportRequests": [
    {
      "viewId": "810020000",
      "filtersExpression": "ga:pagePath=@mypage",
      "dateRanges": [
        {
          "startDate": "5daysAgo",
          "endDate": "today"
        }
      ],
      "metrics": [
        {
          "expression": "ga:entranceRate"
        }
      ],
      "dimensions": [
        {
          "name": "ga:nthDay",
          "histogramBuckets": [
            "0",
            "1",
            "2",
            "3",
            "4"
          ]
        }
      ],
      "orderBys": [
        {
          "fieldName": "ga:nthDay",
          "orderType": "HISTOGRAM_BUCKET",
          "sortOrder": "ASCENDING"
        }
      ]
    }
  ]
}
然而当我尝试通过JAVA(APIv4)运行相同的查询时,我只得到一个结果(如果我没有添加sortBy) 如果我添加排序,下面会出现一个错误

{
  "code" : 400,
  "errors" : [ {
    "domain" : "global",
    "message" : "Sort key ga:nthDay is not a dimension or metric in this query.",
    "reason" : "badRequest"
  } ],
  "message" : "Sort key ga:nthDay is not a dimension or metric in this query.",
  "status" : "INVALID_ARGUMENT"
}
这是java代码

Integer uniquePageviews = analyticsApi.getUniquePageViewsHistogramDaily("5daysAgo", "today", "ga:uniquePageviews");

public Integer getUniquePageViewsHistogramDaily(String startDayPhrase, String endDayPhrase, String gaMetricsPhrase) throws IOException {
            DateRange dateRange = new DateRange();
            dateRange.setStartDate(startDayPhrase);
            dateRange.setEndDate(endDayPhrase);
            List<DateRange> dateRanges = new ArrayList<>();
            dateRanges.add(dateRange);

            Metric metric = new Metric();
            metric.setExpression(gaMetricsPhrase);
            List<Metric> metrics = new ArrayList<>();
            metrics.add(metric);

        //TODO caclulate dynamically
        List<Long> histogramBuckets = new ArrayList<>();
        histogramBuckets.add(0L);
        histogramBuckets.add(1L);
        histogramBuckets.add(2L);
        histogramBuckets.add(3L);
        histogramBuckets.add(4L);

        List<Dimension> dimensions = new ArrayList<>();
        Dimension histogram = new Dimension();
        histogram.setName("ga:nthDay");
        histogram.setHistogramBuckets(histogramBuckets);


        List<OrderBy> orderBys = new ArrayList<>();
        OrderBy orderByDay = new OrderBy();
        orderByDay.setFieldName("ga:nthDay");
        orderByDay.setOrderType("HISTOGRAM_BUCKET");
        orderByDay.setSortOrder("ASCENDING");

        orderBys.add(orderByDay);

        return getUniquePageViewsHistogramDaily(dateRanges, metrics, dimensions, "ga:pagePath=@myaccount",orderBys);
    }

    private Integer getUniquePageViewsHistogramDaily(List<DateRange> dateRangeList,
                                                     List<Metric> metrics,
                                                     List<Dimension> dimensions,
                                                     String filterExpression,
                                                     List<OrderBy> orderBys) throws IOException {

        ReportRequest request = new ReportRequest()
                .setViewId(getViewId())
                .setDateRanges(dateRangeList)
                .setDimensions(dimensions)
                .setMetrics(metrics)
                .setFiltersExpression(filterExpression)
                .setOrderBys(orderBys);

        ArrayList<ReportRequest> requests = new ArrayList<>();
        requests.add(request);

        // Create the GetReportsRequest object.
        GetReportsRequest getReport = new GetReportsRequest().setReportRequests(requests);
        // Call the batchGet method.
        GetReportsResponse response = analyticsBuilder.reports().batchGet(getReport).execute();


        return Integer.valueOf(response.getReports().get(0).getData().getTotals().get(0).getValues().get(0));
    }
Integer uniquePageviews=analyticsApi.getUniquePageViewsHistogramDaily(“5daysAgo”、“today”、“ga:uniquePageviews”);
公共整数getUniquePageViewsHistogramDaily(字符串StartDayPhase、字符串EndDayPhase、字符串GametricSprase)引发IOException{
DateRange DateRange=新的日期范围();
dateRange.setStartDate(StartDayPhase);
dateRange.setEndDate(endDayPhase);
List dateRanges=new ArrayList();
添加(dateRange);
公制=新公制();
metric.setExpression(配子孢子酶);
列表度量=新的ArrayList();
度量。添加(度量);
//TODO caclulate动态
List histogramBuckets=new ArrayList();
添加组织块(0升);
添加(1L)组分;
添加(2L);
添加组织块(3L);
添加组织块(4L);
列表维度=新的ArrayList();
维度直方图=新维度();
直方图.setName(“ga:nthDay”);
直方图.setHistogramBuckets(histogramBuckets);
List orderBys=new ArrayList();
OrderBy orderByDay=新OrderBy();
setFieldName(“ga:nthDay”);
setOrderType(“直方图_桶”);
orderByDay.setSortOrder(“升序”);
orderBys.add(orderByDay);
返回getUniquePageViewsHistogramDaily(日期范围、度量、维度,“ga:pagePath=@myaccount”,orderBys);
}
私有整数getUniquePageViewsHistogramDaily(列表日期范围列表,
列出衡量标准,
列出维度,
字符串筛选器表达式,
列表orderBys)引发IOException{
ReportRequest=newreportrequest()
.setViewId(getViewId())
.setDateRanges(日期范围列表)
.设置尺寸(尺寸)
.setMetrics(度量)
.SetFilterExpression(filterExpression)
.setOrderBys(orderBys);
ArrayList请求=新建ArrayList();
请求。添加(请求);
//创建GetReportsRequest对象。
GetReportsRequest getReport=新建GetReportsRequest().setReportRequests(请求);
//调用batchGet方法。
GetReportsResponse response=analyticsBuilder.reports().batchGet(getReport.execute();
返回Integer.valueOf(response.getReports().get(0).getData().getTotals().get(0).getValues().get(0));
}
如何通过Java获取正常的5天直方图?

好的 多亏了Intellij,我发现了这个问题 似乎我忘了将直方图维度添加到维度列表中

dimensions.add(histogram);
现在一切都如期进行
谢谢大家!

我觉得这听起来很奇怪,因为它在页面底部声明了以下内容:请求编写器使用嵌入API的ViewSelector来选择用户的视图。它还使用元数据API填充维度和度量下拉列表中的项。最后,它使用Analytics Reporting API v4来发出请求。你是什么意思?下一次不需要先尝试HTTP代理来查看“行”上的内容。可以。非常感谢。