【问题标题】:get clientId through Google analytics reporting API通过 Google 分析报告 API 获取 clientId
【发布时间】:2019-10-02 04:23:14
【问题描述】:

我注意到,在Dimensions & Metrics Explorer 中,谷歌分析本身分配的用于唯一标识设备的 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();

【问题讨论】:

  • 请编辑您的问题并包含您的代码。
  • @DaImTo:附上示例代码

标签: java google-api google-analytics-api google-api-java-client


【解决方案1】:

clientId 现在可以通过 API 获取为 ga:clientId

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

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

【讨论】:

【解决方案2】:

假设您指的是 cid 传递给 Google 分析数据。答案是你不能。这不是 google analytics api 返回的dimension,此维度仅用于内部处理。

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

【讨论】:

  • @DalmTo 谢谢。想法相同(Y)。
  • 不好意思在这里问...我可以查询和过滤我在事件跟踪中设置的自定义变量吗?
猜你喜欢
  • 1970-01-01
  • 2020-03-19
  • 1970-01-01
  • 2018-03-04
  • 2022-12-30
  • 2017-04-27
  • 1970-01-01
  • 1970-01-01
  • 2019-09-09
相关资源
最近更新 更多