Google Analytics API 4: доступ к данным о каналах приобретения на Python

Я пытаюсь написать скрипт python для извлечения аналитических данных из API Google Analytics. Мне нужно знать, какие параметры и/или показатели я должен использовать для доступа к «новым пользователям» для различных типов привлечения пользователей. Здесь я перечислил два типа методов сбора данных, которые мне нужно использовать на основе веб-интерфейса Google Analytics:

Acquisition > All Traffic > Channels > Referral > (my specific referral site) > "New Users"

и

Acquisition > All Traffic > Channels > Social > Facebook > "New Users"

Ссылки и фрагменты кода были бы очень полезны. Спасибо!

Я ссылался на документацию Google Analytics здесь.

Я не могу найти сведения об уровне, необходимые для перехода к конкретным данным, которые мне нужны. Я ожидаю, что выходные данные будут представлять собой отдельные целые числа, совпадающие с числами приобретения в веб-интерфейсе Google Analytics за тот же период времени.

Вот блок кода примера запроса, который я пытался сделать:

sample_request = {
  'viewId': 'XXXXXXX', 
  'dimensions': [{"name": "ga:cohort"}],
  'metrics': [{'expression': 'ga:acquisitionTrafficChannel/ga:newUsers'}],
   "cohortGroup": {
    "cohorts": [{
        "name": "cohort_1",
        "type": "FIRST_VISIT_DATE",
        "dateRange": {'startDate': datetime.strftime(datetime.now() - timedelta(days = 30),'%Y-%m-%d'),
            'endDate': datetime.strftime(datetime.now(),'%Y-%m-%d')}
        }
   ]}
}

Ошибка:

Traceback (most recent call last):
  File "autogoogle2.py", line 90, in <module>
    'reportRequests': sample_request
  File "C:\Users\jatra\Anaconda3\lib\site-packages\googleapiclient\_helpers.py", line 130, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "C:\Users\jatra\Anaconda3\lib\site-packages\googleapiclient\http.py", line 851, in execute
    raise HttpError(resp, content, uri=self.uri)
googleapiclient.errors.HttpError: <HttpError 400 when requesting https://analyticsreporting.googleapis.com/v4/reports:batchGet?alt=json returned "Selected dimensions and metrics cannot be queried together.">

person John    schedule 28.06.2019    source источник


Ответы (1)


У меня была частично такая же проблема. Я хотел получить каналы, откуда приходят посетители.

"Когортный" материал еще не работал для меня. Я включил параметр "ga:ChannelGrouping", который возвращает группировку каналов по умолчанию.

Однако см. мое решение ниже, которое помогло мне получить метрики вместе с каналами.

def get_report(service):
return service.reports().batchGet(
    body={
        'reportRequests': [
        {
            'viewId': 'XXXXX',
            'dateRanges': [{'startDate': '2018-08-01', 'endDate': 'today'}],
            'metrics': [{'expression': 'ga:NewUsers'}],
            'dimensions': [{'name': 'ga:Date'}, {'name': 'ga:ChannelGrouping'}],
            'pageToken': '1', #= start_index in v3
            'pageSize': '1000' #= max_results in v3
        }]
    }
).execute()
person Json    schedule 23.08.2019