繁体   English   中英

通过Google Analytics(分析)报告API获取clientId

[英]get clientId through Google analytics reporting API

我注意到,在Dimensions&Metrics Explorer中 ,由Google Analytics(分析)本身分配以唯一标识设备的clientId无法通过任何报告API进行查询。 有人知道我可能会错过的任何其他可能的方式来将clientId放入响应主体吗?

这是我的示例代码

DateRange dateRange = new DateRange();
dateRange.setStartDate("2019-04-20");
 dateRange.setEndDate("yesterday");

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

 Dimension userId = new Dimension().setName("ga:dimension1");
 Dimension source = new Dimension().setName("ga:source");
 Dimension medium = new Dimension().setName("ga:medium");
 Dimension campaign = new Dimension().setName("ga:campaign");
 Dimension experimentId = new Dimension().setName("ga:experimentId");

 List<String> filterExpressionList = new ArrayList<>();

 filterExpressionList.add("426"); 
 filterExpressionList.add("359"); 
 filterExpressionList.add("13694118"); 
 filterExpressionList.add("28"); 


 DimensionFilter userIdFilter = new DimensionFilter();
 userIdFilter.setDimensionName("ga:dimension1").setExpressions(filterExpressionList).setCaseSensitive(false).setNot(false).setOperator("IN_LIST");

 List<DimensionFilter> dimensionFilterList = new ArrayList<>();
 dimensionFilterList.add(userIdFilter);

 DimensionFilterClause dimensionFilterClause = new DimensionFilterClause();
 dimensionFilterClause.setFilters(dimensionFilterList);

 List<DimensionFilterClause> dimensionFilterClauses = new ArrayList<>();
 dimensionFilterClauses.add(dimensionFilterClause);
 // Create the ReportRequest object.
 ReportRequest request = new ReportRequest()
         .setViewId(VIEW_ID)
         .setDateRanges(Arrays.asList(dateRange))
         .setMetrics(Arrays.asList(sessions))
         .setDimensions(Arrays.asList(userId,source,medium,campaign,experimentId)).setDimensionFilterClauses(dimensionFilterClauses);

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

 // Create the GetReportsRequest object.
 GetReportsRequest getReport = new GetReportsRequest()
         .setReportRequests(requests);

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

假设您是指传递给Google analycs数据的cid 答案是你不能。 这不是Google Analytics(分析)API返回的维度 ,该维度仅用于内部处理。

最好的选择是将其添加为自定义维度,并随您的每个请求发送。

现在,可以通过API使用ga:clientId来获取clientId

无需再在自定义维度中设置clientId(或userId)。

给使用Universal Analytics用户ID功能的任何人的提示ga:clientId中返回的值实际上是userId,甚至更有趣。 (截至撰写本文时)如果您从用户ID视图请求clientId,则GA失败。 因此,您应该使用非用户ID视图来获取用户ID。 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM