보고 API V4 Java 클래스에서 둘 이상의 측정 항목을 추출하고 싶습니다. 아래의 함수로 측정 기준과 측정 항목의 이름 : 나는 "주요"기능에서 "조지아"통과Google 애널리틱스보고 API V4 (자바)에서 두 개 이상의 측정 항목을 추출 할 수 없습니다.
예를 들어private static ReportRequest createComplexRequest(java.lang.String startDate,java.lang.String endDate,ArrayList<java.lang.String> metrics,ArrayList<java.lang.String> dimensions, String pageToken){
DateRange dateRange = new DateRange();
dateRange.setStartDate(startDate);
dateRange.setEndDate(endDate);
//Create the Metric object ArrayList
int metricsSize=metrics.size();
Metric[] metricsArray = new Metric[metricsSize];
for(int i=0;i<metricsSize;i++){
Metric metric = new Metric()
.setExpression("ga:"+metrics.get(i))
.setAlias(metrics.get(i));
metricsArray[i]=metric;
}
int dimensionsSize=dimensions.size();
Dimension[] dimensionsArray = new Dimension[dimensionsSize];
for(int i=0;i<dimensionsSize;i++){
Dimension dimension = new Dimension()
.setName("ga:"+dimensions.get(i));
dimensionsArray[i]=dimension;
}
ReportRequest request = new ReportRequest()
.setViewId(VIEW_ID)
.setDateRanges(Arrays.asList(dateRange))
.setDimensions(Arrays.asList(dimensionsArray))
.setMetrics(Arrays.asList(metricsArray))
.setPageToken(pageToken)
.setPageSize(10000);
return request;
}
, 나는 "세션"과 "반송"통계를 추출하기 위해 노력하고있어. 이 문제를 해결하기 위해 노력하는 동안 metricHeaders.size()는 2 (내 측정 항목만큼)이지만 row.getMetrics()는 하나 ("세션"측정 항목) 만 반환한다는 것을 알게되었습니다. 아래는 내가 의미하는 바입니다. 나는 의도적으로 문제를 보여 다음과 같은 문제가 인쇄 기능 생성 : metricHeaders.size()가 2 만 메트릭은 하나의 메트릭은 "세션"통계와 목록이기 때문에
private static void printResponse(GetReportsResponse response) {
for (Report report: response.getReports()) {
ColumnHeader header = report.getColumnHeader();
List<String> dimensionHeaders = header.getDimensions();
List<MetricHeaderEntry> metricHeaders = header.getMetricHeader().getMetricHeaderEntries();
List<ReportRow> rows = report.getData().getRows();
if (rows == null) {
System.out.println("No data found for " + VIEW_ID);
return;
}
for (ReportRow row: rows) {
List<String> dimensions = row.getDimensions();
List<DateRangeValues> metrics = row.getMetrics();
System.out.println("Metrics size:"+metrics.size());
for (int i = 0; i < dimensionHeaders.size() && i < dimensions.size(); i++) {
System.out.println(dimensionHeaders.get(i) + ": " + dimensions.get(i));
}
for(int l = 0;l<metricHeaders.size();l++)
{
System.out.println(metricHeaders.get(l).getName());
DateRangeValues values = metrics.get(l);
}
}
}
}
위의 기능은 분쇄를! 그것이 내가 얻는 이유입니다.
java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
왜 이런 일이 발생합니까? 도와주세요!!
덕분에 많은 Stergios을! 실제로 그것은 Google의 코드 문제였습니다. 또한 HelloAnalytics.java 예제에서 더 많은 구문 문제가 있습니다. 예를 들어 가져온 모든 자바 라이브러리는 "com.google.api.services.analyticsreporting.v4"입니다. "com.google.analyticsreporting.v4"가 아닙니다. ! –