Проблема с ограничением извлечения диапазона данных в API Google Analytics

#java #google-api #google-analytics-api #google-api-java-client #quota

#java #google-api #google-analytics-api #google-api-java-client #квота

Вопрос:

Я пытаюсь извлечь некоторые данные измерений и метрик из API Google Analytics, используя клиентскую библиотеку Java.

Для определенного ViewID я вижу, что я не могу извлечь данные более чем за 14 месяцев и 2 дня, начиная с сегодняшнего дня. Я столкнулся с этой проблемой только с клиентской библиотекой Java и API и для некоторых конкретных представлений. В интерфейсе Google я могу видеть все отчеты без ограничений по 14 месяцам.

Этот Java-код :

 DateRange dateRange = new DateRange().setStartDate(startDate).setEndDate(endDate);

    DimensionFilter dimensionFilter = new DimensionFilter();
    dimensionFilter.setDimensionName("ga:medium");
    dimensionFilter.setOperator("EXACT");
    dimensionFilter.setExpressions(Collections.singletonList("organic"));
    DimensionFilterClause dimensionFilterClause = new DimensionFilterClause();
    dimensionFilterClause.setFilters(Collections.singletonList(dimensionFilter));

    MetricFilter metricFilter = new MetricFilter();
    metricFilter.setMetricName("ga:sessions");
    metricFilter.setNot(true);
    metricFilter.setComparisonValue("0");
    MetricFilterClause metricFilterClause = new MetricFilterClause();
    metricFilterClause.setFilters(Collections.singletonList(metricFilter));

    ReportRequest reportRequest = new ReportRequest()
            .setViewId(viewID)
            .setDateRanges(Collections.singletonList(dateRange))
            .setSamplingLevel(samplinglevel.name())
            .setPageSize(100000)
            .setDimensionFilterClauses(Collections.singletonList(dimensionFilterClause))
            .setMetricFilterClauses(Collections.singletonList(metricFilterClause))
            .setDimensions(dimensionList)
            .setMetrics(metricList)
            .setIncludeEmptyRows(false);
  

Я могу нормально извлекать все остальные представления без ограничения, но для конкретного клиента a обнаружил эту проблему.

Есть ли у вас какие-либо представления об этой проблеме с ограничениями?

Я не могу найти никакой информации об этих ограничениях в Java.

Комментарии:

1. Какое сообщение об ошибке вы получаете?

2. @DaImTo ошибки нет.. Я нашел 0 строк

3. Если вы не получаете ошибку, значит, для этого запроса нет данных. Возможно, это представление не было создано в то время или запрашиваемые вами данные не существуют.

4. @DaImTo но я получаю данные, когда меняю диапазон данных на что-то за последние 14 месяцев

5. тогда рассматриваемое представление было активным только в течение последних 14 месяцев

Ответ №1:

Проблема с квотой

для API Google Analytics существует ряд квот. Ограничения и квоты

Общие ограничения квот

  • 50 000 запросов на проект в день, которые могут быть увеличены.
  • 10 запросов в секунду (QPS) на IP-адрес. В консоли API существует аналогичная квота, называемая запросами на 100 секунд для каждого пользователя. По умолчанию для каждого пользователя установлено значение 100 запросов в 100 секунд, и его можно настроить на максимальное значение 1000. Но количество запросов к API ограничено максимум 10 запросами в секунду на пользователя.
  • Если ваше приложение выполняет все запросы API с одного IP-адреса (т. Е. от имени ваших пользователей), используйте параметр userIp или quotaUser с каждым запросом, чтобы получить полную квоту QPS для каждого пользователя. Подробности см. в сводке стандартных параметров запроса.

API отчетов

Следующие квоты применяются ко всем API отчетов, включая Core Reporting API v3, Analytics Reporting API v4, Real Time API v3 и Multi-channel Funnel API v3:

  • 10 000 запросов на просмотр (профиль) в день (не может быть увеличено)
  • 10 одновременных запросов на просмотр (профиль) (не может быть увеличено)

Мне сложно определить, какую квоту вы используете, поскольку вы не опубликовали сообщение. Однако, если вы говорите, что это единственное представление, тогда я бы предположил, что это 10000 запросов на квоту данных и что в этом представлении должно быть больше данных, чем в других ваших представлениях. Вы ничего не можете сделать, чтобы расширить эту квоту. Вы можете настроить свои запросы только таким образом, чтобы делать меньше запросов.

Примечание: google не использует тот же идентификатор клиента, что и вы, поэтому они не связаны ограничениями, что и ваш клиент. Если ваш клиент исчерпал квоту, то он не будет работать. Это не повлияет на веб-сайт Google Analytics.

НЕТ ДАННЫХ

Если запрос возвращает нулевые строки, то это не проблема с квотой, просто нет данных для запрашиваемых вами дат и метаданных.

Я подозреваю, что проблема со всеми этими фильтрами, которые вы используете.

Запустите запрос, используя только измерение ga: date и показатель ga: sessions. Не добавляйте свои фильтры. Запустите его для 2010-01-01 — 2019-01-01 это должно помочь вам выяснить, с чего началась запись данных или возникла проблема со всеми добавленными вами фильтрами.