Статьи
Сравнение способов сбора данных Google Analytics в Google BigQuery
Google BigQuery отлично подходит для анализа сырых данных Google Analytics любого объема. Существует два основных способа доставки данных из Google Analytics в Google BigQuery:
- BigQuery Export для Google Analytics
- Сбор данных с сайта с помощью OWOX BI Pipeline
В статье мы сравниваем стоимость, особенности сбора и структуры собираемых данных.
1. Стоимость и условия использования
BigQuery Export для Google Analytics доступен только клиентам Google Analytics 360. Если вы используете бесплатную версию Google Analytics, эта возможность для вас недоступна.
Обработка и хранение данных в Google BigQuery оплачиваются отдельно. Размер оплаты зависит от количества обработанных байтов и объема хранящихся данных. Из нашего опыта, для проекта с 1 млн уникальных пользователей в месяц хранение данных обойдется в около 20$. При этом пользователи Google Analytics 360 получают ежемесячный купон на сумму 500$ для оплаты расходов в BigQuery.
OWOX BI Pipeline доступен для всех пользователей Google Analytics, использование Google Analytics 360 не требуется.
Стоимость сбора данных зависит от количества уникальных пользователей в месяц и рассчитать ее можно онлайн. Хранение данных обойдется примерно в ту же сумму, что и при использовании BigQuery Export, так как объем данных практически такой же.
2. Особенности сбора данных
Способы доставки данных в Google BigQuery при экспорте и стриминге OWOX BI отличаются.
При использовании BigQuery Export данные сначала собираются в Google Analytics 360, а затем периодически переносятся в Google BigQuery. Вы можете выбрать один из двух вариантов экспорта данных:
- Данные за день импортируются каждые 8 часов. При каждом импорте данных за один и тот же день происходит их перезапись в таблице. В таблицах содержатся не только отправленные в Google Analytics данные, но и данные из подключенных сервисов, таких как Google Ads, Ad Manager, AdSense.
- Экспортировать данные каждые 10-15 минут. В этом случае взимаются дополнительные 0.05 $ за 1 Гб данных — около 600 000 хитов Google Analytics (купон на 500 $ покрывает и эти расходы). При таком варианте экспорта данные из других рекламных сервисов (Google Ads, Ad Manager, AdSense и т.д) доступны на следующие сутки.
При использовании OWOX BI Pipeline данные в Google BigQuery отправляются с сайта отдельными хитами в режиме, приближенном к реальному времени. Благодаря этому данные становятся доступны в Google BigQuery уже через пару минут.
Таблицы с сессионными данными собираются на основе хитовых данных, в течение 12 часов после завершения суток. Окончательные обновленные данные о сессиях за прошедший день становятся доступны в течение 24 часов следующего дня. (более подробно о логике расчетов OWOX BI для сессионных таблиц можно прочесть в нашей документации).

Сбор данных независимо от Google Analytics дает ряд преимуществ:
- Данные собираются в Google BigQuery в реальном времени. Это критично если вы используете данные о действиях пользователей на сайте для триггерных рассылок или часто обновляемых дашбордов.
- Можно собирать и обрабатывать PII данные, например, email адреса и телефоны клиентов; в Google Analytics отправка PII данных запрещена.
- Данные могут собираться на индивидуальном домене, например, stat.youdomain.com в защищенной зоне вашей корпоративной сети.
- Можно отправлять более 20 пользовательских параметров в сравнении со стандартной версией Google Analytics.
- С помощью дополнительного идентификатора OWOX User ID вы можете отследить пересечение аудиторий любых сайтов, для которых у вас настроены потоки стриминга OWOX BI, даже если сайты не связаны друг с другом прямыми ссылками.
- Для потока OWOX BI максимальный размер обрабатываемых в хите данных составляет 16 КБ. Этот же лимит в Google Analytics 360 составляет 8 КБ.
Уникальное преимущество сбора данных в Google BigQuery с помощью OWOX BI — доступ к информации о расходах на уровне сессии, благодаря полям trafficSource.adCost Расход на рекламную кампанию пропорционально распределяется между сессиями, utm-параметры которых точно совпадают с utm-параметрами самой кампании и trafficSource.AttributedAdCost Расход на данную сессию, который включает в себя trafficSource.adCost и расход на кампании с utm-метками, для которых не зарегистрировано сессий. Всегда больше либо равен trafficSource.adCost .
Данные о расходах необходимы для анализа эффективности рекламных кампаний и расчета таких показателей как ROI, ROAS и CPA.
3. Структура данных
Структуры данных, в которых данные импортируются в Google BigQuery при экспорте и стриминге, очень похожи: 23 RECORD-полей совпадают, 5 являются уникальными для экспорта из Google Analytics, а 2 уникальны для OWOX BI.
Полное описание структуры данных вы можете найти в документации экспорта и OWOX BI. Ниже приведено описание полей, которыми отличаются структуры данных.
Поля структуры данных |
Cтандартный экспорт | OWOX BI |
userId |
![]() |
![]() |
clientId |
![]() |
![]() |
sessionId |
![]() |
|
fullVisitorId |
![]() |
|
visitId |
![]() |
|
visitStartTime |
![]() |
|
visitNumber |
![]() |
![]() |
newVisits |
![]() |
|
user. |
![]() |
|
user.phone |
![]() |
|
user.email |
![]() |
|
user.owoxId |
![]() |
|
date |
![]() |
![]() |
socialEngagementType |
![]() |
|
totals |
![]() |
![]() |
totals.visits |
![]() |
![]() |
totals.hits |
![]() |
![]() |
totals.transactions |
![]() |
![]() |
totals.events |
![]() |
![]() |
totals.pageviews |
![]() |
![]() |
totals.screenviews |
![]() |
![]() |
totals.transactionRevenue |
![]() |
|
totals.sessionQualityDim |
![]() |
|
totals.timeOnSite |
![]() |
|
totals.bounces |
![]() |
|
totals.totalTransactionRevenue |
![]() |
|
totals.newVisits |
![]() |
|
totals.UniqueScreenViews |
![]() |
|
totals.timeOnScreen |
![]() |
|
totals.isInteraction |
![]() |
|
totalsStreaming |
![]() |
|
totalsStreaming.hits |
![]() |
|
totalsStreaming.events |
![]() |
|
totalsStreaming.transactions |
![]() |
|
totalsStreaming.pageviews |
![]() |
|
totalsStreaming.screenviews |
![]() |
|
totalsStreaming.isInteraction |
![]() |
|
trafficSource |
![]() |
![]() |
trafficSource.adGroup |
![]() |
|
trafficSource.keywordMatchType |
![]() |
|
trafficSource.referralPath |
![]() |
![]() |
trafficSource.campaign |
![]() |
![]() |
trafficSource.source |
![]() |
![]() |
trafficSource.medium |
![]() |
![]() |
trafficSource.keyword |
![]() |
![]() |
trafficSource.adContent |
![]() |
![]() |
trafficSource.campaignCode |
![]() |
|
trafficSource.gclid |
![]() |
|
trafficSource.dclid |
![]() |
|
trafficSource.isTrueDirect |
![]() |
![]() |
trafficSource.channelGrouping |
![]() |
![]() |
trafficSource.adCost |
![]() |
|
trafficSource.attributedAdCost |
![]() |
|
trafficSource.adwordsClickInfo |
![]() |
|
trafficSource.adwordsClickInfo.customerId |
![]() |
|
trafficSource.adwordsClickInfo.campaignId |
![]() |
|
trafficSource.adwordsClickInfo.adGroupId |
![]() |
|
trafficSource.adwordsClickInfo.creativeId |
![]() |
|
trafficSource.adwordsClickInfo.criteriaId |
![]() |
|
trafficSource.adwordsClickInfo.page |
![]() |
|
trafficSource.adwordsClickInfo.slot |
![]() |
|
trafficSource.adwordsClickInfo.criteriaParameters |
![]() |
|
trafficSource.adwordsClickInfo.gclId |
![]() |
|
trafficSource.adwordsClickInfo.adNetworkType |
![]() |
![]() |
trafficSource.adwordsClickInfo.adMatchedQuery |
![]() |
|
trafficSource.adwordsClickInfo.isVideoAd |
![]() |
|
trafficSource.adwordsClickInfo.targetingCriteria |
![]() |
|
trafficSource.adwordsClickInfo.targetingCriteria.boomUserlistId |
![]() |
|
geo |
![]() |
|
geo.id |
![]() |
|
geoNetwork |
![]() |
|
geoNetwork.country |
![]() |
![]() |
geoNetwork.region |
![]() |
![]() |
geoNetwork.city |
![]() |
![]() |
geoNetwork.cityId |
![]() |
|
geoNetwork.continent |
![]() |
|
geoNetwork.subContinent |
![]() |
|
geoNetwork.metro |
![]() |
|
geoNetwork.latitude |
![]() |
![]() |
geoNetwork.longitude |
![]() |
![]() |
geoNetwork.networkDomain |
![]() |
|
geoNetwork.networkLocation |
![]() |
|
device |
![]() |
![]() |
device.ip |
![]() |
|
device.userAgent |
![]() |
|
device.flashVersion |
![]() |
|
device.javaEnabled |
![]() |
|
device.language |
![]() |
![]() |
device.screenColors |
![]() |
|
device.screenResolution |
![]() |
|
device.browser |
![]() |
![]() |
device.browserVersion |
![]() |
![]() |
device.browserSize |
![]() |
|
device.deviceCategory |
![]() |
![]() |
device.operatingSystem |
![]() |
![]() |
device.operatingSystemVersion |
![]() |
![]() |
device.mobileDeviceBranding |
![]() |
|
device.mobileInputSelector |
![]() |
|
device.mobileDeviceInfo |
![]() |
![]() |
device.mobileDeviceMarketingName |
![]() |
|
device.mobileDeviceModel |
![]() |
|
customDimensions |
![]() |
![]() |
customDimensions.index |
![]() |
![]() |
customDimensions.value |
![]() |
![]() |
hits |
![]() |
![]() |
hits.hitId |
![]() |
|
hits.dataSource |
![]() |
![]() |
hits.device |
![]() |
|
hits.device.ip |
![]() |
|
hits.device.userAgent |
![]() |
|
hits.device.flashVersion |
![]() |
|
hits.device.javaEnabled |
![]() |
|
hits.device.language |
![]() |
|
hits.device.screenColors |
![]() |
|
hits.device.screenResolution |
![]() |
|
hits.geo |
![]() |
|
hits.geo.id |
![]() |
|
hits.customGroups |
![]() |
|
hits.customGroups.index |
![]() |
|
hits.customGroups.value |
![]() |
|
hits.contentGroups |
![]() |
![]() |
hits.contentGroups.index |
![]() |
|
hits.contentGroups.value |
![]() |
|
hits.hitNumber |
![]() |
|
hits.type |
![]() |
![]() |
hits.time |
![]() |
![]() |
hits.timestamp |
![]() |
|
hits.queueTime |
![]() |
|
hits.currency |
![]() |
|
hits.referralPath |
![]() |
|
hits.hour |
![]() |
![]() |
hits.minute |
![]() |
![]() |
hits.isEntrance |
![]() |
![]() |
hits.isExit |
![]() |
![]() |
hits.isSecure |
![]() |
![]() |
hits.isInteraction |
![]() |
![]() |
hits.referer |
![]() |
![]() |
hits.pagePath |
![]() |
|
hits.pageType |
![]() |
|
hits.eCommerceActionType |
![]() |
|
hits.refund |
![]() |
|
hits.refund.localRefundAmount |
![]() |
|
hits.refund.refundAmount |
![]() |
|
hits.experiment |
![]() |
|
hits.experiment.experimentId |
![]() |
![]() |
hits.experiment.experimentVariant |
![]() |
![]() |
hits.sourcePropertyInfo |
![]() |
|
hits.sourcePropertyInfo.sourcePropertyDisplayName |
![]() |
|
hits.sourcePropertyInfo.sourcePropertyTrackingId |
![]() |
|
hits.exceptionInfo.description |
![]() |
![]() |
hits.exceptionInfo.isFatal |
![]() |
![]() |
hits.eventInfo |
![]() |
![]() |
hits.eventInfo.eventCategory |
![]() |
![]() |
hits.eventInfo.eventAction |
![]() |
![]() |
hits.eventInfo.eventLabel |
![]() |
![]() |
hits.eventInfo.eventValue |
![]() |
![]() |
hits |
![]() |
|
hits.social |
![]() |
![]() |
hits.social.hasSocialSourceReferral |
![]() |
|
hits.social.socialInteractionAction |
![]() |
![]() |
hits.social.socialInteractionNetwork |
![]() |
![]() |
hits.social.socialInteractionNetworkAction |
![]() |
|
hits.social.socialInteractions |
![]() |
|
hits.social.socialInteractionTarget |
![]() |
![]() |
hits.social.socialNetwork |
![]() |
|
hits.social.uniqueSocialInteractions |
![]() |
|
hits.appInfo |
![]() |
![]() |
hits.appInfo.name |
![]() |
![]() |
hits.appInfo.version |
![]() |
![]() |
hits.appInfo.id |
![]() |
![]() |
hits.appInfo.installerId |
![]() |
![]() |
hits.appInfo.screenName |
![]() |
|
hits.appInfo.landingScreenName |
![]() |
|
hits.appInfo.exitScreenName |
![]() |
|
hits.appInfo.screenDepth |
![]() |
|
hits.promotion |
![]() |
![]() |
hits.promotion.promoCreative |
![]() |
![]() |
hits.promotion.promoId |
![]() |
![]() |
hits.promotion.promoName |
![]() |
![]() |
hits.promotion.promoPosition |
![]() |
![]() |
hits.promotionActionInfo |
![]() |
|
hits.promotionActionInfo.promoIsView |
![]() |
|
hits.promotionActionInfo.promoIsClick |
![]() |
|
hits.page |
![]() |
![]() |
hits.page.searchCategory |
![]() |
|
hits.transaction |
![]() |
![]() |
hits.transaction.transactionId |
![]() |
![]() |
hits.transaction.transactionRevenue |
![]() |
![]() |
hits.transaction.transactionTax |
![]() |
![]() |
hits.transaction.transactionShipping |
![]() |
![]() |
hits.transaction.transactionCoupon |
![]() |
![]() |
hits.transaction.affiliation |
![]() |
![]() |
hits.transaction.currencyCode |
![]() |
|
hits.transaction.localTransactionRevenue |
![]() |
![]() |
hits.transaction.localTransactionTax |
![]() |
![]() |
hits.transaction.localTransactionShipping |
![]() |
![]() |
hits.contentInfo |
![]() |
![]() |
hits.contentInfo.contentDescription |
![]() |
![]() |
hits.item |
![]() |
|
hits.item.transactionId |
![]() |
|
hits.item.productName |
![]() |
|
hits.item.productCategory |
![]() |
|
hits.item.productSku |
![]() |
|
hits.item.itemQuantity |
![]() |
|
hits.item.itemRevenue |
![]() |
|
hits.item.currencyCode |
![]() |
|
hits.item.localItemRevenue |
![]() |
|
hits.customDimensions |
![]() |
![]() |
hits.customDimensions.index |
![]() |
![]() |
hits.customDimensions.value |
![]() |
![]() |
hits.customMetrics |
![]() |
![]() |
hits.customMetrics.index |
![]() |
![]() |
hits.customMetrics.value |
![]() |
![]() |
hits.contentGroup.contentGroupX |
![]() |
|
hits.contentGroup.previousContentGroupX |
![]() |
|
hits.contentGroup.contentGroupUniqueViewsX |
![]() |
|
hits.page.pageType |
![]() |
|
hits.page.pagePath |
![]() |
![]() |
hits.page.pagePathLevel1 |
![]() |
|
hits.page.pagePathLevel2 |
![]() |
|
hits.page.pagePathLevel3 |
![]() |
|
hits.page.pagePathLevel4 |
![]() |
|
hits.page.hostname |
![]() |
![]() |
hits.page.pageTitle |
![]() |
![]() |
hits.page.searchKeyword |
![]() |
|
hits.product |
![]() |
![]() |
hits.product.isImpression |
![]() |
![]() |
hits.product.isClick |
![]() |
|
hits.product.impressionList |
![]() |
|
hits.product.productListName |
![]() |
![]() |
hits.product.productSKU |
![]() |
![]() |
hits.product.productPrice |
![]() |
![]() |
hits.product.productRevenue |
![]() |
|
hits.product.productQuantity |
![]() |
![]() |
hits.product.productBrand |
![]() |
![]() |
hits.product.productVariant |
![]() |
![]() |
hits.product.v2ProductCategory |
![]() |
|
hits.product.v2ProductName |
![]() |
|
hits.product.productListPosition |
![]() |
|
hits.product.productCategory |
![]() |
|
hits.product.productName |
![]() |
|
hits.product.position |
![]() |
|
hits.product.coupon |
![]() |
|
hits.product.localProductPrice |
![]() |
![]() |
hits.product.localProductRefundAmount |
![]() |
|
hits.product.localProductRevenue |
![]() |
|
hits.product.productRefundAmount |
![]() |
|
hits.product.customDimensions |
![]() |
![]() |
hits.product.customDimensions.index |
![]() |
![]() |
hits.product.customDimensions.value |
![]() |
![]() |
hits.product.customMetrics |
![]() |
![]() |
hits.product.customMetrics.index |
![]() |
![]() |
hits.product.customMetrics.value |
![]() |
![]() |
hits.eCommerceAction |
![]() |
![]() |
hits.eCommerceAction.action_type |
![]() |
![]() |
hits.eCommerceAction.option |
![]() |
![]() |
hits.eCommerceAction.step |
![]() |
![]() |
hits.eCommerceAction.list |
![]() |
|
hits.exceptionInfo |
![]() |
![]() |
hits.exceptionInfo.exceptions |
![]() |
|
hits.exceptionInfo.fatalExceptions |
![]() |
|
hits.customVariables |
![]() |
|
hits.customVariables.index |
![]() |
|
hits.customVariables.customVarName |
![]() |
|
hits.customVariables.customVarValue |
![]() |
|
hits.latencyTracking |
![]() |
|
hits.latencyTracking.domainLookupTime |
![]() |
|
hits.latencyTracking.domContentLoadedTime |
![]() |
|
hits.latencyTracking.domInteractiveTime |
![]() |
|
hits.latencyTracking.domLatencyMetricsSample |
![]() |
|
hits.latencyTracking.pageDownloadTime |
![]() |
|
hits.latencyTracking.pageLoadSample |
![]() |
|
hits.latencyTracking.pageLoadTime |
![]() |
|
hits.latencyTracking.redirectionTime |
![]() |
|
hits.latencyTracking.serverConnectionTime |
![]() |
|
hits.latencyTracking.serverResponseTime |
![]() |
|
hits.latencyTracking.speedMetricsSample |
![]() |
|
hits.latencyTracking.userTimingCategory |
![]() |
|
hits.latencyTracking.userTimingLabel |
![]() |
|
hits.latencyTracking.userTimingSample |
![]() |
|
hits.latencyTracking.userTimingValue |
![]() |
|
hits.latencyTracking.userTimingVariable |
![]() |
|
hits.publisher.adsenseBackfillDfpClicks |
![]() |
|
hits.publisher.adsenseBackfillDfpImpressions |
![]() |
|
hits.publisher.adsenseBackfillDfpMatchedQueries |
![]() |
|
hits.publisher.adsenseBackfillDfpMeasurableImpressions |
![]() |
|
hits.publisheradsenseBackfillDfpPagesViewed |
![]() |
|
hits.publisher.adsenseBackfillDfpQueries |
![]() |
|
hits.publisher.adsenseBackfillDfpRevenueCpc |
![]() |
|
hits.publisher.adsenseBackfillDfpRevenueCpm |
![]() |
|
hits.publisher.adsenseBackfillDfpViewableImpressions |
![]() |
|
hits.publisher.adxBackfillDfpClicks |
![]() |
|
hits.publisher.adxBackfillDfpImpressions |
![]() |
|
hits.publisher.adxBackfillDfpMatchedQueries |
![]() |
|
hits.publisher.adxBackfillDfpMeasurableImpressions |
![]() |
|
hits.publisher.adxBackfillDfpPagesViewed |
![]() |
|
hits.publisher.adxBackfillDfpQueries |
![]() |
|
hits.publisher.adxBackfillDfpRevenueCpc |
![]() |
|
hits.publisher.adxBackfillDfpRevenueCpm |
![]() |
|
hits.publisher.adxBackfillDfpViewableImpressions |
![]() |
|
hits.publisher.dfpAdGroup |
![]() |
|
hits.publisher.dfpAdUnits |
![]() |
|
hits.publisher.dfpClicks |
![]() |
|
hits.publisher.dfpClickshits.publisher.dfpImpressions |
![]() |
|
hits.publisher.dfpMatchedQueries |
![]() |
|
hits.publisher.dfpMeasurableImpressions |
![]() |
|
hits.publisher.dfpNetworkId |
![]() |
|
hits.publisher.dfpPagesViewed |
![]() |
|
hits.publisher.dfpQueries |
![]() |
|
hits.publisher.dfpRevenueCpc |
![]() |
|
hits.publisher.dfpRevenueCpm |
![]() |
|
hits.publisher.dfpViewableImpressions |
![]() |
|
hits.timingInfo |
![]() |
|
hits.timingInfo.timingCategory |
![]() |
|
hits.timingInfo.timingVariable |
![]() |
|
hits.timingInfo.timingLabel |
![]() |
|
hits.timingInfo.timingValue |
![]() |
|
hits.timingInfo.pageLoad |
![]() |
|
hits.timingInfo.DNS |
![]() |
|
hits.timingInfo.pageDownload |
![]() |
|
hits.timingInfo.redirectResponse |
![]() |
|
hits.timingInfo.TCPConnect |
![]() |
|
hits.timingInfo.serverResponse |
![]() |
|
hits.timingInfo.DOMInteractive |
![]() |
|
hits.timingInfo.contentLoad |
![]() |
1— в сессионных таблицах OWOX BI Pipeline;
2— только для ресурсов, в которых используется функция User ID и нет других данных.
Что выбрать?
У каждого из рассмотренных способов есть свои преимущества. По нашему опыту, клиенты Google Analytics 360 часто используют оба варианта одновременно, так как они позволяют решать разные задачи. Но если Google Analytics 360 для вас пока выглядит слишком дорогим, то сбор данных с помощью OWOX BI Pipeline будет отличным способом получить преимущества сбора и анализа несемплированных данных в Google BigQuery уже сейчас.