Я заметил, что в Анализ параметров и показателейID клиента, назначенный самой аналитикой Google для уникальной идентификации устройства, недоступен для запроса через любой из API-интерфейсов отчетов. Кто-нибудь знает какой-либо другой возможный способ, который я мог пропустить, чтобы получить ID клиента в теле ответа?
вот мой пример кода
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: прикрепил пример кода




Предполагая, что вы имеете в виду Сид, переданный в данные Google Analytics. Ответ: вы не можете. Это не измерение, возвращаемый API Google Analytics, этот параметр используется только для внутренней обработки.
Лучшим вариантом будет добавить его в качестве пользовательского параметра и отправлять его с каждым вашим запросом.
@DalmTo Спасибо. думал о том же (Y).
извините, что спрашиваю здесь... Могу ли я запросить и отфильтровать пользовательские переменные, которые я установил в отслеживании событий?
clientId теперь доступен через API как ga:clientId
Больше не нужно устанавливать clientId (или userId) в пользовательском параметре.
Примечание для всех, кто использует функцию идентификатора пользователя Universal Analytics. Значения, возвращаемые в ga:clientId, на самом деле являются идентификатором пользователя. Еще более интересно. (На момент написания) GA не работает, если вы запрашиваете clientId из представления User ID. Таким образом, вы должны использовать представление без идентификатора пользователя, чтобы получить идентификатор пользователя. :)
Спасибо за ответ @Michael Frost Billing. Но интересно, почему он не указан здесь, в обозревателе параметров и показателей : Developers.google.com/analytics/devguides/reporting/core/…
Пожалуйста, отредактируйте свой вопрос и включите свой код.