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

13
2462

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 checking-icon
sessionId   checking-icon1
fullVisitorId checking-icon  
visitId checking-icon  
visitStartTime checking-icon  
visitNumber checking-icon checking-icon
newVisits   checking-icon1
user.   checking-icon
user.phone   checking-icon
user.email   checking-icon
user.owoxId   checking-icon
date checking-icon checking-icon
socialEngagementType checking-icon  
totals checking-icon checking-icon1
totals.visits checking-icon checking-icon
totals.hits checking-icon checking-icon
totals.transactions checking-icon checking-icon
totals.events checking-icon 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  
totals.isInteraction   checking-icon1
totalsStreaming   checking-icon1
totalsStreaming.hits   checking-icon1
totalsStreaming.events   checking-icon1
totalsStreaming.transactions   checking-icon1
totalsStreaming.pageviews   checking-icon1
totalsStreaming.screenviews   checking-icon1
totalsStreaming.isInteraction   checking-icon1
trafficSource checking-icon checking-icon
trafficSource.adGroup   checking-icon1
trafficSource.keywordMatchType   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-icon1
trafficSource.dclid   checking-icon1
trafficSource.isTrueDirect checking-icon checking-icon
trafficSource.channelGrouping checking-icon checking-icon
trafficSource.adCost   checking-icon1
trafficSource.attributedAdCost   checking-icon1
trafficSource.adwordsClickInfo checking-icon  
trafficSource.adwordsClickInfo.customerId checking-icon  
trafficSource.adwordsClickInfo.campaignId 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  
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   checking-icon
geo.id   checking-icon
geoNetwork checking-icon  
geoNetwork.country checking-icon checking-icon
geoNetwork.region checking-icon checking-icon
geoNetwork.city checking-icon checking-icon
geoNetwork.cityId checking-icon  
geoNetwork.continent checking-icon  
geoNetwork.subContinent checking-icon  
geoNetwork.metro checking-icon  
geoNetwork.latitude checking-icon checking-icon
geoNetwork.longitude checking-icon checking-icon
geoNetwork.networkDomain checking-icon  
geoNetwork.networkLocation checking-icon  
device checking-icon checking-icon
device.ip   checking-icon1
device.userAgent   checking-icon1
device.flashVersion checking-icon  
device.javaEnabled checking-icon  
device.language checking-icon checking-icon
device.screenColors checking-icon  
device.screenResolution checking-icon  
device.browser checking-icon checking-icon
device.browserVersion checking-icon checking-icon
device.browserSize checking-icon  
device.deviceCategory checking-icon checking-icon
device.operatingSystem checking-icon checking-icon
device.operatingSystemVersion checking-icon checking-icon
device.mobileDeviceBranding checking-icon  
device.mobileInputSelector checking-icon  
device.mobileDeviceInfo checking-icon checking-icon
device.mobileDeviceMarketingName checking-icon  
device.mobileDeviceModel checking-icon  
customDimensions checking-icon checking-icon
customDimensions.index checking-icon checking-icon
customDimensions.value checking-icon checking-icon
hits checking-icon checking-icon
hits.hitId   checking-icon1
hits.dataSource checking-icon checking-icon
hits.device   checking-icon
hits.device.ip   checking-icon
hits.device.userAgent   checking-icon
hits.device.flashVersion   checking-icon
hits.device.javaEnabled   checking-icon
hits.device.language   checking-icon
hits.device.screenColors   checking-icon
hits.device.screenResolution   checking-icon
hits.geo   checking-icon
hits.geo.id   checking-icon
hits.customGroups   checking-icon
hits.customGroups.index   checking-icon
hits.customGroups.value   checking-icon
hits.contentGroups checking-icon checking-icon
hits.contentGroups.index   checking-icon
hits.contentGroups.value   checking-icon
hits.hitNumber checking-icon  
hits.type checking-icon checking-icon
hits.time checking-icon checking-icon
hits.timestamp   checking-icon1
hits.queueTime   checking-icon1
hits.currency   checking-icon1
hits.referralPath   checking-icon1
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.pagePath   checking-icon1
hits.pageType   checking-icon1
hits.eCommerceActionType   checking-icon1
hits.refund checking-icon  
hits.refund.localRefundAmount checking-icon  
hits.refund.refundAmount checking-icon  
hits.experiment   checking-icon
hits.experiment.experimentId checking-icon checking-icon
hits.experiment.experimentVariant checking-icon checking-icon
hits.sourcePropertyInfo checking-icon  
hits.sourcePropertyInfo.sourcePropertyDisplayName checking-icon  
hits.sourcePropertyInfo.sourcePropertyTrackingId checking-icon  
hits.exceptionInfo.description checking-icon checking-icon
hits.exceptionInfo.isFatal checking-icon checking-icon
hits.eventInfo 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 checking-icon  
hits.social 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 checking-icon 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 checking-icon 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  
hits.promotionActionInfo.promoIsView checking-icon  
hits.promotionActionInfo.promoIsClick checking-icon  
hits.page checking-icon checking-icon
hits.page.searchCategory checking-icon  
hits.transaction checking-icon 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  
hits.transaction.localTransactionRevenue checking-icon checking-icon
hits.transaction.localTransactionTax checking-icon checking-icon
hits.transaction.localTransactionShipping checking-icon checking-icon
hits.contentInfo checking-icon checking-icon
hits.contentInfo.contentDescription checking-icon checking-icon
hits.item 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 checking-icon checking-icon
hits.customDimensions.index checking-icon checking-icon
hits.customDimensions.value checking-icon checking-icon
hits.customMetrics checking-icon checking-icon
hits.customMetrics.index checking-icon checking-icon
hits.customMetrics.value checking-icon checking-icon
hits.contentGroup.contentGroupX checking-icon  
hits.contentGroup.previousContentGroupX checking-icon  
hits.contentGroup.contentGroupUniqueViewsX checking-icon  
hits.page.pageType checking-icon  
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 checking-icon checking-icon
hits.product.isImpression checking-icon checking-icon
hits.product.isClick checking-icon  
hits.product.impressionList   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  
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  
hits.product.v2ProductName checking-icon  
hits.product.productListPosition checking-icon  
hits.product.productCategory   checking-icon
hits.product.productName   checking-icon
hits.product.position   checking-icon
hits.product.coupon   checking-icon
hits.product.localProductPrice checking-icon checking-icon
hits.product.localProductRefundAmount checking-icon  
hits.product.localProductRevenue checking-icon  
hits.product.productRefundAmount checking-icon  
hits.product.customDimensions checking-icon checking-icon
hits.product.customDimensions.index checking-icon checking-icon
hits.product.customDimensions.value checking-icon checking-icon
hits.product.customMetrics checking-icon checking-icon
hits.product.customMetrics.index checking-icon checking-icon
hits.product.customMetrics.value checking-icon checking-icon
hits.eCommerceAction 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
hits.exceptionInfo checking-icon checking-icon
hits.exceptionInfo.exceptions checking-icon  
hits.exceptionInfo.fatalExceptions checking-icon  
hits.customVariables checking-icon  
hits.customVariables.index checking-icon  
hits.customVariables.customVarName checking-icon  
hits.customVariables.customVarValue checking-icon  
hits.latencyTracking checking-icon  
hits.latencyTracking.domainLookupTime checking-icon  
hits.latencyTracking.domContentLoadedTime checking-icon  
hits.latencyTracking.domInteractiveTime checking-icon  
hits.latencyTracking.domLatencyMetricsSample checking-icon  
hits.latencyTracking.pageDownloadTime checking-icon  
hits.latencyTracking.pageLoadSample checking-icon  
hits.latencyTracking.pageLoadTime checking-icon  
hits.latencyTracking.redirectionTime checking-icon  
hits.latencyTracking.serverConnectionTime checking-icon  
hits.latencyTracking.serverResponseTime 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  
hits.timingInfo   checking-icon
hits.timingInfo.timingCategory   checking-icon
hits.timingInfo.timingVariable   checking-icon
hits.timingInfo.timingLabel   checking-icon
hits.timingInfo.timingValue   checking-icon
hits.timingInfo.pageLoad   checking-icon
hits.timingInfo.DNS   checking-icon
hits.timingInfo.pageDownload   checking-icon
hits.timingInfo.redirectResponse   checking-icon
hits.timingInfo.TCPConnect   checking-icon
hits.timingInfo.serverResponse   checking-icon
hits.timingInfo.DOMInteractive   checking-icon
hits.timingInfo.contentLoad   checking-icon

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

Что выбрать?

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

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

    Нам доверяют

    Online Tours

    Лучший технологический партнер

    OWOX стал одним из немногих исключений, когда мы доверились партнерам, вместо разработки всего своими силами. Для нас OWOX — не агентство, а технологический партнер, который вывел нашу аналитику на новый уровень и показал как решать бизнес задачи, о которых мы могли только мечтать. Благодаря OWOX мы улучшили эффективность продаж, увеличили ROI рекламных кампаний, настроили онлайн мерчандайзинг и узнали многое о поведении пользователей. Мы очень благодарны OWOX за экспертизу, которой они с нами поделились и качественную поддержку.