API Google Analytics предоставляет доступ к данным отчета Google Analytics (GA), таким как просмотры страниц, сеансы, источник трафика и показатель отказов.

официальная документация Google объясняет, что его можно использовать для:

  • Создавайте собственные информационные панели для отображения данных GA.
  • Автоматизируйте сложные отчетные задачи.
  • Интеграция с другими приложениями.

Вы можете получить доступ к ответу API, используя несколько различных методов, включая Java, PHP и JavaScript, но эта статья, в частности, будет посвящена доступу и экспорту данных с помощью Python.

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

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

Настройка API

Создание учетной записи службы Google

Первый шаг — создать проект или выбрать его в своем Сервисный аккаунт Google.

После того, как это будет создано, следующим шагом будет выбор + Создать учетную запись службы кнопка.

Скриншот из Google Cloud, декабрь 2022 г.

Затем вам будет предложено добавить некоторые детали, такие как имя, идентификатор и описание.

Сведения об учетной записи службыСкриншот из Google Cloud, декабрь 2022 г.

После создания учетной записи службы перейдите к КЛЮЧИ раздел и добавить новый ключ.

Ключ сервисной учетной записиСкриншот из Google Cloud, декабрь 2022 г.

Это предложит вам создать и загрузить закрытый ключ. В этом случае выберите JSON, а затем создайте и дождитесь загрузки файла.

Ключ учетных данных JSONСкриншот из Google Cloud, декабрь 2022 г.

Добавить в аккаунт Google Analytics

Вы также захотите сделать копию электронного письма, созданного для учетной записи службы — ее можно найти на главной странице учетной записи.

Электронная почта аккаунта GoogleСкриншот из Google Cloud, декабрь 2022 г.

Следующим шагом является добавление этого адреса электронной почты в качестве пользователя в Google Analytics с разрешениями Analyst.

Электронная почта в Google AnalyticsСкриншот из Google Analytics, декабрь 2022 г.

Включение API

Последний и, пожалуй, самый важный шаг — убедиться, что вы включили доступ к API. Для этого убедитесь, что вы находитесь в правильном проекте, и следуйте эта ссылка для включения доступа.

Затем выполните шаги, чтобы включить его при повышении.

Включение APIСкриншот из Google Cloud, декабрь 2022 г.

Это необходимо для доступа к API. Если вы пропустите этот шаг, вам будет предложено выполнить его при первом запуске скрипта.

Доступ к Google Analytics API с помощью Python

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

Я выбрал Ноутбуки Юпитера для его создания, но вы также можете использовать другие интегрированные среды разработки (IDE), в том числе PyCharm или же VSCode.

ЧИТАТЬ  Байден одобрил решение судьбы TikTok по мере приближения запрета США

Установка библиотек

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

Некоторые из них уникальны для API аналитики, а другие полезны для будущих разделов кода.

!pip install --upgrade google-api-python-client
!pip3 install --upgrade oauth2client
from apiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials
!pip install connect
!pip install functions
import connect

Примечание. При использовании pip в блокноте Jupyter добавьте ! – при работе в командной строке или другой среде IDE ! не нужен.

Создание сборки службы

Следующим шагом является настройка нашей области действия, которая представляет собой ссылку для аутентификации API аналитики только для чтения.

Затем следует загрузка секретов клиента в формате JSON, созданная при создании закрытого ключа. Он используется аналогично ключу API.

Чтобы легко получить доступ к этому файлу в коде, убедитесь, что вы сохранили файл JSON в той же папке, что и файл кода. Затем это можно легко вызвать с помощью функции KEY_FILE_LOCATION.

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

Идентификатор представления Google AnalyticsСкриншот от автора, декабрь 2022 г.

В целом это будет выглядеть следующим образом. Мы будем ссылаться на эти функции в нашем коде.

ОБЛАСТИ = ['
KEY_FILE_LOCATION = 'client_secrets.json'
VIEW_ID = 'XXXXX'

Once we have added our private key file, we can add this to the credentials function by calling the file and setting it up through the ServiceAccountCredentials step.

Then, set up the build report, calling the analytics reporting API V4, and our already defined credentials from above.

credentials = ServiceAccountCredentials.from_json_keyfile_name(KEY_FILE_LOCATION, SCOPES)
service = build('analyticsreporting', 'v4', credentials=credentials)

Writing The Request Body

Once we have everything set up and defined, the real fun begins.

From the API service build, there is the ability to select the elements from the response that we want to access. This is called a ReportRequest object and requires the following as a minimum:

  • A valid view ID for the viewId field.
  • At least one valid entry in the dateRanges field.
  • At least one valid entry in the metrics field.

View ID

As mentioned, there are a few things that are needed during this build stage, starting with our viewId. As we have already defined previously, we just need to call that function name (VIEW_ID) rather than adding the whole view ID again.

If you wanted to collect data from a different analytics view in the future, you would just need to change the ID in the initial code block rather than both.

Date Range

Then we can add the date range for the dates that we want to collect the data for. This consists of a start date and an end date.

There are a couple of ways to write this within the build request.

ЧИТАТЬ  Корпоративное SEO: 7 вариантов использования для повышения уровня оптимизации веб-сайта с помощью веб-аналитики

You can select defined dates, for example, between two dates, by adding the date in a year-month-date format, ‘startDate’: ‘2022-10-27’, ‘endDate’: ‘2022-11-27’.

Or, if you want to view data from the last 30 days, you can set the start date as ‘30daysAgo’ and the end date as ‘today.’

Metrics And Dimensions

The final step of the basic response call is setting the metrics and dimensions. Metrics are the quantitative measurements from Google Analytics, such as session count, session duration, and bounce rate.

Dimensions are the characteristics of users, their sessions, and their actions. For example, page path, traffic source, and keywords used.

There are a lot of different metrics and dimensions that can be accessed. I won’t go through all of them in this article, but they can all be found together with additional information and attributes here.

Anything you can access in Google Analytics you can access in the API. This includes goal conversions, starts and values, the browser device used to access the website, landing page, second-page path tracking, and internal search, site speed, and audience metrics.

Both the metrics and dimensions are added in a dictionary format, using key:value pairs. For metrics, the key will be ‘expression’ followed by the colon (:) and then the value of our metric, which will have a specific format.

For example, if we wanted to get a count of all sessions, we would add ‘expression’: ‘ga:sessions’. Or ‘expression’: ‘ga:newUsers’ if we wanted to see a count of all new users.

With dimensions, the key will be ‘name’ followed by the colon again and the value of the dimension. For example, if we wanted to extract the different page paths, it would be ‘name’: ‘ga:pagePath’.

Or ‘name’: ‘ga:medium’ to see the different traffic source referrals to the site.

Combining Dimensions And Metrics

The real value is in combining metrics and dimensions to extract the key insights we are most interested in.

For example, to see a count of all sessions that have been created from different traffic sources, we can set our metric to be ga:sessions and our dimension to be ga:medium.

response = service.reports().batchGet(
    body={
        'reportRequests': [
        {
          'viewId': VIEW_ID,
          'dateRanges': [{'startDate': '30daysAgo', 'endDate': 'today'}]«метрики»: [{'expression': 'ga:sessions'}]'размеры': [{'name': 'ga:medium'}]}]}  ).выполнять()

Создание кадра данных

Ответ, который мы получаем от API, имеет форму словаря со всеми данными в виде пар ключ:значение. Чтобы упростить просмотр и анализ данных, мы можем превратить их в фрейм данных Pandas.

Чтобы превратить наш ответ в фрейм данных, нам сначала нужно создать несколько пустых списков для хранения показателей и измерений.

Затем, вызвав вывод ответа, мы добавим данные из измерений в пустой список измерений и количество метрик в список метрик.

ЧИТАТЬ  Пара осуждена за изощренное мошенничество с iPhone на сумму 3 миллиона долларов | Цифровые тенденции

Это извлечет данные и добавит их в наши ранее пустые списки.

dim = []
metric = []

for report in response.get('reports', []):

columnHeader = report.get('columnHeader', {})
dimensionHeaders = columnHeader.get('dimensions', [])
metricHeaders = columnHeader.get('metricHeader', {}).get('metricHeaderEntries', [])
rows = report.get('data', {}).get('rows', [])

for row in rows:

dimensions = row.get('dimensions', [])
dateRangeValues = row.get('metrics', [])

for header, dimension in zip(dimensionHeaders, dimensions):
dim.append(dimension)

for i, values in enumerate(dateRangeValues):
for metricHeader, value in zip(metricHeaders, values.get('values')):
metric.append(int(value))

Добавление данных ответа

Когда данные находятся в этих списках, мы можем легко превратить их в фрейм данных, определив имена столбцов в квадратных скобках и назначив значения списка каждому столбцу.

df = pd.DataFrame()
df["Sessions"]= metric
df["Medium"]= dim
df= df[["Medium","Sessions"]]
df.head()

Пример фрейма данных 

Дополнительные примеры запросов ответа

Несколько показателей

Существует также возможность комбинировать несколько метрик, при этом каждая пара добавляется в фигурные скобки и отделяется запятой.

'metrics': [
              {"expression": "ga:pageviews"},
              {"expression": "ga:sessions"}
          ]

Фильтрация

Вы также можете запросить, чтобы ответ API возвращал только метрики, которые возвращают определенные критерии, добавив фильтры метрик. Он использует следующий формат:

if {metricName} {operator} {comparisonValue}
   return the metric

Например, если вы хотите извлечь только просмотры страниц с более чем десятью просмотрами.

response = service.reports().batchGet(
    body={
        'reportRequests': [
        {
          'viewId': VIEW_ID,
          'dateRanges': [{'startDate': '30daysAgo', 'endDate': 'today'}],
          'metrics': [{'expression': 'ga:pageviews'}],
          'dimensions': [{'name': 'ga:pagePath'}],

"metricFilterClauses": [{
"filters": [{
"metricName": "ga:pageviews",
"operator": "GREATER_THAN",
"comparisonValue": "10"
}]
}]
}]
}
).execute()

Аналогичным образом фильтры работают и с размерами, но выражения фильтра будут немного отличаться из-за характерного характера размеров.

Например, если вы хотите получать просмотры страниц только от пользователей, посетивших сайт с помощью браузера Chrome, вы можете установить оператор EXTRACT и использовать «Chrome» в качестве выражения.

response = service.reports().batchGet(
    body={
        'reportRequests': [
        {
          'viewId': VIEW_ID,
          'dateRanges': [{'startDate': '30daysAgo', 'endDate': 'today'}],
          'metrics': [{'expression': 'ga:pageviews'}],
          "dimensions": [{"name": "ga:browser"}],
          "dimensionFilterClauses": [
        {
          "filters": [
            {
              "dimensionName": "ga:browser",
              "operator": "EXACT",
              "expressions": ["Chrome"]
            }
          ]
        }
      ]
    }
  ]
}
).execute()

Выражения

Поскольку метрики являются количественными мерами, существует также возможность писать выражения, которые работают аналогично вычисляемым метрикам.

Это включает в себя определение псевдонима для представления выражения и выполнение математической функции по двум метрикам.

Например, вы можете рассчитать количество завершений на пользователя, разделив количество завершений на количество пользователей.

response = service.reports().batchGet(
    body={
        'reportRequests': [
        {
          'viewId': VIEW_ID,
          'dateRanges': [{'startDate': '30daysAgo', 'endDate': 'today'}],
          "metrics":
      [
        {
          "expression": "ga:goal1completions/ga:users",
          "alias": "completions per user"
        }
      ]
    }
  ]
}
).execute()

Гистограммы

API также позволяет группировать измерения с целочисленным (числовым) значением в диапазоны с помощью сегментов гистограммы.

Например, разбив измерение количества сеансов на четыре сегмента: 1–9, 10–99, 100–199 и 200–399, вы можете использовать тип ордера HISTOGRAM_BUCKET и определить диапазоны в histogramBuckets.

response = service.reports().batchGet(
    body={
        'reportRequests': [
        {
          'viewId': VIEW_ID,
          'dateRanges': [{'startDate': '30daysAgo', 'endDate': 'today'}],
          "metrics": [{"expression": "ga:sessions"}],
          "dimensions": [
        {
              "name": "ga:sessionCount",
              "histogramBuckets": ["1","10","100","200","400"]
        }
      ],
         "orderBys": [
        {
              "fieldName": "ga:sessionCount",
              "orderType": "HISTOGRAM_BUCKET"
        }
      ]
    }
  ]
}
).execute()
Пример гистограммы Скриншот от автора, декабрь 2022 г.

В заключении

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

Я добавил код сборки и запроса, а также фрагменты, которыми поделился этот файл GitHub.

Я буду рад услышать, если вы попробуете что-либо из этого, и ваши планы по дальнейшему изучению данных.

Дополнительные ресурсы:


Рекомендуемое изображение: BestForBest/Shutterstock





Source link