API Google Analytics Report v4: получить данные о сессиях и доходах

Я пытаюсь получить данные по сессиям, доходам, транзакциям, показателям отказов из API Google Analytics Report v4 с группировкой по Chanel:

  • Органический поиск
  • Эл. адрес
  • непосредственный
  • Фирменный платный поиск
  • Социальное
  • Направления
  • .. так далее

Прямо сейчас я программирую модуль Java с тестовым запросом, который установил следующие параметры:

Размеры:

га: acquisitionTrafficChannel;

Метрики:

GA: сеансы

GA:percentNewSessions

GA:newUsers

Когда я использую ga:acquisitionTrafficChannel + ga:sessions GA Report API возвращает значения, но когда я пытаюсь добавить в запрос ga: процент NewSessions, ga:newUsers, он возвращает ошибку:

{
  "domain": "global",
  "message": "Selected dimensions and metrics cannot be queried together.",
  "reason": "badRequest"
}

Для выполнения запроса в коде я делаю следующее:

DateRange dateRange = new DateRange();
            dateRange.setStartDate("2015-06-15");
            dateRange.setEndDate("2015-06-30");
            ReportRequest request = new ReportRequest()
                    .setViewId(context.getProperty(VIEW_ID).evaluateAttributeExpressions().getValue())
                    .setDateRanges(Arrays.asList(dateRange))
                    .setDimensions(Arrays.asList(
                            new Dimension().setName("ga:acquisitionTrafficChannel")
                    ))
                    .setMetrics(Arrays.asList(
                            new Metric().setExpression("ga:sessions"),
                            new Metric().setExpression("ga:percentNewSessions"),
                            new Metric().setExpression("ga:newUsers")
                    ));

            ArrayList<ReportRequest> requests = new ArrayList<>();
            requests.add(request);
            GetReportsRequest getReport = new GetReportsRequest().setReportRequests(requests);
            GetReportsResponse response = service.reports().batchGet(getReport).execute();

Как правильно сделать запрос? В правильном направлении мне идти?

Потому что, как я уже сказал, мне нужно будет сделать то же самое с доходом, показателем отказов... но я не совсем понимаю, как объединить метрики и измерения без ошибок.

Спасибо за любую помощь

1 ответ

О моем вопросе:

В качестве решения для моих нужд я использовал следующую комбинацию в коде:

Чтобы получить все группы каналов ("Обычный поиск, электронная почта, прямой и т. Д."), Я использовал следующее измерение:ga:channelGrouping - он вернет все

Чтобы получить значения для сессий, доходов, транзакций, показателя отказов и т. Д., Я использовал следующие метрики:

ga:sessions
ga:transactionRevenue
ga:transactions
ga:bounceRate

Также здесь может быть больше метрик, если это необходимо.

Может быть, это кому-нибудь пригодится.

Собственно, вопрос об ошибке с рассматриваемой комбинацией (с ga:acquisitionTrafficChannel) еще открыт:)