Исследование воронки Google Analytics 4 с помощью Python

13 декабря, 2024

В предыдущем материале мы с вами познакомились с методикой Исследование воронки (Funnel Exploration) в Google Analytics 4. Сегодня рассмотрим способ построения собственных воронок с помощью Data API и Python.

Начало

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

Исследование воронки в Google Analytics 4

Например, так может выглядеть воронка по шагам электронной торговли:

Пример шагов электронной торговли

А вот так пользовательская воронка по скачиванию моей электронной книги Google Tag Manager с разбивкой по типу устройств:

Пример пользовательской воронки

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

Например, если при анализе поведения покупателей выяснится, что они выходят со страницы карточки товара, не добавляя его в корзину, то вероятнее всего:

  • посетители искали другой товар;
  • они одновременно сравнивали несколько сайтов и нашли лучшее предложение у конкурентов;
  • произошел сбой на странице и человек просто не смог этого сделать.

Если посетители покидают сайт после добавления в корзину, то это может означать, что:

  • они нашли более выгодное предложение;
  • они не смогли завершить оформление заказа по какой-либо причине, не относящейся к нам (отключили интернет, кто-то отвлек, просто перехотели);
  • произошел сбой на этой странице и человек не смог завершить покупку.

Если клиенты покидают сайт уже на этапе оплаты, то в 90% случаев это связано:

  • со слишком сложной процедурой;
  • с тем, что нет подходящего способа (например, только онлайн-оплата или только наличными курьеру);
  • высокой стоимостью доставки.

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

Для большинства базовых и простых задач анализа интернет-маркетологу вполне достаточно построения Исследования воронки в интерфейсе Google Analytics 4. Извлечение данных через API Google Analytics 4 подходит тем, кто хочет получить больше гибкости в своих действиях, например, определять сложные конфигурации воронки, применять пользовательские фильтры и интегрировать данные из других источников. Скрипты Python могут автоматизировать извлечение, обработку и анализ данных воронки, позволяя планировать или составлять отчеты в режиме реального времени без ручного вмешательства. Выбор между этими двумя подходами зависит от таких факторов, как требуемый уровень настройки, необходимость автоматизации и доступная техническая экспертиза.

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

Поскольку построение воронок в интерфейсе Google Analytics 4 подробно разобрано в другом моем материале, давайте рассмотрим, как проводить исследование воронки программно с помощью Python. Для этого необходимо выполнить несколько несложных шагов:

  • создать проект в Colab;
  • создать проект в Google Cloud;
  • включить API Google Analytics;
  • создать учетную запись службы, получить ключ JSON;
  • добавление сервисного аккаунта в ресурс Google Analytics 4;
  • загрузить приватный ключ в Google Диск и подключить его к программе;
  • установить нужные библиотеки Python;
  • написать программу для воронок GA4.

В конце руководства будет приложена ссылка на мою программу.

Давайте приступим!

Создание проекта в Colab

Для работы с API Google Analytics 4 я предлагаю использовать Google Colab. Чтобы создать свой первый проект в нем, авторизуйтесь в своей учетной записи Gmail и перейдите по ссылке. Вам откроется приветственное окно и ваши проекты:

Первый экран в Colaboratory

Если вы никогда раньше не работали с Colaboratory, то никаких проектов, кроме демонстрационного, в списке вы не увидите. Для создания первого проекта нажмите на Создать блокнот:

Создание блокнота

В новом окне вы увидите только что созданный блокнот, в котором вы будете писать код программы на Python. При желании вы можете переименовать свой проект, задав ему понятное название, например - Исследование воронки GA4:

Название блокнота

На этом первый шаг завершен. Оставьте вкладку с вашим проектом Colab открытой и переходите к следующему этапу.

Создание проекта в Google Cloud

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

Включите API данных Google Analytics v1

Это действие автоматически создаст вам новый проект в Google Cloud Platform (GCP), а также активирует Google Analytics Data API v1 и создаст учетную запись службы, необходимую для дальнейшего создания запросов. Для работы с Data API платежный аккаунт в Google Cloud не требуется, поэтому вы можете использовать любую учетную запись Gmail.

Нажав на кнопку, введите имя проекта (Enter new project name). Например, FunnelGA4:

Название проекта

В завершение нажмите NEXT (Далее). Начнется автоматическое создание проекта. Через некоторое время Google выдаст вам уведомление об успешной настройке проекта и создании учетной записи службы:

Приватный ключ

Скачайте к себе на компьютер приватный ключ, нажав на кнопку DOWNLOAD PRIVATE KEY AS JSON. Его вы будете использовать для аутентификации своей учетной записи службы. Сохраните этот файл в надежном месте, так как любой, у кого есть этот ключ, может выступать в качестве сервисного аккаунта для доступа к вашим ресурсам Google Cloud Platform. В конце нажмите DONE.

Вы можете открыть сохраненный файл обычным блокнотом (формат .json), чтобы посмотреть, из чего он состоит:

Открытие файла в Notepad++

Этот файл вам в дальнейшем понадобится для проекта в Colab.

Включение API Google Analytics

Чтобы удостовериться в том, что Google сам автоматически создал нам новый проект и учетную запись службы (сервисный аккаунт) в GCP для работы с Data API, перейдите по ссылке console.cloud.google.com. Если в Google Cloud Platform у вас уже созданы и другие проекты, нажмите в верхней части панели на название:

Открытие списка проектов в Google Cloud

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

Созданный проект

Нажмите на него, чтобы открыть. Затем перейдите в APIs & Services:

APIs & Services

Удостоверьтесь, что в разделе Enabled APIs & services включен Google Analytics Data API:

Google Analytics Data API включен

Нажмите на название. Если Status – Enabled, то Google Analytics Data API включен:

Google Analytics Data API - Enabled

Сервисный аккаунт

Теперь перейдите в раздел Credentials, чтобы увидеть данные сервисного аккаунта, созданного автоматически:

Credentials - Service Accounts

Информация по сервисному аккаунту уже присутствует в выгруженном JSON файле с приватным ключом в строке client_email:

Данные о сервисном аккаунте есть в вашем приватном ключе

Добавление сервисного аккаунта в Google Analytics 4

Скопируйте адрес электронной почты сервисного аккаунта (или из сохраненного файла из поля client_email, или из интерфейса Google Cloud) и откройте свой ресурс Google Analytics 4, с которым планируете работать. Перейдите в раздел Администратор – Ресурс - Управление доступом к ресурсу:

Управление доступом к ресурсу

Добавьте нового пользователя:

Добавление нового пользователя

Для работы с Google Analytics Data API v1 необходимы только разрешения на чтение и анализ (он же Читатель). В поле адреса электронный почты добавьте скопированный на предыдущем шаге e-mail сервисного аккаунта:

Роль - Читатель

В правом верхнем углу нажмите кнопку Добавить. На этом добавление сервисного аккаунта в Google Analytics 4 завершено.

Загрузка приватного ключа на Google Диск

Когда вы начнете писать свой первый запрос к Data API, вам понадобятся данные от сервисного аккаунта Google. А для этого необходимо загрузить ваш приватный JSON ключ на Google Диск. Это нужно сделать для того, чтобы после перезапуска среды выполнения (завершения сеанса и закрытия вкладки браузера/проекта) Google не удалял ваш файл с приватным ключом из Colab, и вам не приходилось загружать его каждый раз повторно. Для этого мы подключаемся к Диску и загружаем в него этот файл, а потом в проекте прописываем путь к этому файлу.

Сделать это очень просто. Перейдите в Google Drive по ссылке и загрузите в него ваш приватный ключ:

Загрузка приватного ключа на Google Диск

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

Подготовка программы

Вернитесь на вкладку с вашим проектом в Colab и в первой строке введите команду установки клиентской библиотеки Google Analytics:

Нажмите иконку запуска (значок play), чтобы код в ячейке сработал. В Colab это будет выглядеть так:

Установка клиентской библиотеки Google Analytics для работы с Data API

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

Успешное выполнение ячейки с кодом

В конце ячейки вы можете увидеть строчки примерно такого содержания:

Произошла успешная установка пакета, но для использования новых версий вы должны перезапустить среду выполнения с помощью кнопки RESTART RUNTIME. Это делать необязательно, поскольку Google в Colab поддерживает актуальное состояние библиотек и их взаимную работу.

Чтобы продолжить писать программу, сверху вашего блокнота нажмите на + Код:

Добавление новой ячейки для кода

Под первой ячейкой у вас будет создана новая, пустая:

Новая ячейка в программе

Добавьте новую ячейку с кодом и вставьте в него следующий код:

Он подключает пакет для работы Colab с Google Диском. В Colab это будет выглядеть так:

Импорт пакета для работы с Google Drive

Вновь добавьте новую ячейку с кодом и вставьте в него следующий код:

Данная строка позволяет импортировать ваши файлы из Google Drive в проект Colab, чтобы потом к ним можно было обращаться в программе. А поскольку на предыдущем шаге вы загрузили свой приватный JSON ключ на Диск, который нам понадобится в составлении запроса к Data API (GA4), запустите ячейку. Вам откроется новое окно, в котором Google попросит вам подключиться к Диску. Сделайте это:

Подключение к Google Диску

Выбрав свою учетную запись Gmail, предоставьте приложению Google Drive все необходимые разрешения:

Разрешение доступов к приложению Google Drive

В завершение нажмите кнопку Разрешить. После этого код успешно будет выполнен, все всплывающие окна закроются, а в вашем проекте в Colab, если вы нажмете на иконку папки в левом углу страницы, отобразиться папка drive, в которой будут размещены все файлы с вашего Диска, в том числе и загруженный ранее приватный ключ:

Содержимое вашего Google Диска и загруженный приватный ключ

Найдите в списке ваш приватный ключ и нажмите на него правой кнопкой мыши. Выберите пункт Скопировать путь:

Копирование пути к приватному ключу

Как и прежде, создайте новую ячейку с кодом с помощью + Код. Добавьте в нее две строчки кода и запустите ячейку:

, где вместо путь_к_приватному_файлу.json вы укажете тот путь, который скопировали с предыдущего шага. Затем запустите ячейку с кодом.

В Colab это будет выглядеть так:

Путь к приватному ключу

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

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

Алгоритм, по которому проходит установка переменных окружения, напрямую зависит от платформы. Поэтому следует использовать встроенный модуль OS компании Python для считывания переменных. Функции этого модуля позволяют взаимодействовать с операционной системой вне зависимости от ее платформы.

Для доступа к таким переменным в Python используется объект os.environ - это словарь, в котором хранятся все переменные окружения программы, а GOOGLE_APPLICATION_CREDENTIALS - это переменная среды, которую нужно задать, чтобы указать расположение вашего приватного ключа JSON. Перед использованием словаря, конечно же, требуется импортировать сам пакет os с помощью команды import os.

Построение воронок

Теперь построим саму воронку. Для этого необходимо использовать метод runFunnelReport. В официальной документации на GitHub опубликованы примеры различных методов, в числе которых есть и Исследование воронки (run_funnel_report).

Примеры скриптов API Google Analytics 4

Фрагменты кодов в этих файлах можно взять за основу для построения своих собственных воронок. Их разновидностей великое множество, все зависит от отрасли и пользовательских путей на вашем сайте. На GitHub от Google в run_funnel_report.py размещена стандартная воронка, состоящая из нескольких шагов:

  1. первое открытие/посещение (события first_open или first_visit);
  2. пользователи из органики (фильтр по полю firstUserMedium содержит organic);
  3. начало сессии (событие session_start);
  4. просмотр экрана или страницы (события screen_view или page_view);
  5. покупка (события purchase или in_app_purchase);

Воронка по умолчанию в Google Analytics 4

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

Поскольку вы скопировали пример кода из GitHub, то в нем нужно изменить Идентификатор ресурса (GA4-PROPERTY-ID) на свой собственный. Найти его можно в интерфейсе Google Analytics 4, перейдя в раздел Администратор – Настройки ресурса - Информация о ресурсе. В правом верхнем углу скопируйте значение идентификатора ресурса:

Идентификатор ресурса Google Analytics 4

Его вы так же можете найти в поиске Google Analytics 4 по аккаунтам и ресурсам. Идентификатор ресурса будет отображаться под его названием:

Идентификатор ресурса в поиске GA4

Вставьте его в скопированном коде в поле property_id в двух местах:

Ваш идентификатор ресурса в переменной property_id

В самом запросе задайте значения start_date (начальная дата) и end_date (конечная дата), чтобы построить воронку за нужные даты. Например, за ноябрь 2024 года:

  • start_date="2024-11-01"
  • end_date="2024-11-30"

Диапазон дат в date_ranges

В этом коде задан каждый шаг воронки отдельно, добавлены соответствующие события и фильтры (используются фильтры воронки FunnelFilterExpression и FunnelFilterExpressionList). В funnel_breakdown задается параметр для разбивки данных. По умолчанию - это срез по типу устройства (deviceCategory). Точно так же, как это выбрано в Исследовании воронки в интерфейсе Google Analytics 4.

Параметр для разбивки - Тип устройства

В funnel определяются шаги воронки, каждый из которых включает фильтры для различных событий, таких как:

  1. First open/visit (события first_open или first_visit);
  2. Organic visitors (фильтр по полю firstUserMedium содержит organic);
  3. Session start (событие session_start);
  4. Screen/Page view (события screen_view или page_view);
  5. Purchase (события purchase или in_app_purchase);

Запустив только этот код в ячейке, никакого результата вы не получите, так как программа еще до конца не готова. В качестве первой итерации я предлагаю преобразовать данные в понятный формат и сохранить их в формате CSV. Для этого воспользуйтесь следующим кодом:

Этот код формирует запрос на получение данных для соответствующих шагов воронки, а затем сохраняет ответ в переменной. Поскольку Data API Google Analytics 4 отдает результат в виде объекта (object), нам необходимо осуществить дополнительное преобразования. Для этого используется функция transform_response(api_response). С помощью нее извлекаются заголовки параметров и показателей, создаются списки для хранения значений, а затем все полученное с помощью библиотеки pandas преобразуется в датафрейм (DataFrame) и сохраняется в файле CSV с именем funnel_data.csv. Его можно изменить на свое собственное.

Запустив этот код, вы должны увидеть новый сохраненный файл в формате CSV:

Сохраненный файл CSV с данными

Скачайте его к себе, выбрав соответствующий пункт меню:

Скачивание файла

А затем откройте его у себя на компьютере. Например, в Notepad++:

Данные по воронке

Как видите, мы получили данные по всем шагам воронки. В таблице присутствуют следующие поля:

  • funnelStepName - шаги воронки, заданные в запросе;
  • deviceCategory - разбивка по типу устройства (RESERVED_TOTAL - общее количество). Это позволяет вам анализировать, как поведение пользователей и их конверсия различается на разных устройствах;
  • activeUsers - показатель Активные пользователи (Active Users). Данная метрика дает представление об общей активности и вовлеченности пользователей;
  • funnelStepCompletionRate - метрика вычисляет процент пользователей, успешно завершивших определенный шаг в воронке, от общего числа пользователей, которые вошли в этот шаг. Она помогает вам измерить эффективность каждого этапа в последовательности (так называемый Коэффициент завершения);
  • funnelStepAbandonments - показатель отображает количество пользователей, которые вошли на определенный шаг в воронке, но не перешли на следующий шаг или не завершили воронку. Она помогает обнаружить «узкие места» в путях пользователей (так называемые Прерывания);
  • funnelStepAbandonmentRate - метрика вычисляет процент пользователей, которые отказались от определенного шага в воронке, от общего числа пользователей, которые вошли на этот шаг. Она дает представление об относительном уровне прерывания (так называемый Коэффициент прерывания = 100% - Коэффициент завершения).

Вот как выглядят те же самые данные, но в интерфейсе Google Analytics 4:

Данные по воронке в интерфейсе Google Analytics 4

Визуализация данных

После того, как мы научились выгружать и преобразовывать данные по воронкам GA4, пришло время визуализировать все это с помощью Python. Для этого воспользуемся библиотекой Plotly.

Итоговый код, который вам необходимо полностью вставить в свою программу и запустить, выглядит так:

Не забудьте изменить все данные на свои (и идентификатор ресурса, и диапазон дат, и шаги воронки, и параметр разбивки). Думаю, что сам код не требует пояснений, тем более, что:

А. большую его часть мы разобрали ранее;
Б. любой чат-бот ИИ сможет расшифровать вам любую строчку кода, каждую функцию скрипта, а также подробно описать его функциональность.

Если кратко, то с помощью Data API мы сначала запрашиваем данные по воронке, потом преобразуем ответ в датафрейм, затем визуализируем данные и выводим результат на экран в виде столбчатой диаграммы по всем шагам воронки, а ниже - таблицу с подробной статистикой и параметром разбивки. Ровно то, что присутствует в интерфейсе вашего ресурса Google Analytics 4 в Исследовании воронки.

Визуализация шагов воронки:

Визуализация шагов воронки

И подробная таблица с данными:

Таблица с данными

Если сравнить результат с данными Исследования, то цифры +/- должны сойтись.

Исследование воронки

Примечание: отчеты, Исследования, Data API для Google Analytics 4 и экспорт данных в Google BigQuery отображают данные разными способами. В официальной документации Google представлена таблица, в которой показаны различия между доступными сведениями и ограничениями каждого из методов.

Да, в интерфейсе GA4 данные выглядят иначе, они уже преобразованы и отформатированы, визуально приятнее (например, 58,4% в интерфейсе vs 0.5836105613340633 в API). Если вы обладаете навыками программирования, то вам не составит труда добавить несколько дополнительных строчек кода, чтобы преобразовать цифры в удобочитаемый формат, добавить знак % и указать количество символов после запятой. Но все это выходит за рамки данного руководства, постарайтесь здесь, пожалуйста, сами.

Как и обещал, в конце материала прикладываю ссылку на итоговую программу в Colab. Успехов!

Получайте бесплатные уроки и фишки

По контекстной, таргетированной рекламе и аналитике