Что из себя представляет Google BigQuery и почему его стоит изучать всем, кто использует на своих сайтах счетчик Google Analytics 4? Постараемся разобраться в обзорном материале, посвященном облачному хранилищу данных Google.
С 9 сентября 2024 года Google прекратил работу Google BigQuery в России. На момент публикации этого материала вы не сможете привязать свою банковскую карту, выпущенную на территории РФ. Наиболее простое и эффективное решение - выпустить карту другой страны (Казахстан, Киргизия, Армения и т.д.), чтобы иметь возможность пользоваться Google Cloud и оплачивать счета.
Наверняка вы задавали себе такой вопрос и ранее. Однако если начать углубляться в эту тему, искать статьи в Интернете по Google BigQuery, спрашивать о возможностях облачного хранилища Google у нейросетей и чат-ботов ИИ, то можно столкнуться с проблемой практического понимания и применения данного инструмента в работе интернет-маркетолога.
Google BigQuery
Ведь Google BigQuery появился задолго до того, как был разработан и представлен широкой публике Google Analytics 4. Да и использовать его можно не только в паре с GA4 для анализа данных о трафике, поведении пользователей и конверсиях, но решать и другие, важные задачи бизнеса. Например:
работать с большим количеством данных. Собрав статистику о продажах за несколько лет (big data), с помощью BigQuery можно быстро проанализировать эти данные, чтобы выявить тренды, сезонность, найти закономерности, какие-то паттерны или составить список популярных товаров или самых ценных клиентов;
анализировать данные в реальном времени (real-time). Компании могут использовать BigQuery для анализа данных о поведении пользователей на своем сайте или в приложении (отслеживать, сколько пользователей добавили товары в корзину, но не завершили покупку, сколько посетителей прошли регистрацию, совершили бронирование, выполнили транзакцию, оставили комментарий, выполнили какое-то действие) и мгновенно реагировать на изменения. Это полезно для целого ряда организаций (сервисы онлайн-бронирования, авиакомпании, социальные сети, финансовые услуги, ритейл и электронная коммерция, телекоммуникации, игровая индустрия, образование, производство, автомобильная промышленность и многое другое);
анализировать логи и выполнять мониторинг системы. BigQuery можно использовать для анализа логов серверов (журналов записей) или приложений, чтобы выявлять ошибки или аномалии в работе проекта (нагрузка на сайт, DDoS-атаки, отклоненные операции и т.д.);
прогнозировать спрос на товары и услуги. Крупный бизнес может анализировать исторические данные о продажах, чтобы прогнозировать спрос на товары и услуги в определенные периоды (перед праздниками);
машинное обучение. Инструмент BigQuery ML позволяет создавать модели машинного обучения прямо в BigQuery (определять, является ли клиент потенциальным покупателем на основе его поведения на сайте, предсказывать цену на основе различных факторов, таких как площадь, количество комнат, расположение и т.д., группировать клиентов на основе их покупательского поведения, прогнозировать спрос на товар или услугу, выявлять мошеннические транзакции, определять вероятность оттока пользователей на основе их взаимодействий, предлагать пользователям товары на основе их предыдущих покупок и предпочтений, то есть выполнять функцию рекомендательной системы и прочее);
объединять данные из разных источников. У вас есть CRM-система с данными о клиентах? Вы ведете рекламные кампании не только в Google Рекламе, но и других сервисах? Ваш бизнес подвержен внешнему воздействию (влияние сезонности, погодные условия, изменения в геополитике и экономике)? Помимо сайта у вас есть и приложение? BigQuery позволяет объединять данные из разных источников и построить полноценную сквозную аналитику, целую экосистему предприятия, связав все компоненты воедино.
Сквозная аналитика с использованием Google BigQuery
создавать отчеты и дашборды. Поскольку у компании все данные хранятся в едином хранилище, что существенно упрощает управление, доступ и анализ, а BigQuery имеет интеграции с различными инструментами визуализации (Looker Studio, Tableau, Power BI), то BI-аналитики могут использовать его для наглядного представления данных, создания отчетов и дашбордов, а затем делиться ими с командой. Таким образом, в организации будут приниматься более взвешенные и обоснованные решения.
Далее я хотел бы рассмотреть использование Google BigQuery с двух точек зрения - с позиции разработчика (аналитика данных) и с позиции интернет-маркетолога (веб-аналитика).
BigQuery переводится как «Большой Запрос» (от англ. Big - большой, Query - запрос). Поэтому ключевое - это, конечно же, скорость обработки большого количества данных. Крупным компаниям, у которых за годы их существования накопилось множество информации, нужна такая архитектура, такое решение, которое бы позволяло масштабироваться в зависимости от объема данных и нагрузки, и причем достаточно в сжатые сроки.
У некоторых компаний может быть очень много данных. Многомилионная аудитория, клиентская база, статистика по рекламе, транзакциям, данные из аналитики, сбор информации о различных событиях и взаимодействиях на сайте и в приложении — миллиарды строк в базах данных, гигабайты и терабайты информации, обновляющейся в реальном времени и требующей постоянного контроля и мониторинга, а также работы без отказов. Поддержка собственных серверов, настройка и обновление программного обеспечения (ПО), управление безопасностью и резервным копированием - все это требует постоянного внимания и ресурсов. А уж разработать систему, которая будет легко масштабироваться по мере роста объемов данных, задача весьма сложная даже для целого отдела разработчиков.
Производительность, системное администрирование, скорость внедрения, затраты на оборудование, лицензии, электроэнергию и охлаждение - все это тоже нужно учитывать перед тем, как развертывать собственные сервера и хранилища для больших данных.
Google BigQuery, напротив, с этой задачей справляется достаточно легко, поскольку является бессерверным масштабируемым хранилищем данных со встроенным механизмом запросов, позволяющим выполнять SQL-команды на терабайтах и петабайтах данных, сохраняя при этом высокую производительность. И вам не придется организовывать и поддерживать какую-либо инфраструктуру. Это делает BigQuery идеальным для аналитических задач на больших наборах данных.
Архитектура BigQuery
Сами данные, которые вы загружаете в облако, распределены по миллионам физических дисков в десятках регионов по всему миру, а высокая скорость BigQuery достигается за счет использования колоночного хранилища, поддержки вложенных и повторяющихся полей, а также отделения вычислений от хранения.
В колоночных (столбцовых) базах данных данные каждого столбца хранятся отдельно (независимо) от других столбцов, а не по строкам, как это делается в традиционных реляционных базах данных. Такой принцип хранения позволяет при выполнении запроса считывать данные с диска только тех столбцов, которые непосредственно участвуют в этом запросе.
Ниже представлена иллюстрация того, как извлекаются данные для отчетов при использовании обычной строковой СУБД и столбцовой/колоночной СУБД (визуализации взяты с clickhouse.com):
Стандартная строковая СУБД
Столбцовая (колоночная) СУБД
Именно колоночные (столбцовые) базы данных находят широкое применение в областях, где важна производительность анализа данных. К числу таких БД относятся Apache Cassandra, HBase, Amazon Redshift, ClickHouse и Google BigQuery.
Пример таблицы с данными Google Analytics 4 в BigQuery
Немаловажным фактором при выборе хранилища данных является стоимость. BigQuery предлагает на выбор две модели ценообразования для выполнения запросов:
Цена за запросы (On-demand). Взимается плата за количество байтов, обработанных каждым запросом. Первый 1 ТиБ (тебибайт) в месяц предоставляется бесплатно, далее - 6,25$ за ТиБ. Минимальный объем обработанных данных составляет 10 МБ на каждую таблицу, на которую ссылается запрос, и минимальный объем обработанных данных составляет 10 МБ на каждый запрос. Таким образом, если запрос обращается к одной таблице и обрабатывает 5 МБ данных, с вас будет списана оплата за 10 МБ;
Цена за вычислительные мощности (Capacity pricing). Вы приобретаете слоты (=виртуальные процессоры), то есть выделенную вычислительную мощность, которую можете использовать для выполнения запросов. Во время выполнения запроса BigQuery автоматически определяет, сколько слотов будет использовано. Количество используемых слотов зависит от объема обрабатываемых данных, сложности запроса и количества доступных слотов. Оплата происходит по мере использования слотов (в стандартной версии - 0,04$ / слот в час, в корпоративной версии - 0,06$ / слот в час).
Примечание: вы можете воспользоваться калькулятором цен Google Cloud, чтобы рассчитать примерную стоимость использования BigQuery.
Несмотря на это, стоимость BigQuery значительно ниже стоимости аренды или развертывания самого простого сервера. Главное - не забывать про оптимизацию SQL-запросов с целью снижения расходов.
Еще одно преимущество BigQuery - простота администрирования. Вам не нужно заботиться о настройке, обновлении или управлении инфраструктурой, включая резервное копирование и восстановление. Google взял на себя всю административную часть в BigQuery.
Если переходить к синтаксису и запросам, то BigQuery поддерживает два диалекта SQL:
стандартный SQL, он же GoogleSQL (+массивы и вложенные поля);
устаревший SQL (Legacy).
Например, задача - выбрать количество уникальных пользователей (user_pseudo_id) и общее количество событий (event_name) за определенный день из таблицы Google Analytics 4. В GoogleSQL (Standard SQL) этот запрос будет выглядеть так:
Изменить синтаксис со стандартного SQL на Legacy можно прямо в редакторе BigQuery:
Переключения диалекта SQL на Legacy в настройках запроса
После этого в интерфейсе редактора будет отображаться характерная надпись, свидетельствующая об использовании Legacy SQL:
Пример запроса на Legacy SQL
Сейчас, преимущественно, используется GoogleSQL, так как он более современный и поддерживает все функции BigQuery. Legacy SQL устарел и не рекомендуется к использованию.
Для написания SQL-запросов в BigQuery не требуется обладать какими-то уникальными или специализированными навыками, если вы уже знакомы с основами SQL. BigQuery использует диалект GoogleSQL (ранее называвшийся Standard SQL), который очень близок к ANSI SQL - стандарту, используемому в большинстве современных реляционных баз данных. Если вы уже умеете писать SQL-запросы (например, для MySQL, PostgreSQL, Oracle или других СУБД), то переход на BigQuery будет достаточно простым.
В BigQuery также поддерживаются языки программирования R и Python, что дает возможность аналитикам и разработчикам применять знакомые инструменты и библиотеки для анализа данных. Фактически, это привычный для многих Jupyter Notebook (Python notebook) и Google Colab.
Пример использования Python в BigQuery (сегментация пользователей)
И, конечно же, когда инженер данных предлагает использовать то или иное хранилище данных для организации всего производства, он должен задумываться не только о самой базе данных, но и о всем жизненном цикле данных. BigQuery является частью комплексной платформы Google Cloud Platform (Google Cloud или сокр. GCP), которая охватывает всю цепочку создания конечного бизнес-решения, включая прием, обработку и хранение данных, за которыми следуют расширенная аналитика, визуализация данных и совместная работа.
На каждом этапе жизненного цикла данных GCP предоставляет несколько услуг для управления данными. Это означает, что клиенты могут выбрать набор сервисов, адаптированных к их данным и рабочему процессу.
BigQuery - один из продуктов платформы Google Cloud
Хранение данных - Google Cloud Storage, Cloud SQL, Cloud Bigtable, Firestore;
Аналитика и Big Data - BigQuery, Dataflow, Dataproc;
Искусственный интеллект и машинное обучение - Vertex AI, AutoML, Natural Language API, Vision API;
Сети и безопасность - Virtual Private Cloud, Cloud Load Balancing, Cloud IAM;
Инструменты разработки - Cloud SDK, Cloud Code, Cloud Build.
Нельзя не учитывать роль технологического стека в разработке окончательного решения, поскольку от его выбора зависит:
производительность и масштабируемость приложения;
скорость и стоимость разработки;
безопасность и удобство поддержки;
возможности интеграции и будущее развитие продукта.
Именно поэтому многие предприятия выбирают сервисы и службы от одной компании, поскольку все они друг с другом интегрированы. Например, если вы работаете в России, где множество продуктов компании Google запрещены и заблокированы, разумным решением будет использование стека технологий от компании Яндекс (тот же ClickHouse - Yandex Cloud - Яндекс Метрика - Яндекс Тег Менеджер - Яндекс Директ - Yandex DataLens и др.), или аналоги от менее известных производителей.
В BigQuery встроен BigQuery ML - это набор функций машинного обучения. Он позволяет вам создавать и использовать модели машинного обучения на ваших данных BigQuery, используя только язык SQL. BigQuery ML предлагает широкий спектр моделей машинного обучения, включая:
Классификация - предсказывает категориальную переменную, например, "класс" или "прогноз";
Регрессия - предсказывает числовую переменную, например, "стоимость" или "продажи";
Прогнозирование временных рядов - предсказывает будущие значения переменной на основе ее исторических значений;
Обнаружение аномалий - определяет данные, которые отклоняются от ожидаемого поведения;
Факторный анализ - выделяет из данных набор факторов, которые объясняют взаимосвязь между переменными.
Таким образом, BigQuery ML предоставляет аналитикам данных мощные инструменты для интеграции машинного обучения в их рабочие процессы, делая анализ данных более эффективным и доступным.
BigQuery для интернет-маркетолога (веб-аналитика)
Если разработчик и аналитик данных рассматривают BigQuery как часть ВСЕЙ инфраструктуры компании, и их работа связана со ВСЕЙ информацией организации, то интернет-маркетолог (веб-аналитик) работает, преимущественно, только со статистикой, полученной с помощью рекламных и аналитических инструментов. И вот здесь мы возвращаемся к Google Analytics 4.
Одна из парадигм, которая изначально была заложена компанией Google в Google Analytics 4 – это возможность работать с «сырыми», необработанными данными. И чтобы упростить процесс обмена информации между двумя продуктами Google, в GA4 добавили новую интеграцию – связь с Google BigQuery.
Google BigQuery
Примечание: В Universal Analytics (GA3) прямой интеграции между сервисами не было. Она была доступна только в Google Analytics 360 (платной версии Google Analytics).
Теперь мы можем включить экспорт данных в BigQuery и начать использовать необработанные данные о событиях, собранных на сайте и в мобильном приложении без какой-либо выборки и ограничений.
Что такое необработанные, «сырые» данные?
Когда вы работаете с отчетами Google Analytics 4, вы видите табличные данные в окончательном виде. Это может быть сумма, расчет среднего значения, процент от итогового значения и т.д. Например, вот так выглядит стандартный отчет Привлечение трафика (Traffic acquisition) за определенный диапазон дат:
Отчет "Привлечение трафика"
Вверху таблицы представлены агрегированные (объединенные) значения по активным пользователям, сеансам, доле взаимодействий, количеству событий и т.д. Часть показателей рассчитана на основе других показателей. Например, Доля взаимод., Среднее время взаимодействия, Количество событий на сеанс и другие. То есть над ними были совершены преобразования и произведены математические операции - сложение, деление, умножение, вычитание. А поскольку над ними проводились различные манипуляции, значит они подверглись обработке. Агрегированные данные удобны тем, что вы имеете быстрый доступ к информации на уровне событий и пользователей. Google Analytics 4 уже за вас произвел определенные действия и предоставил готовый отчет в виде таблиц, графиков, диаграмм.
Другие тип отчетов в GA4 - Исследования. Исследования (Explorations) - это инструмент работы с данными в Google Analytics 4 (вынесен в отдельную категорию), который позволяет значительно глубже, детальнее и более гибко анализировать полученную информацию о ваших пользователях по сравнению со стандартными отчетами.
Пример Исследования в свободной форме
В Исследованиях у вас есть возможность создавать свои собственные отчеты, используя шаблоны или свободную форму, менять тип визуализации анализируемых данных, добавлять к ним необходимые параметры, показатели, которые доступны в вашем ресурсе, фильтры, сегменты (сравнивать их между собой), а также выбирать методику анализа простым перетаскиванием. Благодаря Исследованиям, вы можете выйти за рамки стандартных отчетов, обзорных отчетов, подробных и сводок GA4.
Но есть и другая проблема - выборка данных (data sampling). Выборка - это анализ некоторого подмножества данных из общего множества с целью выделения неких свойств исходного множества. Иными словами, Google берет некоторую часть данных, например, 10%, умножает ее на 10 и говорит нам, что так вели бы себя все 100%. Это позволяет быстрее извлекать данные и почти не влияет на их качество.
В официальной справке Google приведен другой пример для лучшего понимания выборки данных: если вы хотите оценить количество деревьев на площади в 100 гектаров с более или менее равномерным распределением деревьев, можно подсчитать количество деревьев на одном гектаре и умножить на 100. Вы также можете подсчитать число деревьев на половине гектара земли и умножить его на 200. Это позволит определить количество деревьев на всей площади в 100 гектаров.
В Google Analytics 4 выборка данных может применяться, если количество событий, используемых в отчетах, Исследованиях или запросе, превосходит ограничение для ресурса. В этом случае GA4 использует часть данных и масштабирует расчеты, чтобы вы получили репрезентативные результаты.
Если результаты создаются на основе выборки, на значке Качество данных показывается, какой процент данных был использован.
Исследование с очень малой выборкой
При работе с выборочными данными соотношение между общим объемом данных и размером выборки может влиять на точность результатов запроса. Обычно чем больше размер выборки (в процентах от общего объема данных), тем точнее результаты. Если размер выборки для Исследования слишком мал, попробуйте сократить диапазон дат, чтобы уменьшить объем данных, к которым применяется выборка. Это позволит получить более точные результаты.
Примечание: для запросов на уровне событий применяются ограничения в 10 млн событий для Google Analytics 4 и до 1 млрд – для ресурсов Google Analytics 360.
Таким образом, с помощью неагрегированных (сырых) данных вы можете:
работать со статистикой без выборки;
обойти интерфейсные ограничения Google Analytics 4;
отслеживать путь каждого пользователя по вашему сайту или мобильному приложению;
строить собственные модели атрибуции, чтобы оценивать вклад каждого рекламного канала;
находить различные зависимости в поведении определенных групп пользователей, сегментировать их и прицельно «таргетироваться»;
объединять данные Google Analytics 4 со сторонними API и другими сервисами (например, CRM);
корректировать уже собранную статистику (исправлять ошибки после сбора);
визуализировать данные в таких инструментах, как Looker Studio, Tableau, Microsoft Power BI и др.;
использовать накопленную статистику в качестве входных значений для прогнозирования будущих показателей (Machine Learning).
Пример таблицы с сырыми данными по событиям Google Analytics 4 в BigQuery
Не стоит забывать, что срок хранения данных о пользователях и событиях в Google Analytics 4 по умолчанию составляет 2 месяца. Вы можете увеличить его до 14 месяцев, выставив в настройках ресурса в разделе Сбор и редактирование данных – Хранение данных.
Хранение данных
Расхождение данных между общим количеством событий в Google Analytics 4 и BigQuery допустимо, но оно не должно превышать 2-5%.
Однако этого может быть недостаточно, если вы хотите проанализировать события пользователей, которые последний раз заходили более 14 месяцев назад. И здесь вам тоже может помочь Google BigQuery. Настроив экспорт данных один раз, данные в BigQuery будут поступать ежедневно/потоково и храниться там без ограничений по времени.
Ограничения интерфейса Google Analytics 4
Ни в стандартных отчетах, ни в Исследованиях Google Analytics 4 вы не сможете проанализировать данные в разрезе конкретных пользователей, опираясь на их идентификатор (он же Client ID, в BigQuery - user_pseudo_id). Исключение составляет только Исследование Статистика пользователей. Там эта информация представлена, но сам отчет сильно ограничен по своему функционалу.
А в BigQuery такую статистику можно получить с помощью простого SQL-запроса:
Таблица с данными о продажах по пользователям
И затем, при желании, объединить эти данные с другими источниками (например, продажами из CRM или рекламной статистикой).
А если вы желаете связать поисковые запросы Search Console с покупками Google Analytics 4?
Поисковые запросы Search Console и продажи из Google Analytics 4
Общая таблица в BigQuery по всем событиям улучшенной статистики для каждого пользователя
Еще в Google Analytics 4 нельзя передавать персональные данные пользователя - его имя, фамилию, контактные данные, IP-адрес, почтовый индекс, адрес и другие сведения, позволяющие в явном виде идентифицировать пользователя. Но эту же информацию можно загружать в хранилище Google BigQuery из CRM-системы, а затем посредством SQL связывать аналитические данные и данные о клиентах.
И таких ограничений и запретов в GA4 много. Слышали ли вы когда-нибудь о HyperLogLog++?
Работая с данными Google Analytics 4 в интерфейсе, забудьте про такое понятие, как точность. Это утопия. Если вы видите разные данные в стандартных отчетах, Исследованиях, при выгрузке с помощью Data API и в Google BigQuery, то знайте - это нормально. И причина этому достаточна проста - так работают алгоритмы в GA4.
В апреле 2023 года в официальной документации разработчиков вышел очень любопытный материал о расхождениях между интерфейсом Google Analytics 4 и данными экспорта в BigQuery, который проливает свет на многие вопросы по этой части, но при этом поднимает и другие, не менее важные темы. Вам обязательно нужно его прочитать.
Идея заключается в том, что Google Analytics 4 использует вероятностный алгоритм HyperLogLog++ (Гиперлоглог++, HLL++), где ++ обозначает дополнения, внесенные в алгоритм HyperLogLog, который эффективно оценивает приблизительное количество отдельных значений в наборе данных. То есть когда вы просматриваете данные в интерфейсе или через API и хотите подсчитать уникальное количество каких-то показателей (пользователей, сеансов, конверсий, количество событий, транзакций и т.д.), вы будете видеть приблизительное, а не точное значение.
Примечание: HLL++ не является чем-то новым для GA4, он использовался и в предыдущей версии Google Analytics для подсчета пользователей, начиная с 2017 года. К тому же алгоритм HyperLogLog используется многими организациями, от небольших технологических компаний до таких гигантов, как Facebook, Twitter, Presto, Redis для быстрого и эффективного получения приблизительных оценок мощности для очень больших наборов данных (Big Data).
Это связано с тем, что для подсчета уникального количества элементов в множестве данных Google требуется куда больше вычислительных ресурсов. И чтобы снизить нагрузку на свои сервера, компания использует данный алгоритм измерения. HLL++ оценивает количество элементов, используя меньше памяти и повышая производительность, а затем отображает эти данные в интерфейсе GA4 с определенной погрешностью.
А вот если у вас настроена связь с Google BigQuery, то вы можете рассчитать значения показателей точнее интерфейсных. При этом данные в BigQuery и в интерфейсе Google Analytics 4 могут отличаться на небольшой процент. При доверительном интервале 95% точность подсчета сеансов может составлять ±1,63%. Для сеансов он менее точен, ±3,25%. Уровни точности будут различаться для разных показателей и будут меняться в соответствии с доверительными интервалами.
Для HLL++ существуют эскизы - конструкции, которые инкапсулирует информацию об отдельных значениях в наборе данных. Такие эскизы обеспечивают значительное повышение производительности при обработке запросов по вычислению приблизительной кардинальности больших наборов данных. Вычисление показателей с помощью эскиза существенно дешевле, чем вычисление точного значения. Если ваши вычисления выполняются слишком медленно или требуют слишком большого объема временной памяти.
Примечание: подсчет уникального количества пользователей или другой метрики без эскизов обычно возможен только путем выполнения запроса на необработанных данных (в BigQuery), поскольку уже агрегированные данные больше нельзя объединять.
В таблице ниже показаны поддерживаемые эскизами HLL++ значения точности, максимальный размер хранилища и доверительный интервал (CI) типичных уровней точности:
Эскизы HLL++
Как видите, при доверительном интервале 95% и точности подсчета ±1,63% значение точности равно 14.
Сам Google Analytics 4 использует следующую конфигурацию для измерения количества показателей:
Значение точности для нескольких показателей Google Analytics 4
В HLL+ есть еще один параметр - sparse precision. В BigQuery его значение не определяется пользователем и фиксируется на уровне precision + 5.
Построив график по табличным данным, можно наблюдать такую картину:
График зависимости точности от размера (quantable.com)
Здесь мы видим, что с увеличением настройки точности количество ошибок уменьшается, а объем используемой памяти увеличивается. Интересно отметить, что, хотя по умолчанию в BigQuery установлена точность (precision) 15, настройки в GA4 ниже - 12 для сеансов и 14 для пользователей. Это имеет смысл с точки зрения Google, поскольку они решили, что дополнительная точность в 0,5% не стоит удвоения размера хранилища с 16 КБ до 32 КБ… Оптимизация затрат, вычислительных ресурсов и производительности со стороны Google. Ничего личного, это просто бизнес (с).
Для чего я привел эти таблицы с эскизами и значения precision для некоторых показателей GA4? Чтобы продемонстрировать вам практически расхождения в интерфейсных данных и данных, экспортируемых в BigQuery, а также несколько запросов, с точным подсчетом и приблизительным результатом.
Итак, давайте построим отчет за 6 месяцев и подсчитаем уникальное количество пользователей (Total Users) с 3 января по 3 июля 2023 года. В стандартном отчете по событиям этот показатель равен 101 625:
Всего пользователей за выбранный диапазон дат - 101 625
В Исследованиях за аналогичный период всего пользователей точно такое же число - 101 625:
Всего пользователей за выбранный диапазон дат - 101 625
В проекте настроена связь Google Analytics 4 с Google BigQuery. И при выполнении SQL-запроса подсчета количества пользователей за выбранный диапазон дат я могу пойти разными путями:
использовать функцию COUNT(DISTINCT) для точного измерения числа пользователей. Этот подход требует больше памяти и требует больше времени для выполнения, особенно для больших наборов данных;
использовать функцию APPROX_COUNT_DISTINCT, которая аппроксимирует результаты с помощью HLL++. Она не позволяет вам настраивать точность приближения;
использовать функцию HLL_COUNT.INIT и значение точности precision в HLL++ из таблицы, которую я приложил выше.
Давайте рассмотрим каждый запрос в BigQuery и результат его выполнения.
Точный подсчет с помощью функции COUNT(DISTINCT) будет выглядеть так:
Для моего проекта в BigQuery SQL-запрос за выбранный диапазон дат (с 3 января по 3 июля 2023 года) даст следующий результат (размер - 33,36 МБ и количество пользователей 101 451):
Точный подсчет пользователей в BigQuery с помощью COUNT(DISTINCT)
Как видите, количество пользователей в интерфейсе GA4 и BigQuery при точном подсчете отличается. Но процент расхождения допустимый - всего 0,17%. В моем счетчике в эти даты были активированы сигналы Google. А как вы уже знаете, GA4 не экспортирует в BigQuery данные, связанные с сигналами Google, поэтому количество событий в Google Analytics и в BigQuery может быть разными. Это связано с тем, что сигналы Google дедуплицируют полученные данные о событиях.
Другой способ - это использовать функцию APPROX_COUNT_DISTINCT для приблизительного подсчета:
Для моего проекта в BigQuery SQL-запрос за выбранный диапазон дат даст следующий результат (размер запроса не изменится - 33,36 МБ, а количество пользователей составит 101 597):
Подсчет пользователей в BigQuery с помощью APPROX_COUNT_DISTINCT
Процент расхождения при приблизительном подсчете еще меньше - всего 0,03%. В моем счетчике аналитики не так много данных, поэтому цифры при точном подсчете и приблизительном не сильно отличаются. Однако если в вашем проекте много статистики и миллионы пользователей и событий, то % расхождения будет больше, но не должен выходить за доверительный интервал, представленный в таблице выше.
Еще вы можете выполнить репликацию APPROX_COUNT_DISTINCT с помощью функций BigQuery HLL++. Это вернет идентичные или очень похожие результаты, как APPROX_COUNT_DISTINCT:
Результат выполнения SQL-команды в BigQuery для моего проекта (размер запроса и количество пользователей не изменилось - 33,36 МБ и 101 597):
Подсчет пользователей в BigQuery с помощью функции HLL++
И, наконец, чтобы реплицировать данные в пользовательском интерфейсе Google Analytics, то есть сделать очень похожими данные в BigQuery с интерфейсом GA4, используйте функцию HLL++ и значение точности precision = 14:
Результат выполнения SQL-команды в BigQuery для моего проекта с помощью функции HLL++ и задания точности 14 (размер запроса - 33,36 МБ):
Подсчет пользователей в BigQuery с помощью функции HLL++ и указании точности (precision = 14)
Бинго! С помощью функции HLL++ и указании точности 14 мы добились 100% совпадения интерфейсных данных GA4 и табличных в BigQuery. Но опять же, здесь есть свои нюансы и об этом прописано в официальной документации Google. Для подсчета пользователей Google Analytics использует sparse precision значение 25. Поскольку sparse precision значение BigQuery всегда равно precision + 5, по умолчанию будет установлено значение 19 (14+5). Таким образом, этот параметр не будет соответствовать пользовательскому интерфейсу Google Analytics при подсчете общего количества пользователей. Будет небольшая разница. У меня данные сошлись, потому что их не так много. Но у вас ситуация может быть другой.
Это все? Разумеется, нет! Когда дело доходит до подсчета различных значений, то в Google Analytics 4 немаловажным фактором играет такое понятие, как кардинальность (cardinality). В контексте баз данных кардинальность относится к уникальности значений данных, содержащихся в столбце. Высокая мощность означает, что столбец содержит большой процент полностью уникальных значений. Низкая мощность означает, что столбец содержит много повторов в своем диапазоне данных. Если проще, высокая кардинальность - уникальные данные, низкая кардинальность - повторяющиеся данные.
Например:
Пол - повторяющиеся значения, низкая кардинальность, поскольку значений пола всего несколько и они фиксированы - male, female и unknown;
Пол - высокоповторяющиеся данные, низкая кардинальность
Браузер - данные повторяются, но уже не так часто - средняя кардинальность;
Город - данные уникальны, высокая кардинальность, так как география пользователей очень обширна.
Город - много уникальных значений, высокая кардинальность
Путь к странице - уникальных значений еще больше (на сайтах электронной торговли их может быть десятки и сотни тысяч), высокая кардинальность.
Путь к странице - еще больше уникальных значений, высокая кардинальность
Предположим, вы просматриваете стандартный отчет или выгружаете данные с помощью Data API. Он содержит большой объем данных и имеет параметры с высокой кардинальностью. Под высокой кардинальностью в Google Analytics 4 подразумеваются параметры, количество уникальных значений которых превышает 500. При наличии таких параметров может быть достигнуто максимальное количество строк в отчете, и тогда GA4 сгруппирует менее часто встречающиеся значения и отобразит их в строке (other).
Строка (other) в стандартных отчетах
Это еще одна проблема, поскольку она не позволяет точно проанализировать весь набор данных в GA4. Какие значения находятся в строке (другое)? Узнать невозможно. Когда Google использует агрегированные данные, в отчете или Исследовании может образоваться больше строк, чем допустимо. Тогда создается строка (other).
В отчете с дополнительными параметрами, фильтрами или сравнениями это появление строки (other) более вероятно, так как для таких отчетов требуются таблицы базы данных с большим количеством параметров. В ресурсах, где много данных, легко может быть превышено ограничение на количество уникальных значений, и тогда данные будут сгруппированы и отображены в одной строке.
Примечание: именно поэтому Google не рекомендует передавать в специальных определениях данные, которые имеют множество уникальных значений - идентификаторы транзакций, Client ID, User ID, IP-адрес, пользовательское время и т.д. и т.п.
Стоит пару слов сказать о моделировании. По умолчанию в стандартных отчетах и Исследованиях моделирование ключевых событий и моделирование поведения включено, в том числе в реальном времени.
Данные BigQuery содержат сведения о проверках связи без использования файлов cookie, которые собирает GA4, если включен режим согласия и каждый сеанс использует новое значение user_pseudo_id. Поэтому моделирование может привести к различиям между стандартными отчетами и детализированными данными в BigQuery, например меньшему числу активных пользователей в отчетах по сравнению с показателями из BigQuery, поскольку при моделировании прогнозируется наличие нескольких сеансов от одного пользователя, который отклонил файлы cookie. Подробнее про моделирование читайте в этом материале.
Таким образом, после ознакомления с различными ограничениями в сборе, обработке и представлении данных в стандартных отчетах и Исследованиях, мы пришли к вполне очевидному и закономерному выводу - Google хочет «подсадить» как можно большее количество проектов и ресурсов GA4 на работу с Google Cloud и облачным хранилищем BigQuery. Только в нем вы сможете работать с данными без какой-либо выборки, пороговых значений и иметь возможность максимально гибко создавать нужные срезы, сводные таблицы и визуализации для своих итоговых дашбордов.
Несомненно, Google Analytics 4 стал новым стандартом в области веб-аналитики, предложив нам в 2020 году мощные инструменты для сбора и анализа данных о пользователях веб-сайтов и мобильных приложений. Но несмотря на все многообразие и гибкость, максимальную пользу от работы мы получаем только тогда, когда выходим за пределы его интерфейса. И это касается не только GA4, но и других сервисов Google.
Интеграция GA4 с BigQuery открывает новые возможности для анализа. Мы можем обрабатывать большие объемы данных без выборки, отслеживать путь каждого пользователя в отдельности или создавать пользовательские группы, сегментируя трафик нужным образом, строить собственные модели атрибуции, чтобы оценивать вклад каждого рекламного канала, объединять данные Google Analytics 4 со сторонними сервисами (например, CRM или рекламными инструментами), использовать накопленную статистику в качестве входных значений для прогнозирования будущих показателей (машинное обучение), а также визуализировать полученные данные в Looker Studio и других сервисах.
Умение писать SQL-запросы - один из ключевых навыков при работе с базами данных. Он высоко ценится работодателями при трудоустройстве на позицию аналитика данных. Это те навыки и умения, которые пригодятся вам уже в ближайшем будущем и настоящем, если вы желаете шагать в ногу со временем. В конце концов, если бы это не было так нужно и важно, то и Google не добавлял бы в Google Analytics 4 интеграцию с BigQuery. Ведь, если звезды зажигают — значит — это кому-нибудь нужно? (с)
Gemini в BigQuery
ChatGPT, Gemini, YandexGPT, Grok, Copilot, DeepSeek, чат-боты, нейросети, искусственный интеллект, машинное обучение... Для нас (интернет-маркетологов/веб-аналитиков) все это и вовсе не пустой звук, поскольку мы все время находимся в поиске инструментов, упрощающих выполнение задач и повышающих нашу эффективность.
Кто бы мог представить, что искусственный интеллект так быстро проникнет в BigQuery и откроет перед нами удивительные возможности работы с SQL даже для тех, кто раньше не имел ни малейшего представления о сырых данных и облачном хранилище Google, не знал с чего начать и как подступиться к его изучению? Не имея опыта и соответствующих навыков, интернет-маркетологу было страшно даже открывать Google Cloud, не говоря уже о написании собственного SQL-запроса в BigQuery. Все это казалось фантастическим еще пару лет назад и для меня. А теперь - реальность!
Gemini (чат-бот с искусственным интеллектом от Google) стал доступен в BigQuery в конце 2023 года. Для специалистов по работе с данными, включая инженеров данных, аналитиков данных и администраторов баз данных, он предлагает широкий спектр функций:
исследование и анализ данных с помощью Data insights (помогают выявлять закономерности, оценивать качество данных и выполнять статистический анализ);
поиск данных, преобразование, создание SQL и визуализация данных с помощью Data canvas;
помощь в SQL и Python (помогает с написанием кода, исправлением ошибок, расшифровкой запросов и их описанием);
подготовка данных к анализу (дает контекстно-зависимые рекомендации по преобразованию и улучшению данных таблиц, включая такие операции, как: трансформация, фильтрация, добавление/удаление столбцов и многое другое);
оптимизация инфраструктуры (предлагает рекомендации по секционированию, кластеризации и материализованному представлению с целью повышения производительности и сокращения расходов);
устранение неполадок для бессерверных конвейеров Spark.
Чтобы начать работу с Gemini в BigQuery, необходимо:
На момент написания данного руководства Gemini в BigQuery можно использовать без приобретения лицензии. Однако изначально планировалось, что после 27 января 2025 года он станет платным. Google временно отложил это решение, и в настоящее время покупка не требуется.
После этого в редакторе BigQuery вам станет доступен Gemini:
Начало работы с Gemini в BigQuery
Вы можете написать ему с помощью подсказок на естественном, понятном человеку языке. Или же, если вы где-то нашли код в Интернете, вы можете попросить Gemini доработать его под свой проект:
Пример запроса на естественном языке
Нажав на кнопку Generate, Gemini расшифрует ваш запрос и преобразует его в итоговый SQL:
SQL, сгенерированный Gemini
Полученный SQL можно не копировать, а просто нажать на кнопку INSERT. И тогда он автоматически будет вставлен в ваш редактор BigQuery. Запустите его, чтобы проверить результат выполнения запроса:
Результат выполнения запроса Gemini в BigQuery
Если вы получили не то, что рассчитывали, скорректируйте запрос к Gemini.
Не менее интересный инструмент в BigQuery - Data canvas. Это новый, полностью переосмысленный и основанный на естественном языке интерфейс для изучения, сортировки и визуализации ваших данных. Вся работа с таблицами ведется внутри холста (подобие графического интерфейса). Он чем-то напоминает холст Исследования Google Analytics 4 с возможностью перемещения элементов внутри него, но более продвинутый и умный.
Data canvas
Поиск данных, преобразование, объединение таблиц, создание SQL, визуализация данных - все это можно выполнять внутри холста Data canvas. Не просто работать, но и делиться проектами с другими.
В качестве примера я попросил Gemini найти продажи с идентификаторами каждой покупки (по событию purchaseэлектронной торговли) за 15 февраля 2025 года, написав запрос на естественном языке:
Пример запроса на естественном языке
Первой итераций он мне открыл таблицу с данными Google Analytics 4 за 15 февраля 2025 года. Затем я написал тот же самый запрос, но уже в этой таблице. Gemini сгенерировал мне SQL, который отображал события покупки и идентификаторы транзакций (transaction_id):
Пример работы Gemini в Data canvas
Gemini выполнил все, что от него требовалось. И при этом я не написал ни одной строчки SQL!
Конечно же, это самый простой пример использования Gemini в Data canvas. Но он показателен, потому что сама технология ИИ открывает перед нами большие возможности. Объединение данных таблиц Google Analytics 4 с CRM? Вы могли не знать, как правильно составить запрос и соединить несколько таблиц в одну общую. А теперь за вас это сделает Gemini всего за несколько секунд. Преобразование данных, их перенос в другую таблицу, экспорт, визуализация данных? Gemini справится и с этими задачами. Оптимизация кода, улучшение производительности, снижение расходов - все это заложено в функционал ИИ!
Gemini в BigQuery предоставляет комплексный набор инструментов и возможностей, которые упрощают выполнение множества основных задач, позволяя вам сосредоточиться на более важных вопросах, а не на рутинных операциях.
Даже новичок, без глубоких знаний SQL, но с использованием инструментов искусственного интеллекта, может работать с сырыми данными Google Analytics 4 в BigQuery и уверенно себя чувствовать. Ведь анализ данных для интернет-маркетолога теперь стал проще, понятнее и увлекательнее, чем когда-либо!
И вишенка на торте – визуализация данных. BigQuery легко интегрируется с различными инструментами, такими как Looker Studio, Tableau, Microsoft Power BI, Google Таблицы что позволяет создавать информативные дашборды и отчеты по рекламе, аналитике, клиентам CRM и любым другим данным, которые вы храните в облаке.
Например, Looker Studio имеет множество шаблонов, как готовых решений и предлагаемых Google, так и разработанных сторонними специалистами, что является одним из его значительных преимуществ. Такие шаблоны помогают маркетологам быстро и удобно создавать визуализации без необходимости разрабатывать их с нуля.