Сравнение способов сбора данных Google Analytics в Google BigQuery

 
4.4

Google BigQuery отлично подходит для анализа сырых данных Google Analytics любого объема. Существует два основных способа доставки данных из Google Analytics в Google BigQuery:

  1. BigQuery Export для Google Analytics
  2. Сбор данных с сайта с помощью 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. Вы можете выбрать один из двух вариантов экспорта данных:

  • Экспортировать три промежуточных таблицы с данными за текущий день и одну с данными за предыдущий день. В таблицах содержатся не только отправленные в Google Analytics данные, но и данные из подключенных сервисов, таких как AdWords, DFP, AdSense, AdX.
  • Экспортировать данные каждые 10-15 минут. В этом случае взимаются дополнительные 0.05 $ за 1 Гб данных — около 600 000 хитов Google Analytics (купон на 500 $ покрывает и эти расходы). Промежуточные таблицы с данными из AdWords, DFA, DFP и других интегрированных сервисов экспортируются три раза в день, как и в первом варианте.

При использовании OWOX BI Pipeline данные в Google BigQuery отправляются с сайта отдельными хитами в режиме, приближенном к реальному времени. Благодаря этому данные становятся доступны в Google BigQuery уже через пару минут.

Таблицы с сессионными данными собираются на основе хитовых данных, в течение 12 часов после завершения суток. Окончательные обновленные данные о сессиях за прошедший день становятся доступны в течение 24 часов следующего дня. (более подробно о логике расчетов OWOX BI для сессионных таблиц можно прочесть в нашей документации).

Сбор данных независимо от Google Analytics дает ряд преимуществ:

  1. Данные собираются в Google BigQuery в реальном времени. Это критично если вы используете данные о действиях пользователей на сайте для триггерных рассылок или часто обновляемых дашбордов.
  2. Можно собирать и обрабатывать PII данные, например, email адреса и телефоны клиентов; в Google Analytics отправка PII данных запрещена.
  3. Данные могут собираться на индивидуальном домене, например, stat.youdomain.com в защищенной зоне вашей корпоративной сети.
  4. Можно отправлять более 20 пользовательских параметров в сравнении со стандартной версией Google Analytics.

Уникальное преимущество сбора данных в 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 checking-icon2 checking-icon
clientId   checking-icon
sessionId   checking-icon1
fullVisitorId checking-icon  
visitId checking-icon  
visitStartTime checking-icon  
visitNumber checking-icon checking-icon1
newVisits   checking-icon1
user.phone   checking-icon
user.email   checking-icon
date checking-icon checking-icon
socialEngagementType checking-icon  
totals.visits checking-icon checking-icon1
totals.hits checking-icon checking-icon1
totals.transactions checking-icon checking-icon1
totals.events   checking-icon1
totals.pageviews checking-icon checking-icon1
totals.screenviews checking-icon checking-icon1
totals.transactionRevenue checking-icon  
totals.sessionQualityDim checking-icon  
totals.timeOnSite checking-icon  
totals.bounces checking-icon  
totals.totalTransactionRevenue checking-icon  
totals.newVisits checking-icon  
totals.UniqueScreenViews checking-icon  
totals.timeOnScreen checking-icon  
trafficSource.referralPath checking-icon checking-icon
trafficSource.campaign checking-icon checking-icon
trafficSource.source checking-icon checking-icon
trafficSource.medium checking-icon checking-icon
trafficSource.keyword checking-icon checking-icon
trafficSource.adContent checking-icon checking-icon
trafficSource.campaignCode checking-icon  
trafficSource.gclid checking-icon checking-icon
trafficSource.dclid   checking-icon
trafficSource.isTrueDirect checking-icon  
trafficSource.channelGrouping checking-icon checking-icon1
trafficSource.adCost   checking-icon1
trafficSource.attributedAdCost   checking-icon1
trafficSource.adwordsClickInfo checking-icon  
trafficSource.adwordsClickInfo.customerId checking-icon  
trafficSource.adwordsClickInfo.campaignId checking-icon checking-icon
trafficSource.adwordsClickInfo.adGroupId checking-icon  
trafficSource.adwordsClickInfo.creativeId checking-icon  
trafficSource.adwordsClickInfo.criteriaId checking-icon  
trafficSource.adwordsClickInfo.page checking-icon  
trafficSource.adwordsClickInfo.slot checking-icon  
trafficSource.adwordsClickInfo.criteriaParameters checking-icon  
trafficSource.adwordsClickInfo.gclId checking-icon checking-icon
trafficSource.adwordsClickInfo.adNetworkType checking-icon checking-icon1
trafficSource.adwordsClickInfo.adMatchedQuery   checking-icon1
trafficSource.adwordsClickInfo.isVideoAd checking-icon  
trafficSource.adwordsClickInfo.targetingCriteria checking-icon  
trafficSource.adwordsClickInfo.targetingCriteria.boomUserlistId checking-icon  
geo.id   checking-icon
geoNetwork.country checking-icon checking-icon1
geoNetwork.region checking-icon checking-icon1
geoNetwork.city checking-icon checking-icon1
geoNetwork.cityId checking-icon  
geoNetwork.continent checking-icon  
geoNetwork.subContinent checking-icon  
geoNetwork.metro checking-icon  
geoNetwork.latitude checking-icon  
geoNetwork.longitude checking-icon  
geoNetwork.networkDomain checking-icon  
geoNetwork.networkLocation checking-icon  
device.ip   checking-icon
device.userAgent   checking-icon
device.flashVersion checking-icon checking-icon
device.javaEnabled checking-icon checking-icon
device.language checking-icon checking-icon
device.screenColors checking-icon checking-icon
device.screenResolution checking-icon checking-icon
device.browser checking-icon checking-icon1
device.browserVersion checking-icon checking-icon1
device.browserSize checking-icon  
device.deviceCategory checking-icon checking-icon1
device.operatingSystem checking-icon checking-icon1
device.operatingSystemVersion checking-icon checking-icon1
device.mobileDeviceBranding checking-icon checking-icon1
device.mobileInputSelector checking-icon  
device.mobileDeviceInfo checking-icon  
device.mobileDeviceMarketingName checking-icon  
device.mobileDeviceModel checking-icon  
customDimensions checking-icon  
customDimensions.index checking-icon  
customDimensions.value checking-icon  
hits.hitId   checking-icon
hits.dataSource checking-icon checking-icon
hits.queueTime   checking-icon
hits.hitNumber checking-icon  
hits.type checking-icon checking-icon
hits.time checking-icon checking-icon
hits.hour checking-icon checking-icon
hits.minute checking-icon checking-icon
hits.isEntrance checking-icon checking-icon
hits.isExit checking-icon checking-icon
hits.isSecure checking-icon checking-icon
hits.isInteraction checking-icon checking-icon
hits.referer checking-icon checking-icon
hits.refund checking-icon  
hits.refund.localRefundAmount checking-icon  
hits.refund.refundAmount checking-icon  
hits.experiment.experimentId checking-icon checking-icon
hits.experiment.experimentVariant checking-icon checking-icon
hits.sourcePropertyInfo.sourcePropertyDisplayName checking-icon  
hits.sourcePropertyInfo.sourcePropertyTrackingId checking-icon checking-icon
hits.exceptionInfo.description checking-icon checking-icon
hits.exceptionInfo.isFatal checking-icon checking-icon
hits.eventInfo.eventCategory checking-icon checking-icon
hits.eventInfo.eventAction checking-icon checking-icon
hits.eventInfo.eventLabel checking-icon checking-icon
hits.eventInfo.eventValue checking-icon checking-icon
hits.social.hasSocialSourceReferral checking-icon  
hits.social.socialInteractionAction checking-icon checking-icon
hits.social.socialInteractionNetwork checking-icon checking-icon
hits.social.socialInteractionNetworkAction checking-icon  
hits.social.socialInteractions checking-icon  
hits.social.socialInteractionTarget checking-icon checking-icon
hits.social.socialNetwork checking-icon  
hits.social.uniqueSocialInteractions checking-icon  
hits.appInfo.name checking-icon checking-icon
hits.appInfo.version checking-icon checking-icon
hits.appInfo.id checking-icon checking-icon
hits.appInfo.installerId checking-icon checking-icon
hits.appInfo.screenName checking-icon  
hits.appInfo.landingScreenName checking-icon  
hits.appInfo.exitScreenName checking-icon  
hits.appInfo.screenDepth checking-icon  
hits.promotion.promoCreative checking-icon checking-icon
hits.promotion.promoId checking-icon checking-icon
hits.promotion.promoName checking-icon checking-icon
hits.promotion.promoPosition checking-icon checking-icon
hits.promotionActionInfo checking-icon checking-icon
hits.promotionActionInfo.promoIsView checking-icon  
hits.promotionActionInfo.promoIsClick checking-icon  
hits.page.searchCategory checking-icon  
hits.transaction.transactionId checking-icon checking-icon
hits.transaction.transactionRevenue checking-icon checking-icon
hits.transaction.transactionTax checking-icon checking-icon
hits.transaction.transactionShipping checking-icon checking-icon
hits.transaction.transactionCoupon checking-icon checking-icon
hits.transaction.affiliation checking-icon checking-icon
hits.transaction.currencyCode checking-icon checking-icon
hits.transaction.localTransactionRevenue checking-icon checking-icon1
hits.transaction.localTransactionTax checking-icon checking-icon1
hits.transaction.localTransactionShipping checking-icon checking-icon1
hits.contentInfo.contentDescription checking-icon checking-icon
hits.item.transactionId checking-icon  
hits.item.productName checking-icon  
hits.item.productCategory checking-icon  
hits.item.productSku checking-icon  
hits.item.itemQuantity checking-icon  
hits.item.itemRevenue checking-icon  
hits.item.currencyCode checking-icon  
hits.item.localItemRevenue checking-icon  
hits.customDimensions.index checking-icon checking-icon
hits.customDimensions.value checking-icon checking-icon
hits.customMetrics.index checking-icon checking-icon
hits.customMetrics.value checking-icon checking-icon
hits.contentGroup.contentGroupXX checking-icon checking-icon1
hits.contentGroup.previousContentGroupXX checking-icon  
hits.contentGroup.contentGroupUniqueViewsXX checking-icon  
hits.page.pageType   checking-icon1
hits.page.pagePath checking-icon checking-icon
hits.page.pagePathLevel1 checking-icon  
hits.page.pagePathLevel2 checking-icon  
hits.page.pagePathLevel3 checking-icon  
hits.page.pagePathLevel4 checking-icon  
hits.page.hostname checking-icon checking-icon
hits.page.pageTitle checking-icon checking-icon
hits.page.searchKeyword checking-icon  
hits.product.isImpression checking-icon checking-icon
hits.product.isClick checking-icon  
hits.product.productListName checking-icon checking-icon
hits.product.productSKU checking-icon checking-icon
hits.product.productPrice checking-icon checking-icon
hits.product.productRevenue checking-icon checking-icon
hits.product.productQuantity checking-icon checking-icon
hits.product.productBrand checking-icon checking-icon
hits.product.productVariant checking-icon checking-icon
hits.product.v2ProductCategory checking-icon checking-icon
hits.product.v2ProductName checking-icon checking-icon
hits.product.productListPosition checking-icon checking-icon
hits.product.coupon   checking-icon
hits.product.localProductPrice checking-icon checking-icon1
hits.product.localProductRefundAmount checking-icon  
hits.product.localProductRevenue checking-icon  
hits.product.productRefundAmount checking-icon  
hits.product.customDimensions.index checking-icon checking-icon
hits.product.customDimensions.value checking-icon checking-icon
hits.product.customMetrics.index checking-icon checking-icon
hits.product.customMetrics.value checking-icon checking-icon
hits.eCommerceAction.action_type checking-icon checking-icon
hits.eCommerceAction.option checking-icon checking-icon
hits.eCommerceAction.step checking-icon checking-icon
hits.eCommerceAction.list checking-icon checking-icon
hits.exceptionInfo.exceptions checking-icon  
hits.exceptionInfo.fatalExceptions checking-icon  
hits.customVariables.index checking-icon  
hits.customVariables.customVarName checking-icon  
hits.customVariables.customVarValue checking-icon  
hits.latencyTracking.domainLookupTime checking-icon checking-icon
hits.latencyTracking.domContentLoadedTime checking-icon  
hits.latencyTracking.domInteractiveTime checking-icon checking-icon
hits.latencyTracking.domLatencyMetricsSample checking-icon  
hits.latencyTracking.pageDownloadTime checking-icon checking-icon
hits.latencyTracking.pageLoadSample checking-icon  
hits.latencyTracking.pageLoadTime checking-icon checking-icon
hits.latencyTracking.redirectionTime checking-icon checking-icon
hits.latencyTracking.serverConnectionTime checking-icon checking-icon
hits.latencyTracking.serverResponseTime checking-icon checking-icon
hits.latencyTracking.speedMetricsSample checking-icon  
hits.latencyTracking.userTimingCategory checking-icon  
hits.latencyTracking.userTimingLabel checking-icon  
hits.latencyTracking.userTimingSample checking-icon  
hits.latencyTracking.userTimingValue checking-icon  
hits.latencyTracking.userTimingVariable checking-icon  
hits.publisher.adsenseBackfillDfpClicks checking-icon  
hits.publisher.adsenseBackfillDfpImpressions checking-icon  
hits.publisher.adsenseBackfillDfpMatchedQueries checking-icon  
hits.publisher.adsenseBackfillDfpMeasurableImpressions checking-icon  
hits.publisheradsenseBackfillDfpPagesViewed checking-icon  
hits.publisher.adsenseBackfillDfpQueries checking-icon  
hits.publisher.adsenseBackfillDfpRevenueCpc checking-icon  
hits.publisher.adsenseBackfillDfpRevenueCpm checking-icon  
hits.publisher.adsenseBackfillDfpViewableImpressions checking-icon  
hits.publisher.adxBackfillDfpClicks checking-icon  
hits.publisher.adxBackfillDfpImpressions checking-icon  
hits.publisher.adxBackfillDfpMatchedQueries checking-icon  
hits.publisher.adxBackfillDfpMeasurableImpressions checking-icon  
hits.publisher.adxBackfillDfpPagesViewed checking-icon  
hits.publisher.adxBackfillDfpQueries checking-icon  
hits.publisher.adxBackfillDfpRevenueCpc checking-icon  
hits.publisher.adxBackfillDfpRevenueCpm checking-icon  
hits.publisher.adxBackfillDfpViewableImpressions checking-icon  
hits.publisher.dfpAdGroup checking-icon  
hits.publisher.dfpAdUnits checking-icon  
hits.publisher.dfpClicks checking-icon  
hits.publisher.dfpClickshits.publisher.dfpImpressions checking-icon  
hits.publisher.dfpMatchedQueries checking-icon  
hits.publisher.dfpMeasurableImpressions checking-icon  
hits.publisher.dfpNetworkId checking-icon  
hits.publisher.dfpPagesViewed checking-icon  
hits.publisher.dfpQueries checking-icon  
hits.publisher.dfpRevenueCpc checking-icon  
hits.publisher.dfpRevenueCpm checking-icon  
hits.publisher.dfpViewableImpressions checking-icon  

1— в сессионных таблицах OWOX BI Pipeline;
2— только для ресурсов, в которых используется функция User ID и нет других данных.

Что выбрать?

У каждого из рассмотренных способов есть свои преимущества. По нашему опыту, клиенты Google Analytics 360 часто используют оба варианта одновременно, так как они позволяют решать разные задачи. Но если Google Analytics 360 для вас пока выглядит слишком дорогим, то сбор данных с помощью OWOX BI Pipeline будет отличным способом получить преимущества сбора и анализа несемплированных данных в Google BigQuery уже сейчас.

Вас также могут заинтересовать