можно ли запросить clientId из API отчетов Google Analytics v4, если вчера был диапазон дат? - PullRequest
2 голосов
/ 24 марта 2020

Когда я запрашиваю данные из API отчетов Google Analytics, где запрос содержит

1) измерение ga:clientId

2) вчерашнюю дату в диапазоне дат

Я обнаружил, что ответ возвращает 10 001 строк данных последовательно, независимо от того, какой диапазон дат. Ниже приведен пример запроса, который должен воссоздать результаты. Я пробовал это для четырех разных аккаунтов Google и нескольких просмотров в этих аккаунтах, и у меня такое же поведение. Является ли это ожидаемым поведением?

Несколько дополнительных подробностей по этому вопросу:

1) Я публикую это сообщение в 2020-03-24, и поэтому endDate в приведенном ниже запросе вчера (2020) -03-23). ​​

2) Для возникновения этой проблемы необходимо вернуть более 10000 строк из API. Если для рассматриваемого представления существует менее 10 000 строк, API возвращает все данные, как и ожидалось.

3) Это проблема только в том случае, если запрос выполняется примерно до 15:00 в указанную дату, 2020-03- 24 в моем случае, если он запускается примерно после 15:00, создается впечатление, что вчерашний день достаточно исторический, чтобы API работал так, как ожидалось.

request = {
    'view_id': '123456789', 
    'dateRanges': [{'startDate': '2020-03-20', 'endDate': '2020-03-23'}], 
    'metrics': [
        {'expression': 'ga:users'}, 
        {'expression': 'ga:visitors'}, 
        {'expression': 'ga:newVisits'}, 
        {'expression': 'ga:sessions'}], 
    'dimensions': [
        {'name': 'ga:campaign'}, 
        {'name': 'ga:channelGrouping'}, 
        {'name': 'ga:sourceMedium'}, 
        {'name': 'ga:dateHourMinute'}, 
        {'name': 'ga:country'}, 
        {'name': 'ga:adGroup'}, 
        {'name': 'ga:clientId'}], 
    'segments': [], 
    'samplingLevel': 'LARGE', 
    'pageSize': 100000
}

Этот запрос называется так:

self.batch_get_api(body={"reportRequests": [request]}).execute()

где batch_get_api - вызываемый объект:

self.reporting.reports().batchGet

self.reporting определяется как:

self.reporting = self._build_resource("analyticsreporting", "v4", credentials)
def _build_resource(service_name: str, version: str, credentials: Credentials):
    return build(
        service_name,
        version,
        http=google_auth_httplib2.AuthorizedHttp(
            credentials,
            http=Http(timeout=REQUEST_TIMEOUT.total_seconds())),
            cache_discovery=False,
        )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...