<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Google Analytics Archives - Reflective Data</title>
	<atom:link href="https://reflectivedata.com/category/google-analytics/feed/" rel="self" type="application/rss+xml" />
	<link>https://reflectivedata.com/category/google-analytics/</link>
	<description></description>
	<lastBuildDate>Tue, 03 Feb 2026 10:13:47 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://reflectivedata.com/wp-content/uploads/2016/09/cropped-new-favicon-2-32x32.png</url>
	<title>Google Analytics Archives - Reflective Data</title>
	<link>https://reflectivedata.com/category/google-analytics/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Optimal GA4 Setup For High-Traffic Websites and Apps in 2025</title>
		<link>https://reflectivedata.com/optimal-ga4-setup-for-high-traffic-websites-and-apps-in-2024/</link>
					<comments>https://reflectivedata.com/optimal-ga4-setup-for-high-traffic-websites-and-apps-in-2024/#respond</comments>
		
		<dc:creator><![CDATA[Jason Dolan]]></dc:creator>
		<pubDate>Tue, 19 Nov 2024 09:29:30 +0000</pubDate>
				<category><![CDATA[BigQuery]]></category>
		<category><![CDATA[GA4]]></category>
		<category><![CDATA[GDPR]]></category>
		<category><![CDATA[Google Analytics]]></category>
		<guid isPermaLink="false">https://reflectivedata.com/?p=33091</guid>

					<description><![CDATA[<p>Collecting close to or above 1 million events per day? Then you've probably realized that using the free version of GA4 you're hitting several limitations around sampling and raw data export.</p>
<p>In this article, we're going to explain some of the approaches you should be taking to make sure you get the most out of your valuable data without losing any of the valuable insights. Oh, and without having to upgrade to GA360.</p>
<p>The post <a href="https://reflectivedata.com/optimal-ga4-setup-for-high-traffic-websites-and-apps-in-2024/">Optimal GA4 Setup For High-Traffic Websites and Apps in 2025</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Collecting close to or above 1 million events per day? Then you&#8217;ve probably realized that using the free version of GA4 you&#8217;re hitting several limitations around sampling and raw data export.</p>
<p>In this article, we&#8217;re going to explain some of the approaches you should be taking to make sure you get the most out of your valuable data without losing any of the valuable insights. Oh, and without having to upgrade to GA360.</p>
<h2>Common problems with GA4 for high-traffic websites and apps</h2>
<h3>1. Quota Limits and Sampling</h3>
<ul>
<li><strong>Issue:</strong> GA4 has quotas for API calls, data collection, and BigQuery exports. For high-traffic sites, these limits can be exceeded, leading to incomplete or delayed data.</li>
<li><strong>Symptoms:</strong>
<ul>
<li>Delayed or partial data in reports.</li>
<li>Data sampling in the interface or when querying large datasets.</li>
<li>Only partial data is exported to BigQuery every day</li>
</ul>
</li>
</ul>
<p><a  href="https://reflectivedata.com/wp-content/uploads/2024/11/Screenshot-2024-11-19-at-10.56.22.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img fetchpriority="high" decoding="async" class="aligncenter size-full wp-image-33282" src="https://reflectivedata.com/wp-content/uploads/2024/11/Screenshot-2024-11-19-at-10.56.22.png" alt="GA4 showing limited data" width="694" height="268" /></a></p>
<h3>2. Latency in Data Processing</h3>
<ul>
<li><strong>Issue:</strong> High traffic volumes can lead to delays in GA4 processing, resulting in longer wait times for data to appear in reports.</li>
<li><strong>Symptoms</strong>:
<ul>
<li>Real-time reports lagging or missing data.</li>
<li>Delays in standard report updates.</li>
</ul>
</li>
</ul>
<h3>3. Data Thresholding</h3>
<ul>
<li><strong>Issue:</strong> GA4 applies data thresholding for reports that include user identifiers or demographic data, especially when dealing with large volumes of traffic.</li>
<li><strong>Symptoms:</strong>
<ul>
<li>Reports showing incomplete or aggregated data.</li>
<li>Warning messages about thresholding.</li>
</ul>
</li>
</ul>
<p><a  href="https://reflectivedata.com/wp-content/uploads/2024/11/Screenshot-2024-11-19-at-11.01.47-1.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img decoding="async" class="aligncenter wp-image-33302 size-full" src="https://reflectivedata.com/wp-content/uploads/2024/11/Screenshot-2024-11-19-at-11.01.47-1.png" alt="GA4 showing data as (not set)" width="1859" height="774" srcset="https://reflectivedata.com/wp-content/uploads/2024/11/Screenshot-2024-11-19-at-11.01.47-1.png 1859w, https://reflectivedata.com/wp-content/uploads/2024/11/Screenshot-2024-11-19-at-11.01.47-1-700x291.png 700w, https://reflectivedata.com/wp-content/uploads/2024/11/Screenshot-2024-11-19-at-11.01.47-1-1024x426.png 1024w, https://reflectivedata.com/wp-content/uploads/2024/11/Screenshot-2024-11-19-at-11.01.47-1-768x320.png 768w, https://reflectivedata.com/wp-content/uploads/2024/11/Screenshot-2024-11-19-at-11.01.47-1-1536x640.png 1536w" sizes="(max-width: 1859px) 100vw, 1859px" /></a></p>
<h3>4. Event Limitations</h3>
<ul>
<li><strong>Issue:</strong> GA4 has a limit of 500 distinct event names per property. High-traffic sites often generate a large variety of events, which can exceed this limit.</li>
<li><strong>Symptoms:</strong>
<ul>
<li>Events not being logged or missing in reports.</li>
</ul>
</li>
</ul>
<h3>5. Data Retention Settings</h3>
<ul>
<li><strong>Issue:</strong> GA4 defaults to a data retention period of 2 or 14 months for detailed user data, which can be insufficient for long-term analysis.</li>
<li><strong>Symptoms:</strong>
<ul>
<li>Historical data is no longer accessible in GA4 after the retention period.</li>
</ul>
</li>
</ul>
<p><a  href="https://reflectivedata.com/wp-content/uploads/2024/11/Screenshot-2024-11-19-at-11.04.03.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img decoding="async" class="aligncenter size-full wp-image-33285" src="https://reflectivedata.com/wp-content/uploads/2024/11/Screenshot-2024-11-19-at-11.04.03.png" alt="GA4 data retention limits" width="371" height="224" /></a></p>
<h3>6. Overwhelming Volume of Custom Dimensions/Parameters</h3>
<ul>
<li><strong>Issue:</strong> GA4 allows up to 50 custom dimensions per property. High-traffic apps often push this limit, causing issues with tracking extra custom data.</li>
<li><strong>Symptoms:</strong>
<ul>
<li>Missing or dropped dimensions in reports.</li>
</ul>
</li>
</ul>
<h3>7. Cross-Platform and Cross-Domain Tracking</h3>
<ul>
<li><strong>Issue:</strong> High-traffic businesses with complex setups (e.g., mobile app + website) may face difficulties implementing seamless cross-platform tracking.</li>
<li><strong>Symptoms:</strong>
<ul>
<li>Duplicate or fragmented user sessions across platforms.</li>
</ul>
</li>
</ul>
<h3>8. Debugging and Testing Challenges</h3>
<ul>
<li><strong>Issue:</strong> High traffic can make it difficult to test changes without impacting production data.</li>
<li><strong>Symptoms:</strong>
<ul>
<li>Errors in tracking configurations affecting a large user base.</li>
</ul>
</li>
</ul>
<h3>9. Increased Cost for BigQuery Analysis</h3>
<ul>
<li><strong>Issue:</strong> Exporting large volumes of data to BigQuery can result in significant costs, especially when running frequent or complex queries.</li>
<li><strong>Symptoms:</strong>
<ul>
<li>Unexpectedly high cloud bills for BigQuery.</li>
</ul>
</li>
</ul>
<h3>10. User Privacy and Compliance Challenges</h3>
<ul>
<li><strong>Issue:</strong> High-traffic businesses are more likely to face scrutiny regarding GDPR, CCPA, and other privacy laws.</li>
<li><strong>Symptoms:</strong>
<ul>
<li>Compliance risks due to insufficient data anonymization or consent management.</li>
</ul>
</li>
</ul>
<p>If any of the issues mentioned above sounds familiar, continue reading as there are solutions to all of them.</p>
<h2>How to tackle common issues with GA4 for high-traffic websites and apps</h2>
<p>As companies start hitting the limits in the free version of GA4, oftentimes they consider upgrading to GA360. True, it will solve some of the issues like offering a higher number of daily exported events to BigQuery, more custom event parameters, dimensions etc. but eventually, you may end up hitting those, too. Besides, upgrading to 360 doesn&#8217;t solve some of the issues around GDPR, and data sampling can still be an issue. Not to mention the cost&#8230;</p>
<p>The solution we are discussing in this article is known as Parallel Tracking.</p>
<p>In short, here&#8217;s how Parallel Tracking for GA4 works.</p>
<p><a  href="https://reflectivedata.com/wp-content/uploads/2024/11/Screenshot-2024-11-19-at-10.17.37.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-33278" src="https://reflectivedata.com/wp-content/uploads/2024/11/Screenshot-2024-11-19-at-10.17.37.png" alt="RD - Google Analytics Parallel Tracking" width="1033" height="265" srcset="https://reflectivedata.com/wp-content/uploads/2024/11/Screenshot-2024-11-19-at-10.17.37.png 1033w, https://reflectivedata.com/wp-content/uploads/2024/11/Screenshot-2024-11-19-at-10.17.37-700x180.png 700w, https://reflectivedata.com/wp-content/uploads/2024/11/Screenshot-2024-11-19-at-10.17.37-1024x263.png 1024w, https://reflectivedata.com/wp-content/uploads/2024/11/Screenshot-2024-11-19-at-10.17.37-768x197.png 768w" sizes="(max-width: 1033px) 100vw, 1033px" /></a></p>
<h3>1. Tracking Code Adjustment</h3>
<p>A minor update to the Google Analytics tracking code is necessary to enable streaming all hits to Reflective Data’s endpoint. This approach, called Parallel Tracking, is compatible with all types of GA4 implementations, including GTM, server-side setups, gtag.js, and third-party applications.</p>
<h3>2. Event Processing</h3>
<p>The Data Processing Engine captures and processes all events in the same manner as Google Analytics. Designed for nearly unlimited scalability, it avoids the data processing restrictions found in GA4. All operations are hosted on Google Cloud, with the flexibility to choose your preferred region.</p>
<h3>3. Data Storage in Your Warehouse</h3>
<p>By default, data is stored in Google BigQuery, though we support other data warehouses such as AWS, Azure, and Snowflake. All data is fully processed and ready for reporting within seconds.</p>
<p>Reflective Data does not store any events or other data on its servers at any time.</p>
<h2>How does Parallel Tracking solve common limitations in GA4</h2>
<h3>1. Quota Limits and Sampling</h3>
<ul>
<li><strong>Issue:</strong> GA4 has quotas for API calls, data collection, and BigQuery exports.</li>
<li><strong>Solution:</strong>
<ul>
<li>Parallel Tracking for GA4 has no limits on the BigQuery exports. We know sites that are exporting well over 10M events per day without losing any events.</li>
</ul>
</li>
</ul>
<h3>2. Latency in Data Processing</h3>
<ul>
<li><strong>Issue:</strong> High traffic volumes can lead to delays in GA4 processing, resulting in longer wait times for data to appear in reports.</li>
<li><strong>Solution</strong>:
<ul>
<li>With Parallel Tracking, you can have GA4 events processed and stored in your data warehouse within seconds.</li>
</ul>
</li>
</ul>
<h3>3. Data Thresholding</h3>
<ul>
<li><strong>Issue:</strong> GA4 applies data thresholding for reports that include user identifiers or demographic data, especially when dealing with large volumes of traffic.</li>
<li><strong>Solution:</strong>
<ul>
<li>Parallel Tracking for GA4 allows you to work with 100% of the data. No limits on data cardinality or event counts.</li>
</ul>
</li>
</ul>
<h3>4. Event Limitations</h3>
<ul>
<li><strong>Issue:</strong> GA4 has a limit of 500 distinct event names per property. High-traffic sites often generate a large variety of events, which can exceed this limit.</li>
<li><strong>Solution:</strong>
<ul>
<li>With Parallel Tracking, there are no limits to distinct event names. Create, trigger and send as many unique events as necessary for the use case.</li>
</ul>
</li>
</ul>
<h3>5. Data Retention Settings</h3>
<ul>
<li><strong>Issue:</strong> GA4 defaults to a data retention period of 2 or 14 months for detailed user data, which can be insufficient for long-term analysis.</li>
<li><strong>Solution:</strong>
<ul>
<li>Using Parallel Tracking to send GA4 data into a data warehouse of your choice (BigQuery, S3, Snowflake, Redshift etc.) ensures you have full control and ownership of your data.</li>
</ul>
</li>
</ul>
<h3>6. Overwhelming Volume of Custom Dimensions/Parameters</h3>
<ul>
<li><strong>Issue:</strong> GA4 allows up to 50 custom dimensions per property. High-traffic apps often push this limit, causing issues with tracking extra custom data.</li>
<li><strong>Solution:</strong>
<ul>
<li>Parallel Tracking doesn&#8217;t set any limits on the number of custom dimensions, metrics or event parameters that you are allowed to collect.</li>
</ul>
</li>
</ul>
<h3>7. Cross-Platform and Cross-Domain Tracking</h3>
<ul>
<li><strong>Issue:</strong> High-traffic businesses with complex setups (e.g., mobile app + website) may face difficulties implementing seamless cross-platform tracking.</li>
<li><strong>Solution:</strong>
<ul>
<li>With Parallel Tracking for GA4 comes the ultimate flexibility around distinguishing and joining data from various sources. This includes web domains (including subdomains), mobile apps, web apps, server applications and more.</li>
</ul>
</li>
</ul>
<h3>8. Debugging and Testing Challenges</h3>
<ul>
<li><strong>Issue:</strong> High traffic can make it difficult to test changes without impacting production data.</li>
<li><strong>Solution:</strong>
<ul>
<li>Parallel Tracking comes with a robust environment for staging and testing all changes before pushing them into production. Never lose valuable data because of a broken tracking system again.</li>
</ul>
</li>
</ul>
<h3>9. Increased Cost for BigQuery Analysis</h3>
<ul>
<li><strong>Issue:</strong> Exporting large volumes of data to BigQuery can result in significant costs, especially when running frequent or complex queries.</li>
<li><strong>Solution:</strong>
<ul>
<li>Parallel Tracking gives you full control over your data pipeline. This means you can adjust the settings to collect only what you need to avoid overpaying for the data warehouse vendor.</li>
</ul>
</li>
</ul>
<h3>10. User Privacy and Compliance Challenges</h3>
<ul>
<li><strong>Issue:</strong> High-traffic businesses are more likely to face scrutiny regarding GDPR, CCPA, and other privacy laws.</li>
<li><strong>Solution:</strong>
<ul>
<li>With Parallel Tracking you can choose in which region your data is processed and stored. For GDPR compliance, for example, several sites keep all their data within the EU (this includes collection, processing and long-term storage).</li>
</ul>
</li>
</ul>
<p>As you can see, Parallel Tracking is the best companion to your GA4 implementation on a high-traffic website. Not only is it multiple times more affordable than its alternatives (including GA360) but it&#8217;s the only platform that provides a solution to all of the common issues.</p>
<p>If you want to learn more about GA4 Parallel Tracking, please <a href="https://reflectivedata.com/services/google-analytics-parallel-tracking/">schedule a free consultation session</a> with one of Reflective Data&#8217;s account managers or data engineers (depending on your needs).</p>
<p>&nbsp;</p>
<p>The post <a href="https://reflectivedata.com/optimal-ga4-setup-for-high-traffic-websites-and-apps-in-2024/">Optimal GA4 Setup For High-Traffic Websites and Apps in 2025</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://reflectivedata.com/optimal-ga4-setup-for-high-traffic-websites-and-apps-in-2024/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Make Your Google Analytics 4 [GA4] Implementation GDPR Compliant?</title>
		<link>https://reflectivedata.com/how-to-make-your-google-analytics-4-ga4-implementation-gdpr-compliant/</link>
					<comments>https://reflectivedata.com/how-to-make-your-google-analytics-4-ga4-implementation-gdpr-compliant/#respond</comments>
		
		<dc:creator><![CDATA[Jason Dolan]]></dc:creator>
		<pubDate>Fri, 09 Dec 2022 08:15:47 +0000</pubDate>
				<category><![CDATA[GA4]]></category>
		<category><![CDATA[Google Analytics]]></category>
		<guid isPermaLink="false">http://reflectivedata.com/?p=19207</guid>

					<description><![CDATA[<p>Recently, several European countries, including Austria, France, Italy, and Denmark have declared the use of Google Analytics illegal. That is, even if you asked for the consent of your website visitors.</p>
<p>There is one way, though, how you can continue using GA4 while being fully GDPR compliant.</p>
<p>The post <a href="https://reflectivedata.com/how-to-make-your-google-analytics-4-ga4-implementation-gdpr-compliant/">How to Make Your Google Analytics 4 [GA4] Implementation GDPR Compliant?</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>GDPR, short for General Data Protection Regulation is something you can&#8217;t ignore if you do business in the European Union or even if your website has users from the EU.</p>
<p>Recently, several European countries, including Austria, France, Italy, and Denmark have <a href="https://www.contentgrip.com/eu-countries-ban-google-analytics/" target="_blank" rel="noopener">declared the use of Google Analytics illegal</a>. That is, even if you asked for the consent of your website visitors.</p>
<p>The debate over Google Analytics (including GA4) being illegal in certain countries or not continues but considering the fines can reach millions, it is certainly better to be cautious.</p>
<p>Here at Reflective Data, we work with a lot of businesses that rely heavily on Google Analytics data to make marketing and product-related decisions. Simply removing GA4 from the site for all visitors coming from a country that has declared it illegal isn&#8217;t a choice they want to make. Paying a huge fine is even less so.</p>
<p>Therefore, we&#8217;ve worked hard on a workaround that would yield a dataset and user experience that closely resembles what you get with GA4 itself. And we succeeded!</p>
<h2>Here&#8217;s how we keep GA4 GDPR compliant</h2>
<p>In short, for traffic coming from the EU, we skip the the step where GA4 tracker sends data to GA4 servers. Instead, we process this data within the EU (just like GA4 does on their servers) and send it straight into a BigQuery dataset located within the EU.</p>
<p><a  href="http://reflectivedata.com/wp-content/uploads/2022/12/Screenshot-2022-12-08-at-23.06.26.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-19212" src="http://reflectivedata.com/wp-content/uploads/2022/12/Screenshot-2022-12-08-at-23.06.26.png" alt="GA4 to BigQuery GDPR compliant" width="1260" height="1208" srcset="https://reflectivedata.com/wp-content/uploads/2022/12/Screenshot-2022-12-08-at-23.06.26.png 1260w, https://reflectivedata.com/wp-content/uploads/2022/12/Screenshot-2022-12-08-at-23.06.26-700x671.png 700w, https://reflectivedata.com/wp-content/uploads/2022/12/Screenshot-2022-12-08-at-23.06.26-1024x982.png 1024w, https://reflectivedata.com/wp-content/uploads/2022/12/Screenshot-2022-12-08-at-23.06.26-768x736.png 768w" sizes="(max-width: 1260px) 100vw, 1260px" /></a></p>
<p>In the background, this solution uses our <a href="http://reflectivedata.com/services/google-analytics-4-parallel-tracking/" target="_blank" rel="noopener">Parallel Tracking product</a>. The main use case, besides being able to make GA4 GDPR compliant, is to circumvent the 1 million events BigQuery export limit seen in the free version of GA4. You can read more about this use case in <a href="http://reflectivedata.com/how-to-avoid-google-analytics-4-ga4-bigquery-export-quota-limit-of-1-million-hits/" target="_blank" rel="noopener">another article</a>. Hundreds of businesses across the world are using Parallel Tracking to track billions of events every month.</p>
<p>Getting started is really simple. Below is a quick step-by-step guide for making your GA4 implementation fully GDPR compliant.</p>
<h3>1. Get a free consultation with Reflective Data&#8217;s expert</h3>
<p><a href="http://reflectivedata.com/services/google-analytics-4-parallel-tracking/" target="_blank" rel="noopener">Get in touch</a> with Reflective Data to schedule a free consultation session with one of our data experts. This is the best way to determine if Parallel Tracking is the right solution for you.</p>
<h3>2. Implement Parallel Tracking</h3>
<p>The exact setup depends on how GA4 is implemented on your site but in most cases, the setup involves adding one new tag in Google Tag Manager or a small tracking code modification to your gtag.js snippet.</p>
<p>Reflective Data offers free implementation support with all plans. Most clients have the system up and running in less than one week.</p>
<p>No need to change your existing GA4 tags, all events will continue working as expected. No double tagging is required either, Parallel Tracking uses your existing GA4 tags.</p>
<h3>3. See data flowing into your BigQuery dataset</h3>
<p>As mentioned above, Parallel Tracking provides a solution that skips sending data from the EU into the US. Instead, it will process this data within the EU and stores it in your BigQuery dataset located in the EU. This ensures full GDPR compliance.</p>
<p>***</p>
<p>More and more countries are introducing and starting to enforce their data privacy regulations, including GDPR in the EU. This means that anyone doing business or having website visitors from those countries needs to comply with the local rules to avoid fines.</p>
<p>To make being GDPR compliant as painless as possible, Reflective Data has built a solution that lets you continue using your existing GA4 setup while not sending data from the EU into the US.</p>
<p><a href="http://reflectivedata.com/services/google-analytics-4-parallel-tracking/" target="_blank" rel="noopener">Learn more and schedule a free consultation session.</a></p>
<p>Feel free to ask any questions in the comments below.</p>
<p>The post <a href="https://reflectivedata.com/how-to-make-your-google-analytics-4-ga4-implementation-gdpr-compliant/">How to Make Your Google Analytics 4 [GA4] Implementation GDPR Compliant?</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://reflectivedata.com/how-to-make-your-google-analytics-4-ga4-implementation-gdpr-compliant/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Avoid Google Analytics 4 [GA4] BigQuery Export Quota Limit of 1 Million Hits</title>
		<link>https://reflectivedata.com/how-to-avoid-google-analytics-4-ga4-bigquery-export-quota-limit-of-1-million-hits/</link>
					<comments>https://reflectivedata.com/how-to-avoid-google-analytics-4-ga4-bigquery-export-quota-limit-of-1-million-hits/#comments</comments>
		
		<dc:creator><![CDATA[Jason Dolan]]></dc:creator>
		<pubDate>Thu, 12 May 2022 19:43:08 +0000</pubDate>
				<category><![CDATA[BigQuery]]></category>
		<category><![CDATA[GA4]]></category>
		<category><![CDATA[Google Analytics]]></category>
		<guid isPermaLink="false">http://reflectivedata.com/?p=13896</guid>

					<description><![CDATA[<p>While the new version of Google Analytics, the GA4, comes with the native BigQuery export feature available in the free version and some of the other quotas aren't as tight anymore, GA4 still has a fair share of limitations we need to account for.</p>
<p>The limit I'm covering in this post is set on the BigQuery export. More specifically, the GA4 to BigQuery native export feature has a limit of 1 million hits per day. Luckily, there are some ways around it.</p>
<p>The post <a href="https://reflectivedata.com/how-to-avoid-google-analytics-4-ga4-bigquery-export-quota-limit-of-1-million-hits/">How to Avoid Google Analytics 4 [GA4] BigQuery Export Quota Limit of 1 Million Hits</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h4>(Updated for 2026)</h4>
<p>While Google Analytics 4 (GA4) comes with the native BigQuery export feature available in the free version and some of the other quotas aren&#8217;t as tight anymore (compared to UA), GA4 still has a fair share of limitations we need to account for.</p>
<p>The limit I&#8217;m covering in this post is set on the BigQuery export. More specifically, the GA4 to BigQuery native export feature has a limit of 1 million hits per day.</p>
<p>From the <a href="https://support.google.com/analytics/answer/9823238?hl=en#limits" target="_blank" rel="noopener">docs</a>.</p>
<blockquote><p>Standard properties have a daily BigQuery Export limit of 1 million events. If your property consistently exceeds the export limit, the daily BigQuery export will be paused and previous days’ exports will not be reprocessed.</p></blockquote>
<p>Considering the BigQuery export will be a core element for most power users, this can become a serious problem for any business with a good amount of traffic. Again, this limit is not on users or sessions but on hits. A single visitor can generate hundreds or even thousands of hits, depending on your business type and GA4 configuration.</p>
<figure id="attachment_13933" aria-describedby="caption-attachment-13933" style="width: 1278px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2022/05/ga4-bigquery-hit-limit.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="size-full wp-image-13933" src="http://reflectivedata.com/wp-content/uploads/2022/05/ga4-bigquery-hit-limit.png" alt="" width="1278" height="528" srcset="https://reflectivedata.com/wp-content/uploads/2022/05/ga4-bigquery-hit-limit.png 1278w, https://reflectivedata.com/wp-content/uploads/2022/05/ga4-bigquery-hit-limit-700x289.png 700w, https://reflectivedata.com/wp-content/uploads/2022/05/ga4-bigquery-hit-limit-1024x423.png 1024w, https://reflectivedata.com/wp-content/uploads/2022/05/ga4-bigquery-hit-limit-768x317.png 768w" sizes="(max-width: 1278px) 100vw, 1278px" /></a><figcaption id="caption-attachment-13933" class="wp-caption-text">GA4 counting towards the 1M hit limit in the admin panel</figcaption></figure>
<h2>Ways to overcome the 1 million hits limit in GA4</h2>
<p>In short, you&#8217;ll have three paths to choose from.</p>
<ul>
<li>Collect less data</li>
<li>Upgrade to GA360</li>
<li>Use Parallel Tracking</li>
</ul>
<p>Below is a more detailed overview of each of these solutions to help you find the best one for your use case.</p>
<h3>Reduce the number of hits collected with GA4</h3>
<p>There are two parts to this one. First one being that you simply take a second look at the list of events you&#8217;re currently collecting and consider skipping some of them. Could be scroll events or other automatically triggered events like product impressions.</p>
<p>The second part is that you can actually <a href="https://support.google.com/analytics/answer/9823238?hl=en#datafiltering" target="_blank" rel="noopener">filter</a> in/out the hits that are sent from GA4 to BigQuery. So, perhaps you could send only the most critical data to BigQuery.</p>
<p>Now, neither of those solutions is really a good one because no one should be forced to give up on some of the useful data and insights because of some arbitrary hit limit. So, if you&#8217;re serious about your data game, check out the other two options.</p>
<h3>Upgrade to the GA360 version of GA4 and get more quota</h3>
<p>Understanding that GA360 doesn&#8217;t fit every budget and a simple hit limit shouldn&#8217;t be enough to convince you into spending this kind of money but if you&#8217;re considering GA360, then know that it also comes with a much more generous BigQuery export quota.</p>
<p>The <a href="https://support.google.com/analytics/answer/11202874" target="_blank" rel="noopener">official documentation</a> doesn&#8217;t say the exact number but they claim the daily limit to be &#8220;billions of events&#8221;. That&#8217;s probably enough for most use cases.</p>
<h3>Use Parallel Tracking for a limitless BigQuery export</h3>
<p>If a compromise of collecting less data isn&#8217;t want you want to make and GA360 is too expensive then <a href="http://reflectivedata.com/services/google-analytics-4-parallel-tracking/" target="_blank" rel="noopener">Parallel Tracking</a> is your best option.</p>
<p>Depending on your GA4 setup, the implementation is very simple. Either a small update to your tracking code or GTM tag and unlimited data pipeline is up and running.</p>
<p>As a bonus, you can toggle on an option that processes your data into sessions (just like in Universal Analytics &#8211; together with all the metrics and dimensions from UA) in a separate BigQuery table. How awesome is that?</p>
<p>Learn more about <a href="http://reflectivedata.com/services/google-analytics-4-parallel-tracking/" target="_blank" rel="noopener">Parallel Tracking for GA4</a>.</p>
<h2>Wrapping up</h2>
<p>If you&#8217;re serious about analytics, BigQuery export is a must-have. Unfortunately (but expected) the free version of GA4 comes with an export limit of 1 million hits.</p>
<p>In case you&#8217;re already exceeding this or are getting close, now is the time to look for ways to overcome this limit. My recommendation is that you take a closer look at the <a href="http://reflectivedata.com/services/google-analytics-4-parallel-tracking/">Parallel Tracking</a>, get in touch with the team and see if that&#8217;s the solution you should implement.</p>
<p>As always, feel free to post your thoughts and questions in the comments below.</p>
<p>The post <a href="https://reflectivedata.com/how-to-avoid-google-analytics-4-ga4-bigquery-export-quota-limit-of-1-million-hits/">How to Avoid Google Analytics 4 [GA4] BigQuery Export Quota Limit of 1 Million Hits</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://reflectivedata.com/how-to-avoid-google-analytics-4-ga4-bigquery-export-quota-limit-of-1-million-hits/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Best Google Analytics Alternative for 2023</title>
		<link>https://reflectivedata.com/best-google-analytics-alternative-for-2023/</link>
					<comments>https://reflectivedata.com/best-google-analytics-alternative-for-2023/#respond</comments>
		
		<dc:creator><![CDATA[Jason Dolan]]></dc:creator>
		<pubDate>Thu, 24 Mar 2022 11:17:33 +0000</pubDate>
				<category><![CDATA[BigQuery]]></category>
		<category><![CDATA[Google Analytics]]></category>
		<guid isPermaLink="false">http://reflectivedata.com/?p=13022</guid>

					<description><![CDATA[<p>No doubt that Google Analytics is the most popular tool when it comes to website analytics. Even though it's free for most users, it does have some serious limitations. In this article, we're going to figure out what's the best alternative to Google Analytics.</p>
<p>The post <a href="https://reflectivedata.com/best-google-analytics-alternative-for-2023/">Best Google Analytics Alternative for 2023</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Google Analytics is without a doubt the most popular analytics tool when it comes to websites. This popularity can be attributed to the tool being free but I doubt so many top tier marketers and analysts would be using a tool that&#8217;s no good. In fact, its features around tracking marketing and ad performance are still largely unrivalled.</p>
<p>While Google Analytics is such a great tool and I&#8217;ve been using it for years myself, some of our clients have run into problems and limitations that made them search for other options. In this article, I&#8217;m going to discuss some of the reasons why you might need an alternative (or addition) to Google Analytics and what most of our clients have found to be the best option for them (and why).</p>
<blockquote><p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4e2.png" alt="📢" class="wp-smiley" style="height: 1em; max-height: 1em;" />  This article will prepare you for July 1, 2023 when Google will stop processing Universal Analytics data.</p></blockquote>
<p>Before I get any deeper into the topic, this solution may not be ideal for every business but if the reason you may be considering another analytics tool is in the list below, it&#8217;s likely the one you should consider.</p>
<ul>
<li>Forced transfer to GA4</li>
<li>Sampling</li>
<li>Data collection limits (10M hits/mo,  20 dimensions &amp; 20 goals)</li>
<li>Sending data to the US</li>
<li>Forced data aggregation</li>
<li>No access to raw hit-level data</li>
<li>API limitations</li>
</ul>
<p>So, if you found the reason you&#8217;re looking for an alternative to Google Analytics in the l, the solution we&#8217;re going to discuss now is probably a good fit for you.</p>
<h2>Parallel Tracking as an alternative to Google Analytics</h2>
<p>Before I give you the reasoning why <a href="http://reflectivedata.com/services/google-analytics-parallel-tracking/" target="_blank" rel="noopener">Parallel Tracking</a> is a very good alternative to Google Analytics, let me give you a quick overview of how it works.</p>
<p><a  href="http://reflectivedata.com/wp-content/uploads/2020/03/RD-Google-Analytics-Parallel-Tracking.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-3743" src="http://reflectivedata.com/wp-content/uploads/2020/03/RD-Google-Analytics-Parallel-Tracking.png" alt="Google-Analytics-Parallel-Tracking" width="881" height="385" srcset="https://reflectivedata.com/wp-content/uploads/2020/03/RD-Google-Analytics-Parallel-Tracking.png 881w, https://reflectivedata.com/wp-content/uploads/2020/03/RD-Google-Analytics-Parallel-Tracking-700x306.png 700w, https://reflectivedata.com/wp-content/uploads/2020/03/RD-Google-Analytics-Parallel-Tracking-768x336.png 768w" sizes="(max-width: 881px) 100vw, 881px" /></a></p>
<p>Parallel Tracking is a data pipeline that&#8217;s built based on Google Analytics Universal Analytics (UA) and follows the exact same data structure and processing logic. It can do so while letting you choose whether to send any data to Google Analytics itself or not. Parallel Tracking will send both raw and processed data straight into your data warehouse. BigQuery being the default storage solution.</p>
<p>What makes it stand out from most other analytics tools is that it uses literally 100% the same tracking setup as Google Analytics UA. This means you can use analytics.js, GTM, Segment, Measurement Protocol and almost all other methods for implementing it while using the syntax you&#8217;re already familiar with.</p>
<p>In the following sections, we&#8217;re going to take a closer look at the core areas of the Parallel Tracking solution. In each one, I&#8217;m going to compare it to Google Analytics and explain why it&#8217;s probably the best alternative out there.</p>
<h3>Implementation</h3>
<p>If you&#8217;re using Google Analytics today, getting Parallel Tracking implemented will normally take 2-8 hours. All plans come with full implementation support included. Parallel Tracking works out of the box with most Google Analytics implementations, including the following.</p>
<ul>
<li>analytics.js (Google Analytics snippet in your source code)</li>
<li>Google Tag Manager</li>
<li>Measurement Protocol (Google Analytics server-side)</li>
<li>Segment.com</li>
<li>Shopify</li>
<li>Littledata</li>
<li>WooCommerce and most other apps and plugins</li>
</ul>
<blockquote><p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4e2.png" alt="📢" class="wp-smiley" style="height: 1em; max-height: 1em;" />  PS! All of those integrations will work after July 1, 2023 when Google will <a href="https://support.google.com/analytics/answer/11583528" target="_blank" rel="noopener">stop processing Universal Analytics data</a>.</p></blockquote>
<p>In case it&#8217;s a fresh setup, the integration time will depend a lot on the complexity of your site. As it&#8217;s using the exact same tracking syntax as Google Analytics, the setup time will be the same as it would take to install Google Analytics from scratch.</p>
<p>Considering this, <a href="http://reflectivedata.com/services/google-analytics-parallel-tracking/" target="_blank" rel="noopener">Parallel Tracking</a> is by far the quickest, least painful and most effective tool to replace Google Analytics with.</p>
<h3>Reporting</h3>
<p>While Google Analytics Universal Analytics has a familiar and rather intuitive user interface for quick reporting, most analytics platforms don&#8217;t. This includes the new <a href="https://support.google.com/analytics/answer/10089681?hl=en" target="_blank" rel="noopener">Google Analytics 4</a> which will be the only version after July 1, 2023 when Universal Analytics reaches its end of life.</p>
<p>As Parallel Tracking will send both raw and processed data into your own data warehouse (i.e. BigQuery), you can choose the reporting layer of your choice. For most users, <a href="https://datastudio.google.com/" target="_blank" rel="noopener">Google Data Studio</a> (free) should be enough. More advanced users are successfully connecting it with tools like Looker, Tableau and Power BI.</p>
<p>By the time Universal Analytics sunsets, there will be a set of getting-started reports, templates and potentially even a full user interface to ease your reporting with Parallel Tracking.</p>
<p>This means that Parallel Tracking is on par with most other analytics tools when it comes to reporting and offers you virtually limitless flexibility by connecting natively with most BI and dataviz platforms. Plus, Parallel Tracking is probably the only one that gives you sessions and related metrics like bounce rate out-of-the-box!</p>
<h3>Integrations</h3>
<p>Google Analytics is known for its wide range of integrations. Starting from Google Ads and ending with most of the CMSes and A/B testing platforms on the market.</p>
<p>Since Parallel Tracking uses the same tracking system as Google Analytics, it&#8217;ll natively support most of those integrations! This includes Google Ads (even cost data).</p>
<p>The fact that you&#8217;ll have full control over your data in BigQuery means you can integrate with almost any data source out there. Ads platforms, CRMs, A/B testing, e-commerce, custom backends – you name it. As a bonus, since Parallel Tracking is just one of <a href="http://reflectivedata.com/analytics-data-pipeline/integrations" target="_blank" rel="noopener">the hundreds of data connectors</a> Reflective Data offers, you can get it all from one place.</p>
<p>Considering the above, Parallel Tracking is on par or even exceeds Google Analytics in terms of integrations and easily beats almost any other analytics tool on the market.</p>
<h3>Cost</h3>
<p>Google Analytics is free for most users but the free plan comes with a set of serious limitations (discussed further in the next section). The premium, GA360 would cost you at least $150k a year which makes it one of the most expensive offerings in that segment.</p>
<p>Parallel Tracking&#8217;s pricing is based on usage – the number of hits collected per month to be more specific. The number of integrations and a method of implementation can be pricing factors, too. So, I recommend you <a href="http://reflectivedata.com/services/google-analytics-parallel-tracking/" target="_blank" rel="noopener">get in touch for the exact quote</a> customized for your business and use case. Based on my experience, most clients will be happy with plans in the range between $375 to $950 per month.</p>
<p>Comparing the pricing with other analytics platforms, Parallel Tracking should be quite affordable for most businesses and it&#8217;s a lot cheaper than GA360. Even if you&#8217;re collecting hundreds of millions of hits each month.</p>
<h3>Limitations</h3>
<p>Google Analytics, especially the free version, is known for its wide range of limitations.</p>
<p>Here&#8217;s a table comparing Google Analytics against Parallel Tracking in terms of quotas and other limitations.</p>
<table style="border-collapse: collapse; width: 100%; height: 368px;">
<tbody>
<tr style="height: 24px;">
<td style="width: 17.8206%; height: 24px;"><strong>Criteria</strong></td>
<td style="width: 42.5357%; height: 24px;"><strong>Google Analytics</strong></td>
<td style="width: 39.6436%; height: 24px;"><strong>Parallel Tracking</strong></td>
</tr>
<tr style="height: 24px;">
<td style="width: 17.8206%; height: 24px;">Sampling</td>
<td style="width: 42.5357%; height: 24px;">Data is heavily sampled when analyzing longer time periods or using custom segments. Sometimes making the report completely useless.</td>
<td style="width: 39.6436%; height: 24px;">No sampling.</td>
</tr>
<tr style="height: 24px;">
<td style="width: 17.8206%; height: 24px;">Hit limit</td>
<td style="width: 42.5357%; height: 24px;">&#8211; &lt;10M hits per month<br />
&#8211; &lt;200,000 hits per user per day<br />
-500 hits per session</td>
<td style="width: 39.6436%; height: 24px;">No limits on data collection.</td>
</tr>
<tr style="height: 24px;">
<td style="width: 17.8206%; height: 24px;">Report table row limit</td>
<td style="width: 42.5357%; height: 24px;">50k rows</td>
<td style="width: 39.6436%; height: 24px;">No row limits</td>
</tr>
<tr style="height: 72px;">
<td style="width: 17.8206%; height: 72px;">Forced aggregation</td>
<td style="width: 42.5357%; height: 72px;">Most data is presented in an aggregated format without giving you access to the raw data behind those calculations. Meaning you can&#8217;t change how metrics are defined.</td>
<td style="width: 39.6436%; height: 72px;">Full access to raw hit-level data, allowing you to define any metric in a way that matches your business needs the best.</td>
</tr>
<tr style="height: 24px;">
<td style="width: 17.8206%; height: 24px;">Attribution models</td>
<td style="width: 42.5357%; height: 24px;">Most reports are based on the &#8220;last non-direct click&#8221; model.</td>
<td style="width: 39.6436%; height: 24px;">Can choose any attribution model, including custom ones like machine-learning-based models.</td>
</tr>
<tr style="height: 24px;">
<td style="width: 17.8206%; height: 24px;">Processing delays</td>
<td style="width: 42.5357%; height: 24px;">24-48 hours</td>
<td style="width: 39.6436%; height: 24px;">Hit data available within 5 seconds. Sessions are processed once a day.</td>
</tr>
<tr style="height: 56px;">
<td style="width: 17.8206%; height: 56px;">Goals</td>
<td style="width: 42.5357%; height: 56px;">20 goals</td>
<td style="width: 39.6436%; height: 56px;">Unlimited goals</td>
</tr>
<tr style="height: 48px;">
<td style="width: 17.8206%; height: 48px;">Custom dimensions &amp; metrics</td>
<td style="width: 42.5357%; height: 48px;">20 custom dimensions &amp; 20 custom metrics</td>
<td style="width: 39.6436%; height: 48px;">Unlimited custom dimensions and metrics</td>
</tr>
<tr style="height: 24px;">
<td style="width: 17.8206%; height: 24px;">Hit payload limit</td>
<td style="width: 42.5357%; height: 24px;">8,000 bytes</td>
<td style="width: 39.6436%; height: 24px;">16,000 bytes</td>
</tr>
<tr style="height: 24px;">
<td style="width: 17.8206%; height: 24px;">Raw data access</td>
<td style="width: 42.5357%; height: 24px;">No access to raw data</td>
<td style="width: 39.6436%; height: 24px;">Full access to raw hit-level data</td>
</tr>
</tbody>
</table>
<h3>Reliability</h3>
<p>Google Analytics tends to be very reliable. I can recall some bugs and losses in data but it is very rare.</p>
<p>Parallel Tracking is built based on the same tracking system as Google Analytics and runs on Google Cloud – making it one of the closest competitors in terms of reliability and scalability. Fortune 500 companies have put their trust in Parallel Tracking to collect and process hundreds of millions of hits per day.</p>
<p>Should something go wrong in data processing (as has happened with Google Analytics a few times), Parallel Tracking can promptly re-process the raw data, minimizing the risk of losing any data for good.</p>
<p>Comparing this with other tools, some of which are self-hosted and most of them using custom-built tracking syntax, makes Parallel Tracking stand out for sure.</p>
<h3>Support</h3>
<p>While Google Analytics doesn&#8217;t offer support themselves, it does have a huge community making it easy to find answers to almost any question you might have.</p>
<p>Since Parallel Tracking is based on the same tracking syntax, data is processed and stored just like in Google Analytics, you can still benefit from that massive community – most answers will be applicable for both.</p>
<p>Besides community, Parallel Tracking comes with technical support available with all plans. You don&#8217;t have to worry about the implementation, custom configuration and maintenance. Just contact support and you&#8217;re almost guaranteed to get a solution to whatever you were struggling with.</p>
<p>While there are other tools with technical support available, many of them don&#8217;t offer it with their lower-end plans. Certainly, no other tool benefits from Google Analytics&#8217; massive community like Parallel Tracking, besides Google Analytics itself.</p>
<h3>Privacy and EU laws</h3>
<p>Since GDPR and other data protection and privacy laws were introduced, Google Analytics and several other analytics platforms have struggled to meet the requirements. Some EU countries have gone as far as saying <a href="https://blog.didomi.io/en/is-google-analytics-illegal-in-europe-heres-what-you-need-to-know" target="_blank" rel="noopener">using Google Analytics to track their citizens online is illegal</a>.</p>
<p>With Parallel Tracking, you are in control of almost everything that could be related to privacy and data protection. This includes saying where data is processed and stored (within EU, in the US, on-premise).</p>
<p>This flexibility goes both ways, meaning that if you&#8217;ve asked your visitors&#8217; permission, you can use Parallel Tracking to collect PII data like an email address or phone number, too. Something that&#8217;s not an option with Google Analytics.</p>
<p>Unlike almost any other analytics platform (besides open-source and self-hosted ones), Parallel Tracking does not store any data on its servers. After processing data, it is stored in your data warehouse. This means data is never shared with or sold to third parties.</p>
<h2>Is it really the best replacement for Google Analytics?</h2>
<p>After reading this article, I hope you have a pretty good understanding of how Parallel Tracking works and why it&#8217;s likely to be one of the best alternatives to Google Analytics. Both UA and GA4.</p>
<p>One of the only downsides this solution has is that, compared to the free version of Google Analytics, Parallel Tracking will still cost some money. If you&#8217;re using this kind of data for making business decisions, that shouldn&#8217;t be an issue as it&#8217;s still more affordable than most of its competitors. Including GA360.</p>
<p><a href="http://reflectivedata.com/services/google-analytics-parallel-tracking/">Click here for a quote and consultation on Parallel Tracking.</a></p>
<h3>Further reading</h3>
<p>We&#8217;ve written on similar topics before. Have a look at these articles to learn more about Parallel Tracking and why it&#8217;s a good alternative to Google Analytics.</p>
<ul>
<li><a href="http://reflectivedata.com/services/google-analytics-parallel-tracking/">Product overview</a></li>
<li><a href="https://medium.com/reflective-data/hit-level-unsampled-google-analytics-to-bigquery-without-360-a6a1477a5d3" target="_blank" rel="noopener">Hit-Level Unsampled Google Analytics to BigQuery Without 360</a></li>
<li><a href="http://reflectivedata.com/how-to-query-google-analytics-data-using-sql/">Query Google Analytics Data Using SQL</a></li>
<li><a href="http://reflectivedata.com/how-to-avoid-google-analytics-sampling-and-data-limits/">How to Avoid Google Analytics Sampling and Data Limits?</a></li>
<li><a href="http://reflectivedata.com/how-to-query-and-analyze-google-analytics-data-with-bigquery/">How to Query and Analyze Google Analytics Data with BigQuery</a></li>
<li><a href="http://reflectivedata.com/case-study-storing-google-analytics-data-within-european-union-or-locally/">Case Study: Storing Google Analytics Data Within The European Union or Locally</a></li>
<li><a href="http://reflectivedata.com/measure-long-term-metrics-like-customer-lifetime-value-ltv-using-google-analytics/">Measure Long-Term Metrics Like Customer Lifetime Value (LTV) Using Google Analytics</a></li>
<li><a href="http://reflectivedata.com/case-study-sending-data-from-shopify-and-google-analytics-to-bigquery-for-more-advanced-analysis/">Case Study: Sending Data From Shopify and Google Analytics to BigQuery for More Advanced Analysis</a></li>
</ul>
<p>I&#8217;d be happy to answer any questions you might have about Parallel Tracking in the comments below.</p>
<p>The post <a href="https://reflectivedata.com/best-google-analytics-alternative-for-2023/">Best Google Analytics Alternative for 2023</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://reflectivedata.com/best-google-analytics-alternative-for-2023/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Measure Long-Term Metrics Like Customer Lifetime Value (LTV) Using Google Analytics</title>
		<link>https://reflectivedata.com/measure-long-term-metrics-like-customer-lifetime-value-ltv-using-google-analytics/</link>
					<comments>https://reflectivedata.com/measure-long-term-metrics-like-customer-lifetime-value-ltv-using-google-analytics/#comments</comments>
		
		<dc:creator><![CDATA[Jason Dolan]]></dc:creator>
		<pubDate>Tue, 25 May 2021 13:43:07 +0000</pubDate>
				<category><![CDATA[A/B testing]]></category>
		<category><![CDATA[BigQuery]]></category>
		<category><![CDATA[Data Pipeline]]></category>
		<category><![CDATA[Google Analytics]]></category>
		<guid isPermaLink="false">http://reflectivedata.com/?p=9865</guid>

					<description><![CDATA[<p>Long-term metrics like customer lifetime value (LTV) and churn can be so much more insightful and lead to better results when optimized for when compared to the more basic metrics like transactions or revenue. Yet, these metrics are often ignored or at least not involved in the analysis and optimization processes enough. One of the reasons is that it's quite difficult to track them using common analytics and testing tools like Google Analytics and Optimize.</p>
<p>In this article, we are going to explore some of the ways we can leverage Google Analytics to track churn, LTV and other really useful metrics.</p>
<p>The post <a href="https://reflectivedata.com/measure-long-term-metrics-like-customer-lifetime-value-ltv-using-google-analytics/">Measure Long-Term Metrics Like Customer Lifetime Value (LTV) Using Google Analytics</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Long-term metrics like customer lifetime value (LTV) and churn can be so much more insightful and lead to better results when optimized for when compared to the more basic metrics like transactions or revenue. Yet, these metrics are often ignored or at least not involved in the analysis and optimization processes enough. One of the reasons is that it&#8217;s quite difficult to track them using common analytics and testing tools like Google Analytics and Optimize.</p>
<p>In this article, we are going to explore some of the ways we can leverage Google Analytics to track churn, LTV and other really useful metrics.</p>
<p>Depending on the software you&#8217;re using, there may be some off-the-shelf solutions that you can install. For example, if you&#8217;re on Shopify then you can use something like <a href="https://www.littledata.io/">Littledata</a> to send a more accurate LTV value into a custom dimension in Google Analytics. More often than not, though, there is no good solution available or you just need more control over the setup.</p>
<p>One common misconception is that such long-term retention metrics are relevant for a few specific business types only. Yes, metrics like churn are vital for SaaS and subscription products but any company that gets return business should have their long-term KPIs in place. And I don&#8217;t mean simply tracking them but actually analyzing them and optimizing the business with those metrics in mind.</p>
<blockquote><p><em>Acquiring a new customer is anywhere from five to 25 times more expensive than retaining an existing one. It makes sense: you don’t have to spend time and resources going out and finding a new client — you just have to keep the one you have happy.</em></p>
<p style="text-align: right;"><a href="https://hbr.org/2014/10/the-value-of-keeping-the-right-customers#:~:text=Depending%20on%20which%20study%20you,the%20one%20you%20have%20happy.">Harvard Business Review</a></p>
</blockquote>
<p>So, if you&#8217;ve been focusing on getting new customers and metrics like revenue or transactions, this article is just for you!</p>
<h2>How to measure retention metrics like LTV and churn</h2>
<p>The long-term retention metrics most relevant to you depend on the type of business you&#8217;re working with but the most common ones are customer lifetime value (LTV) and churn. Below is a list of other popular retention KPIs. Think about the ones that would be relevant for your business.</p>
<p>Common Customer Retention Metrics</p>
<ol>
<li>Customer Churn</li>
<li>Revenue Churn</li>
<li>Existing Customer Growth Rate</li>
<li>Repeat Purchase Ratio</li>
<li>Product Return Rate</li>
<li>Days Sales Outstanding</li>
<li>Net Promoter Score</li>
<li>Time Between Purchases</li>
<li>Loyal Customer Rate</li>
<li>Customer Lifetime Value</li>
</ol>
<p style="text-align: right;"><a href="https://blog.hubspot.com/service/customer-retention-metrics">Source</a></p>
<p>Almost all retention metrics require a proper <a href="http://reflectivedata.com/everything-need-know-google-analytics-user-id/">User ID implementation</a>. This means you&#8217;d have to identify the user over time and even if they&#8217;re using multiple devices or browsers. Luckily, in most cases, actions like completing a purchase or signing up for a subscription do involve some kind of authentication.</p>
<p>While it&#8217;s possible to track retention metrics with Google Analytics alone, in most cases you&#8217;d get much better (more accurate) results when combining it with some other technology. Let&#8217;s explore two of the more popular options.</p>
<h3>Sending retention data into Google Analytics</h3>
<p>This solution involves sending retention data into a <a href="http://reflectivedata.com/ideas-for-google-analytics-custom-dimensions-and-metrics/">custom dimension or a custom metric</a> in Google Analytics.</p>
<p>The exact workflow depends on the software (CRM, CMS, database etc.) your site uses but the general process would look something like this.</p>
<ol>
<li>Create a custom dimension in Google Analytics (should be user-scoped)<br />
<a  href="http://reflectivedata.com/wp-content/uploads/2021/05/screenshot-analytics.google.com-2021.05.18-21_42_39.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-9893" src="http://reflectivedata.com/wp-content/uploads/2021/05/screenshot-analytics.google.com-2021.05.18-21_42_39.png" alt="Retention related custom metrics in Google Analytics" width="1168" height="546" srcset="https://reflectivedata.com/wp-content/uploads/2021/05/screenshot-analytics.google.com-2021.05.18-21_42_39.png 1168w, https://reflectivedata.com/wp-content/uploads/2021/05/screenshot-analytics.google.com-2021.05.18-21_42_39-700x327.png 700w, https://reflectivedata.com/wp-content/uploads/2021/05/screenshot-analytics.google.com-2021.05.18-21_42_39-1024x479.png 1024w, https://reflectivedata.com/wp-content/uploads/2021/05/screenshot-analytics.google.com-2021.05.18-21_42_39-768x359.png 768w" sizes="(max-width: 1168px) 100vw, 1168px" /></a></li>
<li>For logged-in/identified users, pull/calculate the values for the relevant retention metrics from a database or other system (CRM, CMS etc.)<br />
Something like this if your order data is stored in BigQuery.<br />
<a  href="http://reflectivedata.com/wp-content/uploads/2021/05/screenshot-nimbusweb.me-2021.05.18-22_00_07.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-9894" src="http://reflectivedata.com/wp-content/uploads/2021/05/screenshot-nimbusweb.me-2021.05.18-22_00_07.png" alt="Query retention metrics from BigQuery" width="687" height="392" /></a></li>
<li>Make the retention metrics available in the <a href="https://developers.google.com/tag-manager/devguide">data layer</a><br />
<a  href="http://reflectivedata.com/wp-content/uploads/2021/05/Screenshot-2021-05-18-at-22.06.56.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-9895" src="http://reflectivedata.com/wp-content/uploads/2021/05/Screenshot-2021-05-18-at-22.06.56.png" alt="Retention metrics in the dashboard" width="310" height="132" /></a></li>
<li>Use Google Tag Manager to send your retention metrics to Google Analytics, using the custom dimension or metrics slots/indices according to how you configured them in step #1<a  href="http://reflectivedata.com/wp-content/uploads/2021/05/Screenshot-2021-05-18-at-22.10.04.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-9896" src="http://reflectivedata.com/wp-content/uploads/2021/05/Screenshot-2021-05-18-at-22.10.04.png" alt="Sending retention metrics to Google Analytics" width="796" height="217" srcset="https://reflectivedata.com/wp-content/uploads/2021/05/Screenshot-2021-05-18-at-22.10.04.png 796w, https://reflectivedata.com/wp-content/uploads/2021/05/Screenshot-2021-05-18-at-22.10.04-700x191.png 700w, https://reflectivedata.com/wp-content/uploads/2021/05/Screenshot-2021-05-18-at-22.10.04-768x209.png 768w" sizes="(max-width: 796px) 100vw, 796px" /></a></li>
</ol>
<p>Now, having this data available in Google Analytics, you do whatever you want with it. Here are a few examples.</p>
<p><strong>Using LTV in a Google Analytics custom report</strong></p>
<p>&nbsp;</p>
<p><a  href="http://reflectivedata.com/wp-content/uploads/2021/05/screenshot-analytics.google.com-2021.05.21-16_06_39.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-9931" src="http://reflectivedata.com/wp-content/uploads/2021/05/screenshot-analytics.google.com-2021.05.21-16_06_39.png" alt="Using LTV in a Google Analytics custom report" width="977" height="520" srcset="https://reflectivedata.com/wp-content/uploads/2021/05/screenshot-analytics.google.com-2021.05.21-16_06_39.png 977w, https://reflectivedata.com/wp-content/uploads/2021/05/screenshot-analytics.google.com-2021.05.21-16_06_39-700x373.png 700w, https://reflectivedata.com/wp-content/uploads/2021/05/screenshot-analytics.google.com-2021.05.21-16_06_39-768x409.png 768w" sizes="(max-width: 977px) 100vw, 977px" /></a></p>
<p>&nbsp;</p>
<p><strong>LTV in the Google Analytics user explorer report</strong></p>
<p>&nbsp;</p>
<p><a  href="http://reflectivedata.com/wp-content/uploads/2021/05/screenshot-analytics.google.com-2021.05.21-16_13_08.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-9932" src="http://reflectivedata.com/wp-content/uploads/2021/05/screenshot-analytics.google.com-2021.05.21-16_13_08.png" alt="LTV in the Google Analytics user explorer report" width="987" height="843" srcset="https://reflectivedata.com/wp-content/uploads/2021/05/screenshot-analytics.google.com-2021.05.21-16_13_08.png 987w, https://reflectivedata.com/wp-content/uploads/2021/05/screenshot-analytics.google.com-2021.05.21-16_13_08-700x598.png 700w, https://reflectivedata.com/wp-content/uploads/2021/05/screenshot-analytics.google.com-2021.05.21-16_13_08-768x656.png 768w" sizes="(max-width: 987px) 100vw, 987px" /></a></p>
<p>Notice the difference between LTV that Google Analytics is reporting by default ($439) and the value we see in our custom dimension ($2,016). This is because Google Analytics can&#8217;t keep a track of the user as accurately as your backend system or an e-commerce platform you&#8217;re using. The same goes with other retention metrics, getting accurate metrics requires some custom work.</p>
<p>The list of possible use cases for this kind of data is unlimited. For example, think about creating custom segments in Google Analytics for customers that are in the top 10% in terms of LTV and see what differentiates them from the rest of the visitors. Besides making more/larger purchases, of course. Things like their traffic source, what pages they landed on, what A/B test variants they saw etc. can be quite insightful.</p>
<p>Talking about ways you can analyze your data and the insights it will give you. Let&#8217;s take measuring retention metrics to a whole new level by sending data into a data warehouse.</p>
<h3>Storing data in a data warehouse</h3>
<p>If you&#8217;re just getting started with retention metrics and you still mostly optimize for generic metrics like leads, total transactions and total revenue, then you&#8217;ll still be better off with having them in Google Analytics. Compared to not having them at all, that is. If you&#8217;re serious about analyzing and optimizing for retention and customer lifetime value then you need a data warehouse.</p>
<p>Here&#8217;s a quick step-by-step guide that will lead you in the right direction.</p>
<ol>
<li>Send all Google Analytics data into a data warehouse (i.e. <a href="https://cloud.google.com/bigquery">BigQuery</a>). Tools using the <a href="https://developers.google.com/analytics/devguides/reporting/core/v4">Reporting API</a> (most of them) can get you started but for true unsampled hit-level data you need something like <a href="http://reflectivedata.com/services/google-analytics-parallel-tracking/">Parallel Tracking</a>.</li>
<li>Send, pull, push data from other relevant sources into your data warehouse. This should include your database, CRM, CMS, marketing tools, ads platforms, customer support, live chat and every other tool that has data about your customers and their interactions with your brand. Self-service tools like <a href="https://www.stitchdata.com/">Stitch</a> will get you started but we&#8217;d recommend <a href="http://reflectivedata.com/analytics-data-pipeline/">more flexible managed solutions</a>.</li>
<li>Solution for accessing data stored in your data warehouse. You&#8217;d need something (could be separate tools) that can handle ad-hoc queries, dashboarding, automated reports, and building data models. Tools like <a href="https://datastudio.google.com/">Google Data Studio</a> will get you started. Something like <a href="https://looker.com/">Looker</a> or <a href="https://www.tableau.com/">Tableau</a> would be better. Our recommendation is to go with a <a href="http://reflectivedata.com/services/analytics-services/">managed service</a> that will put together the best set of tools for you and configure the rest as well.</li>
</ol>
<p>If having retention metrics in Google Analytics enabled you to do all sorts of useful new reports and analysis then your options with the setup above are truly limitless.</p>
<p>Having a proper data warehouse will be your competitive advantage. Not only does it give you an option to get a very good overview of the current status of your business and your customers, but it will also allow for truly optimizing the user experience and user journey. Leading to a better user experience and improved retention metrics. Remember, acquiring a new customer is anywhere from five to 25 times more expensive than retaining an existing one!</p>
<p>One way to describe the usefulness of a data warehouse is by giving you a few sample questions. Questions that would be very difficult to answer without a data warehouse.</p>
<ul>
<li>Purchases from which traffic channels are most likely to be refunded at some point in the future? Might lead to revising your marketing budget.</li>
<li>Which traffic sources have the highest retention/LTV?</li>
<li>What is the correlation between subscription value ($) and churn rate?</li>
<li>What is the long-term impact of your campaigns or A/B experiments? Do quick wins lead to higher churn or lower LTV?</li>
<li>Does data from different sources add up? Maybe Google Analytics is missing some transactions that are in Shopify or perhaps some of them are duplicates?</li>
</ul>
<p>Here&#8217;s an example of the last one on the list above.</p>
<figure id="attachment_10018" aria-describedby="caption-attachment-10018" style="width: 624px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2021/05/screenshot-console.cloud_.google.com-2021.05.25-15_10_28.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="wp-image-10018 size-full" src="http://reflectivedata.com/wp-content/uploads/2021/05/screenshot-console.cloud_.google.com-2021.05.25-15_10_28.png" alt="Google Analytics vs Shopify order count" width="624" height="896" srcset="https://reflectivedata.com/wp-content/uploads/2021/05/screenshot-console.cloud_.google.com-2021.05.25-15_10_28.png 624w, https://reflectivedata.com/wp-content/uploads/2021/05/screenshot-console.cloud_.google.com-2021.05.25-15_10_28-488x700.png 488w" sizes="(max-width: 624px) 100vw, 624px" /></a><figcaption id="caption-attachment-10018" class="wp-caption-text">Google Analytics vs Shopify order count</figcaption></figure>
<p>As you can see, Google Analytics is missing a good amount of transactions and this requires further investigation. Definitely something you should include in your Google Analytics dashbaord.</p>
<p>This was just a short list of ideas to get you thinking about what is possible with a proper data warehouse. You can trust me when I say that I&#8217;ve seen companies become truly data-driven after they&#8217;ve implemented a tailor-made data warehouse and started digging for insights they couldn&#8217;t before.</p>
<h3>Working with automatically recurring events</h3>
<p>It is important to keep in mind that some retention metrics can change without the user themselves taking any action. You need to make sure that those cases are being tracked and taken into account. Here are a few examples.</p>
<ul>
<li>Recurring orders/payments</li>
<li>Subscription expirations</li>
<li>Payment method expirations</li>
<li>Orders being changed/cancelled (i.e. due to missing item)</li>
</ul>
<p>If your data warehouse was configured properly, you should have this data already available. Just make sure to include it in your analysis and reports.</p>
<p>In case you don&#8217;t have a data warehouse and you&#8217;re trying to solve this with Google Analytics alone then you need to use the <a href="https://developers.google.com/analytics/devguides/collection/protocol/v1">Measurement Protocol</a>. Some of the more common subscription platforms like ReCharge for Shopify have this built-in or solvable with some 3-rd party solutions but quite often custom development is required. In which case, you should think about implementing a data warehouse instead.</p>
<h2>Conclusion</h2>
<p>If you&#8217;re in a business where customers are expected to generate value more than once (repeat purchase, subscription etc.) then you need to start focusing on your retention metrics.</p>
<p>Google Analytics can get you started with the basic metrics and limited accuracy. A much better setup would be Google Analytics combined with <a href="http://reflectivedata.com/services/google-analytics-parallel-tracking/">Parallel Tracking</a> and if you&#8217;re serious about optimizing for those metrics then you need a <a href="http://reflectivedata.com/analytics-data-pipeline/">custom-built data warehouse</a> where all marketing data is pulled together.</p>
<p>Feel free to post your ideas and questions in the comments below. If you&#8217;d like to get some consultation and discuss your ideas further, <a href="http://reflectivedata.com/services/analytics-services/">get in touch with us</a>.</p>
<p>The post <a href="https://reflectivedata.com/measure-long-term-metrics-like-customer-lifetime-value-ltv-using-google-analytics/">Measure Long-Term Metrics Like Customer Lifetime Value (LTV) Using Google Analytics</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://reflectivedata.com/measure-long-term-metrics-like-customer-lifetime-value-ltv-using-google-analytics/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Case Study: Storing Google Analytics Data Within The European Union or Locally</title>
		<link>https://reflectivedata.com/case-study-storing-google-analytics-data-within-european-union-or-locally/</link>
					<comments>https://reflectivedata.com/case-study-storing-google-analytics-data-within-european-union-or-locally/#respond</comments>
		
		<dc:creator><![CDATA[Jason Dolan]]></dc:creator>
		<pubDate>Fri, 12 Mar 2021 12:06:18 +0000</pubDate>
				<category><![CDATA[BigQuery]]></category>
		<category><![CDATA[Case Study]]></category>
		<category><![CDATA[Data Pipeline]]></category>
		<category><![CDATA[Google Analytics]]></category>
		<guid isPermaLink="false">http://reflectivedata.com/?p=8887</guid>

					<description><![CDATA[<p>Data protection and privacy rules are getting tougher all over the world. This is especially true for the European Union and even more so for some specific industries. Including finance, medical and others that handle sensitive information about their users.</p>
<p>While Google Analytics has been making some improvements in the privacy area and is GDPR compliant, this is not enough for many businesses and industries.</p>
<p>At Reflective Data, we're often working with companies that are under close monitoring of their regulators. To help them out, we've built custom solutions that allow storing Google Analytics within the European Union or sometimes even completely locally.</p>
<p>The post <a href="https://reflectivedata.com/case-study-storing-google-analytics-data-within-european-union-or-locally/">Case Study: Storing Google Analytics Data Within The European Union or Locally</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></description>
										<content:encoded><![CDATA[<blockquote><p><span style="font-size: 23px;"><em>With the help from Reflective Data and using their custom data pipeline for Google Analytics, we were able to avoid sending data to Google Analytics, store everything within the EU and still benefit from the rich and actionable dataset you get with Google Analytics.</em></span></p>
<p style="text-align: right;">Aaron, Chief Data Officer</p>
</blockquote>
<p>&nbsp;</p>
<blockquote><p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4e2.png" alt="📢" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Everything mentioned in this article applies to both Google Analytics Universal Analytics and GA4, including the built solutions.</p></blockquote>
<p>Data protection and privacy rules are getting tougher all over the world. This is especially true for the European Union and even more so for some specific industries. Including finance, medical and others that handle sensitive information about their users.</p>
<p>While Google Analytics has been making some <a href="https://support.google.com/analytics/answer/9019185?hl=en">improvements in the privacy area</a> and is GDPR compliant, this is not enough for many businesses and industries.</p>
<p>At Reflective Data, we&#8217;re often working with companies that are under close monitoring of their regulators. To help them out, we&#8217;ve built custom solutions that allow storing Google Analytics data within the European Union or sometimes even completely locally, on the servers of our client.</p>
<h2>The challenge</h2>
<p>Do we want it or not, the regulations for collecting, processing and storing data are getting stiffer each year. European Union, with rules like <a href="https://gdpr-info.eu/">GDPR</a>, is a trendsetter in data protection.</p>
<p>While it&#8217;s good from a customers&#8217; perspective, following all those rules and regulations can be quite a challenge for businesses that have to follow them. Especially, as new rules are introduced and the penalties for not following them <a href="https://www.itgovernance.co.uk/dpa-and-gdpr-penalties">can reach millions</a>.</p>
<p>More often than not, the regulations are being launched faster than companies can adopt. Even if the company themselves are doing everything right, it&#8217;s likely that some third-party software they&#8217;re using is lacking behind.</p>
<p>At Reflective Data, we have been contacted by numerous companies that, for a reason or another, aren&#8217;t able to use Google Analytics but would still require a similar dataset and comparable functionality. Let&#8217;s be honest, Google Analytics and its Universal Analytics data model is still one of the best ones available for marketing attribution and website user behavior analysis.</p>
<p><em>Yes, <a href="https://support.google.com/analytics/answer/10089681">Google Analytics 4</a> will be the future of tracking but it&#8217;s nowhere near being ready for production for most businesses due to lacking several critical features.</em></p>
<h2>The solution</h2>
<p>One of our most popular tools is the <a href="http://reflectivedata.com/services/google-analytics-parallel-tracking/">Parallel Tracking for Google Analytics</a>. It&#8217;s a system that allows sending raw hit-level Google Analytics data into a data warehouse. Most commonly, our clients choose this solution for the following reasons.</p>
<ul>
<li>They hit the 10M/hits/mo limit</li>
<li>Problems with data sampling</li>
<li>Looking for alternatives for Google Analytics 360</li>
<li>Need access to raw hit-level data</li>
</ul>
<p>These are all nice features that our clients love but there&#8217;s one more – Parallel Tracking can work without sending data to Google Analytics at all. This is thanks to how our technology was built. Instead of pulling data from Google Analytics using the <a href="https://developers.google.com/analytics/devguides/reporting/core/v4">Reporting API</a> (as many solutions do), we are duplicating all hits that are sent to Google&#8217;s data processing endpoint and sending them to our engine as well. This means, with a simple tracking code modification, we can disable hits being sent to Google Analytics.</p>
<p>Our data processing engine works very similarly to what&#8217;s happening in Google Analytics. Hits are processed and enriched using the same methodology and sessions are processed just like in Google Analytics.</p>
<p>Ultimately, this means you&#8217;ll get the best from both worlds. The rich and actionable dataset of Google Analytics and full ownership of your data. So, whatever regulations apply to how you can store this kind of data, now you have a solution to comply with them.</p>
<blockquote><p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4e2.png" alt="📢" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Everything mentioned in this article applies to both Google Analytics Universal Analytics and GA4, including the built solutions.</p></blockquote>
<h2>Conclusion</h2>
<p>There are many reasons why you&#8217;d want to use Google Analytics as your analytics platform. Including the rich data model that works for both marketing attribution and user behavior analysis, (almost) unlimited amount of resources, great community, ease of finding people that can work with this model and more.</p>
<p>If, for some reason, you can&#8217;t use Google Analytics. Could be because they&#8217;re storing data outside of the EU or that you need to store everything locally. Then we have a solution for you!</p>
<p>For details and contact information, check out the <a href="http://reflectivedata.com/services/google-analytics-parallel-tracking/">product page for Parallel Tracking</a>.</p>
<p>Ending with another quote from a customer here.</p>
<blockquote><p><em>Before joining the financial institution that I&#8217;m currently working for, I had been a marketing director for various e-commerce companies. This meant that I was really used to tools like Google Analytics. Now, working in finance, I learned that using Google Analytics was not an option due to several regulations and we had to store all data locally on our own servers.</em></p>
<p><em>We had some kind of an in-house solution but that was nowhere near the capabilites and functionality I was used to. I was really lucky to learn about Reflective Data and their Parallel Tracking solution! They were really helpful, worked closely with our team to learn about our needs and finally built a solution that exceeded our expectations. 10/10 would recommend to anyone that for some reason isn&#8217;t allowed to use Google Analytics.</em></p>
<p style="text-align: right;">Michelle, Director of Online Marketing, Frankfurt</p>
</blockquote>
<p>It&#8217;s feedback like this that makes us love the work we do even more! <a href="http://reflectivedata.com/services/analytics-services/">Get in touch</a> and learn how we can help you, too.</p>
<p>For more case studies, <a href="http://reflectivedata.com/case-studies/">see here</a>.</p>
<p>The post <a href="https://reflectivedata.com/case-study-storing-google-analytics-data-within-european-union-or-locally/">Case Study: Storing Google Analytics Data Within The European Union or Locally</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://reflectivedata.com/case-study-storing-google-analytics-data-within-european-union-or-locally/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Case Study: Sending Data From Shopify and Google Analytics to BigQuery for More Advanced Analysis</title>
		<link>https://reflectivedata.com/case-study-sending-data-from-shopify-and-google-analytics-to-bigquery-for-more-advanced-analysis/</link>
					<comments>https://reflectivedata.com/case-study-sending-data-from-shopify-and-google-analytics-to-bigquery-for-more-advanced-analysis/#comments</comments>
		
		<dc:creator><![CDATA[Jason Dolan]]></dc:creator>
		<pubDate>Mon, 25 Jan 2021 15:11:20 +0000</pubDate>
				<category><![CDATA[BigQuery]]></category>
		<category><![CDATA[Case Study]]></category>
		<category><![CDATA[Data Pipeline]]></category>
		<category><![CDATA[Google Analytics]]></category>
		<guid isPermaLink="false">http://reflectivedata.com/?p=8090</guid>

					<description><![CDATA[<p>Using Google Analytics Parallel Tracking and a custom data pipeline for Shopify, we managed to get all necessary data in BigQuery for more advanced analysis and reporting.</p>
<p>The post <a href="https://reflectivedata.com/case-study-sending-data-from-shopify-and-google-analytics-to-bigquery-for-more-advanced-analysis/">Case Study: Sending Data From Shopify and Google Analytics to BigQuery for More Advanced Analysis</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><span style="font-size: 21pt;">Using Google Analytics Parallel Tracking and a custom data pipeline for Shopify, we managed to get all necessary data in BigQuery for more advanced analysis and reporting.</span></p>
<blockquote><p><strong>About the client</strong></p>
<p>Our client is a successful e-commerce business, headquartered in the UK.</p>
<p>Their focus is on food supplements, nutritional products, and diet plans.</p>
<p>Depending on a season, their monthly online revenue is 1-1.5 million GBP (1.3 &#8211; 2 million USD). This comes from around 14k orders every month.</p></blockquote>
<p><em>Due to NDAs, we are not allowed to disclose the name of the client. Everything else in this case study remains unchanged.</em></p>
<h2>The challenge</h2>
<p>When the company in the focus of this case study first contacted us, their main concerns were about properly tracking customer lifetime value (LTV) and churn. Being in the business of food supplements where, naturally, a big chunk of revenue is coming through subscriptions (automatically recurring orders), keeping track of these metrics is extremely important.</p>
<h3>Tech stack</h3>
<p>The main tech tool stack for this client was a fairly standard one for an e-commerce business of this size. <a href="https://www.shopify.com/plus">Shopify Plus</a> for website and order processing, <a href="https://rechargepayments.com/">ReCharge</a> for handling subscriptions, <a href="https://analytics.google.com/analytics/web/">Google Analytics</a> for general reporting, and <a href="https://www.shipstation.com/">ShipStation</a> for managing shipments.</p>
<p>***</p>
<p>While Shopify can provide you with reports for both LTV and churn (via ReCharge analytics), it is rather limited when it comes to attributing those numbers to your marketing and other efforts like <a href="https://www.optimizely.com/optimization-glossary/conversion-rate-optimization/">CRO</a> or A/B testing.</p>
<p>The client pointed out three main areas where they need a more detailed look into LTV and churn-related metrics:</p>
<ul>
<li>Ad Spend (mostly Google Ads and Facebook)</li>
<li>E-mail campaigns</li>
<li>CRO and A/B testing</li>
</ul>
<h2>The solution</h2>
<p>After having several meetings with various teams from the client&#8217;s side, we had a quite good understanding of what kind of reports they&#8217;re trying to build and what kind of data it requires.</p>
<p>In order to accommodate all of their needs, we had to involve data from the following sources:</p>
<ul>
<li>Shopify</li>
<li>ReCharge</li>
<li>Google Analytics</li>
<li>Google Ads</li>
<li>Facebook Ads</li>
<li>ShipStation</li>
<li>Google Optimize</li>
</ul>
<p>As our solution involved data from more than three sources, it was quite obvious that setting up a data warehouse is required. The client decided to go with our default recommendation for data warehouse software — <a href="https://cloud.google.com/bigquery/">BigQuery</a>.</p>
<h3>Getting data in BigQuery</h3>
<p>As LTV and churn had always been such essential metrics for the client, they had already tried solving this in-house. Their existing tool stack consisted of <a href="https://www.stitchdata.com/">Stitch</a>, <a href="https://supermetrics.com/">Supermetrics</a>, <a href="https://www.mysql.com/">MySQL</a> database and <a href="https://www.google.com/sheets/about/">Google Sheets</a>. While this could&#8217;ve worked in theory, the reality was a really slow system that constantly failed and produced inaccurate numbers.</p>
<p>Our solution involved using <a href="http://reflectivedata.com/services/google-analytics-parallel-tracking/">Parallel Tracking</a> technology for Google Analytics and a <a href="http://reflectivedata.com/analytics-data-pipeline/">custom data pipeline</a> for the rest of the sources. This enabled us to modify the ETL for maximum efficiency while meeting all the data requirements.</p>
<p><a  href="http://reflectivedata.com/wp-content/uploads/2020/03/google-analytics-parallel-tracking_1.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-3746" src="http://reflectivedata.com/wp-content/uploads/2020/03/google-analytics-parallel-tracking_1.png" alt="Marketing Data Warehouse" width="900" height="259" srcset="https://reflectivedata.com/wp-content/uploads/2020/03/google-analytics-parallel-tracking_1.png 900w, https://reflectivedata.com/wp-content/uploads/2020/03/google-analytics-parallel-tracking_1-700x201.png 700w, https://reflectivedata.com/wp-content/uploads/2020/03/google-analytics-parallel-tracking_1-768x221.png 768w" sizes="(max-width: 900px) 100vw, 900px" /></a></p>
<h3>Building the reports</h3>
<p>Since our client was already familiar with the rest of Google&#8217;s Marketing Suite and it works really well with BigQuery, using <a href="https://datastudio.google.com/u/0/navigation/reporting">Data Studio</a> for building the reports was an easy choice. Besides being a free (!) tool, by leveraging the <a href="https://cloud.google.com/bigquery/docs/visualize-jupyter">BigQuery BI Engine</a>, Data Studio can provide you with the best performance as well!</p>
<p>After understanding the reports that would be used most frequently, we built a set of 2 main dashboards:</p>
<ul>
<li><strong>LTV</strong> per source/medium/country/product/campaign/age</li>
<li><strong>Churn</strong> per source/medium/country/product/campaign/age</li>
</ul>
<figure id="attachment_8099" aria-describedby="caption-attachment-8099" style="width: 1286px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2021/01/screenshot-datastudio.google.com-2021.01.18-17_55_44.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="size-full wp-image-8099" src="http://reflectivedata.com/wp-content/uploads/2021/01/screenshot-datastudio.google.com-2021.01.18-17_55_44.png" alt="Example of an LTV report" width="1286" height="436" srcset="https://reflectivedata.com/wp-content/uploads/2021/01/screenshot-datastudio.google.com-2021.01.18-17_55_44.png 1286w, https://reflectivedata.com/wp-content/uploads/2021/01/screenshot-datastudio.google.com-2021.01.18-17_55_44-700x237.png 700w, https://reflectivedata.com/wp-content/uploads/2021/01/screenshot-datastudio.google.com-2021.01.18-17_55_44-1024x347.png 1024w, https://reflectivedata.com/wp-content/uploads/2021/01/screenshot-datastudio.google.com-2021.01.18-17_55_44-768x260.png 768w" sizes="(max-width: 1286px) 100vw, 1286px" /></a><figcaption id="caption-attachment-8099" class="wp-caption-text">Example of an LTV report</figcaption></figure>
<p>These dashboards provide the client with a good overview of their key metrics and how they correlate with some of the more common dimensions/attributes. This is a good stepping stone for a deeper analysis and digging for insights.</p>
<p>Luckily, the client&#8217;s marketing team already had a few people that were comfortable working with SQL, Jupyter Notebooks etc. This meant that by pointing them in the right direction and providing a few guidelines, they had everything needed for digging deeper into data stored in BigQuery.</p>
<figure id="attachment_8098" aria-describedby="caption-attachment-8098" style="width: 1284px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2021/01/Screenshot-2021-01-18-at-17.53.01.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="size-full wp-image-8098" src="http://reflectivedata.com/wp-content/uploads/2021/01/Screenshot-2021-01-18-at-17.53.01.png" alt="Example of a churn report" width="1284" height="563" srcset="https://reflectivedata.com/wp-content/uploads/2021/01/Screenshot-2021-01-18-at-17.53.01.png 1284w, https://reflectivedata.com/wp-content/uploads/2021/01/Screenshot-2021-01-18-at-17.53.01-700x307.png 700w, https://reflectivedata.com/wp-content/uploads/2021/01/Screenshot-2021-01-18-at-17.53.01-1024x449.png 1024w, https://reflectivedata.com/wp-content/uploads/2021/01/Screenshot-2021-01-18-at-17.53.01-768x337.png 768w" sizes="(max-width: 1284px) 100vw, 1284px" /></a><figcaption id="caption-attachment-8098" class="wp-caption-text">Example of a churn report</figcaption></figure>
<p>Besides dashboards and enabling ad-hoc analysis, a few teams also wished for a periodic automated report in their inbox. This was also something we were happy to set up using some custom software on <a href="https://cloud.google.com/">Google Cloud</a>.</p>
<h2>Conclusion</h2>
<p>While this project started as a rather standard one for us, it turned out to include several custom parts that made it fun for us and enabled maximum effectiveness for the client.</p>
<p>What better way to take it all together than a few words from the team we worked with on the client&#8217;s side.</p>
<blockquote><p>We turned to Reflective Data with a rather concrete goal in mind — to fix our LTV and churn tracking and reporting. Being in the business of  food supplements, a large portion of our revenues come from recurring orders. This makes keeping track of those metrics extremely important for us. Not only was Reflective Data able to set up a proper tracking system, they helped us figure out the dashboards, email reports and helped our analysts on SQL analysis! Couldn&#8217;t be happier about this!</p></blockquote>
<p>Nothing&#8217;s better than such warm words from a happy client!</p>
<p>If you, too, need help with your analytics &amp; data setup, <a href="http://reflectivedata.com/services/analytics-services/">get in touch with us</a> for a free consultation session. I&#8217;m sure we can find a solution that suits both of us.</p>
<p>The post <a href="https://reflectivedata.com/case-study-sending-data-from-shopify-and-google-analytics-to-bigquery-for-more-advanced-analysis/">Case Study: Sending Data From Shopify and Google Analytics to BigQuery for More Advanced Analysis</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://reflectivedata.com/case-study-sending-data-from-shopify-and-google-analytics-to-bigquery-for-more-advanced-analysis/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Case Study: Solving The Discrepancy Between A/B Testing Tool, Google Analytics and Backend Data For a Large E-Commerce Business</title>
		<link>https://reflectivedata.com/case-study-solving-ab-testing-google-analytics-backend-finance-discrepancy-ecommerce/</link>
					<comments>https://reflectivedata.com/case-study-solving-ab-testing-google-analytics-backend-finance-discrepancy-ecommerce/#comments</comments>
		
		<dc:creator><![CDATA[Jason Dolan]]></dc:creator>
		<pubDate>Fri, 15 Jan 2021 11:33:35 +0000</pubDate>
				<category><![CDATA[A/B testing]]></category>
		<category><![CDATA[BigQuery]]></category>
		<category><![CDATA[Case Study]]></category>
		<category><![CDATA[Google Analytics]]></category>
		<guid isPermaLink="false">http://reflectivedata.com/?p=7961</guid>

					<description><![CDATA[<p>Working with skewed data can be worse than having no data at all. This is why we're always promoting all sorts of analytics audits and making sure all data sources agree with each other. At the very least, you should know why the numbers in different tools don't match (i.e. analytics doesn't include offline sales but backend does).</p>
<p>Our client in this case study contacted us with a quite specific problem. They were running a decent CRO program with 4-6 A/B experiments running every month. The problem they had with the program, though, was that the numbers they saw in their testing tool Optimizely, Google Analytics and backend didn't match. In fact, there was a ~35% discrepancy overall.</p>
<p>The post <a href="https://reflectivedata.com/case-study-solving-ab-testing-google-analytics-backend-finance-discrepancy-ecommerce/">Case Study: Solving The Discrepancy Between A/B Testing Tool, Google Analytics and Backend Data For a Large E-Commerce Business</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><span style="font-size: 21pt;">With the help of Reflective Data&#8217;s custom data pipeline, BigQuery and improved analytics integrations, we managed to bring the discrepancy between different tools reporting on similar data from ~35% down to ~2.5%.</span></p>
<blockquote><p><strong>About the client</strong></p>
<p>Our client, in this case study, is a large global e-commerce website, headquartered in the US.</p>
<p>Their main focus is on men&#8217;s clothing and they&#8217;re specialising in dress shirts, as well as ties, suits, casualwear, shoes and accessories.</p>
<p>Depending on a season, their monthly online revenue is between 10 and 15 million USD. This comes from around 45k monthly transactions.</p></blockquote>
<p><em>Due to NDAs, we are not allowed to disclose the name of the client. Everything else in this case study remains unchanged.</em></p>
<h2>The challenge</h2>
<p>Working with skewed data can be worse than having no data at all. This is why we&#8217;re always promoting all sorts of analytics audits and making sure all data sources agree with each other. At the very least, you should know why the numbers in different tools don&#8217;t match (i.e. analytics doesn&#8217;t include offline sales but backend does).</p>
<p>Our client in this case study contacted us with a quite specific problem. They were running a decent CRO program with 4-6 A/B experiments running every month. The problem they had with the program, though, was that the numbers they saw in their testing tool <a href="https://www.optimizely.com/">Optimizely</a>, <a href="https://analytics.google.com/analytics/web/#/">Google Analytics</a> and backend didn&#8217;t match. In fact, there was a ~35% discrepancy overall.</p>
<p>While it is almost impossible to reach 100% accuracy with Javascript based tools due to ad-blockers, cookie deletion etc. and some tools have different logic for calculation metrics like conversions, sessions, users — we knew that this discrepancy is way off the limits and immediate action is needed.</p>
<p>This kind of discrepancy was even more concerning as the client was actively running their CRO program. It wasn&#8217;t rare for them to see test results flip based on where they got their numbers (Google Analytics vs Optimizely). This put their entire CRO effort under question internally and the management wasn&#8217;t far from shutting it down. The results just weren&#8217;t trustworthy enough.</p>
<h2>The solution</h2>
<p>Even though the client described some rather clear symptoms, it is necessary to always start with a proper diagnosis of the problem. This way we can be sure that there indeed is a discrepancy between all these tools &#8211; in some cases, the problem can be in how you understand/read the numbers. Another goal for the diagnosis was to understand the size/reach of the problem.</p>
<h3>Diagnosis</h3>
<p>The very first thing we did to diagnose and measure the discrepancy was to get access to all data sources. That included the testing tool (Optimizely), Google Analytics and the client&#8217;s backend numbers. Next, we made sure the metrics are comparable (i.e. all the transactions we see in the backend are indeed supposed to show up in Google Analytics as well). We then put those numbers side-by-side in a spreadsheet and grouped them by date.</p>
<p>After analyzing the daily numbers, we came to the conclusion that there is indeed an average of 35% discrepancy between Optimizely and Google Analytics (less transactions in the testing tool). The discrepancy between Google Analytics and backend, on the other hand, was rather small — just below 3%. This can be considered OK for a Javascript-based analytics tool.</p>
<p>The discrepancy between Google Analytics and Optimizely meant we had to dig deeper on that side. Unfortunately, Optimizely doesn&#8217;t give access to the raw underlying transaction ID level data by default. Luckily, though, we were able to get this data from their support team. With Google Analytics, exporting transaction-level data was doable with a custom report and CSV export. For the Google Analytics dataset, we included dimensions that would give us some extra context — payment gateway, products, device category, country etc.</p>
<p>After pulling transaction-ID-level data from Optimizely and Google Analytics in spreadsheets, we wrote a quick function that would mark the transactions in Google Analytics that didn&#8217;t show up in Optimizely. Then it was time to start looking for some patterns. Is there something in common for all missing transactions?</p>
<p>This is how one version of this spreadsheet looked like. This was to highlight transactions in the backend that didn&#8217;t show up in Google Analytics.</p>
<figure id="attachment_8056" aria-describedby="caption-attachment-8056" style="width: 2560px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2021/01/screenshot-docs.google.com-2021.01.15-12_52_23-scaled.jpg" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="size-full wp-image-8056" src="http://reflectivedata.com/wp-content/uploads/2021/01/screenshot-docs.google.com-2021.01.15-12_52_23-scaled.jpg" alt="Google Analytics vs Backend" width="2560" height="1437" srcset="https://reflectivedata.com/wp-content/uploads/2021/01/screenshot-docs.google.com-2021.01.15-12_52_23-scaled.jpg 2560w, https://reflectivedata.com/wp-content/uploads/2021/01/screenshot-docs.google.com-2021.01.15-12_52_23-700x393.jpg 700w, https://reflectivedata.com/wp-content/uploads/2021/01/screenshot-docs.google.com-2021.01.15-12_52_23-1024x575.jpg 1024w, https://reflectivedata.com/wp-content/uploads/2021/01/screenshot-docs.google.com-2021.01.15-12_52_23-768x431.jpg 768w, https://reflectivedata.com/wp-content/uploads/2021/01/screenshot-docs.google.com-2021.01.15-12_52_23-1536x862.jpg 1536w, https://reflectivedata.com/wp-content/uploads/2021/01/screenshot-docs.google.com-2021.01.15-12_52_23-2048x1150.jpg 2048w" sizes="(max-width: 2560px) 100vw, 2560px" /></a><figcaption id="caption-attachment-8056" class="wp-caption-text">Google Analytics vs Backend</figcaption></figure>
<h3>Implementing the fixes</h3>
<p>Since the website and payment processing system for this website were rather complex, it turned out there are more than one such patterns. They were all related to the use of various payment gateways, device categories and local sub-sites for specific countries.</p>
<p>In order to come up with a proper solution, we had to dig even deeper into how transaction tracking was set up for both Google Analytics and Optimizely. Luckily, we were able to detect the shortcomings quite fast and fixing them wasn&#8217;t rocket science either. After a few rounds of testing and a couple of A/A tests run in Optimizely, we were able to get the discrepancy number from 35% down to 2.5%.</p>
<p>The main reason for this mismatch was that while <a href="https://marketingplatform.google.com/about/tag-manager/">Google Tag Manager</a> was in use to unify transaction tracking for Google Analytics, tracking snippets for Optimizely were all over the place. The solution involved moving all Optimizely tracking into Google Tag Manager and use the same triggers that were being used for Google Analytics.</p>
<h2>Going forward</h2>
<p>Since the site has a rather complicated structure with multiple payment gateways and different pages for different countries/markets, we wanted to make sure that after implementing the fixes, the discrepancy would not start sneaking in again.</p>
<p>The solution here was a proper monitoring system that would get data from Google Analytics, Optimizely and the backend. Since the client was already on Google Cloud, we recommended using <a href="https://cloud.google.com/bigquery">BigQuery</a> as their data warehouse technology. Besides being really fast and cost-effective, BigQuery has some of the best integrations which makes implementing and using it as a marketing data warehouse much easier.</p>
<h3>Getting data into BigQuery</h3>
<p>For Google Analytics data, we used a technology called <a href="http://reflectivedata.com/services/google-analytics-parallel-tracking/">Parallel Tracking</a>. This allowed us to send raw hit-level unsampled Google Analytics into BigQuery. In real-time and for much cheaper than using Google Analytics 360.</p>
<p>To get data from Optimizely into BigQuery, we built a custom connector using <a href="https://docs.developers.optimizely.com/web/docs/rest-api-introduction">Optimizely API</a>. This solution allowed us to pull only the information that was necessary and make sure it&#8217;s always up to date.</p>
<p>Since the client had a custom backend infrastructure, we built a custom connector between that and BigQuery as well.</p>
<p>All connectors are now running on Google Cloud.</p>
<h3>Reporting and alerts</h3>
<p>In order for the client to be able to check the numbers from all three sources in one place, we built a dashboard using <a href="https://datastudio.google.com/u/0/navigation/reporting">Google Data Studio</a> which has a native connector with BigQuery.</p>
<p>To detect any discrepancies as soon as possible, we also created an automated reporting system with some custom code on Google Cloud Platform. This will send an email to relevant parties every time a certain threshold is passed. So far, it has already detected a few issues the client was able to fix before larger damage was done.</p>
<h2>Conclusion</h2>
<p>Overall, we were quite happy with the results of this project but I believe it&#8217;s better to end with a quote from the client.</p>
<blockquote><p><em>We hadn&#8217;t worked with Reflective Data before but they were recommended by our friends in the industry. We needed a quick but reliable solution to our problem. Our management was questioning the results of our CRO program and we weren&#8217;t far from getting shut down.</em></p>
<p><em>Team at Reflective Data was able to immediately understand our problem and jumped right into solving it. I think all together it took just around 2 weeks for them to diagnose and together with out IT team fix the problems behind this rather large discrepancy.</em></p>
<p><em>After great success with our first project together, we&#8217;ve continued working with them on various data-related projects around our data warehouse, reporting and dashboards.</em></p>
<p style="text-align: right;">Director of e-commerce</p>
</blockquote>
<p>We are so glad about these words from our client and it&#8217;s moments like this that give meaning to our work.  By the way, their CRO program has only grown since we were able to fix the mismatch. So, in a way, we were part of saving the jobs of an entire team.</p>
<p>Should you have similar problems with discrepancy or other data related requirements, <a href="http://reflectivedata.com/analytics-data-pipeline/">please contact us</a> and I&#8217;m quite sure we can work together and find a solution.</p>
<p>The post <a href="https://reflectivedata.com/case-study-solving-ab-testing-google-analytics-backend-finance-discrepancy-ecommerce/">Case Study: Solving The Discrepancy Between A/B Testing Tool, Google Analytics and Backend Data For a Large E-Commerce Business</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://reflectivedata.com/case-study-solving-ab-testing-google-analytics-backend-finance-discrepancy-ecommerce/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>[Medium] Hit-Level Unsampled Google Analytics to BigQuery Without 360</title>
		<link>https://reflectivedata.com/medium-hit-level-unsampled-google-analytics-data-to-bigquery-without-360/</link>
					<comments>https://reflectivedata.com/medium-hit-level-unsampled-google-analytics-data-to-bigquery-without-360/#respond</comments>
		
		<dc:creator><![CDATA[Silver Ringvee]]></dc:creator>
		<pubDate>Wed, 30 Dec 2020 11:11:11 +0000</pubDate>
				<category><![CDATA[BigQuery]]></category>
		<category><![CDATA[Data Pipeline]]></category>
		<category><![CDATA[Google Analytics]]></category>
		<category><![CDATA[Medium]]></category>
		<guid isPermaLink="false">http://reflectivedata.com/?p=7809</guid>

					<description><![CDATA[<p>Google Analytics and BigQuery, two tools that both the major players in their respective segments. Yet, there is no way to easily send raw hit-level data from one to another.</p>
<p>In this article, originally posted on medium.com, we're going to walk through the reasons you might want to access raw Google Analytics data in BigQuery and a few solutions that will get you there.</p>
<p>The post <a href="https://reflectivedata.com/medium-hit-level-unsampled-google-analytics-data-to-bigquery-without-360/">[Medium] Hit-Level Unsampled Google Analytics to BigQuery Without 360</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Google Analytics and BigQuery, two tools that are both major players in their respective segments. Yet, there is no way to easily send raw hit-level data from one to another.</p>
<p>In this article, originally posted on <a href="https://medium.com/reflective-data/hit-level-unsampled-google-analytics-to-bigquery-without-360-a6a1477a5d3">medium.com</a>, we&#8217;re going to walk through the reasons you might want to access raw Google Analytics data in BigQuery and a few solutions that will get you there.</p>
<p>***</p>
<p id="baed" class="mq mr le vn b mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni nj nk nl nm nn hw ci" data-selectable-paragraph="">Google Analytics is, without a doubt, the most popular tool in the digital analytics segment. Besides being the best tool for tracking e-commerce, content and lead-gen websites, with some modification you can use Google Analytics for <a class="co no" href="http://reflectivedata.com/using-google-analytics-for-tracking-saas/" rel="noopener nofollow">tracking SaaS</a> and other web apps as well.</p>
<p id="c028" class="mq mr le vn b mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni nj nk nl nm nn hw ci" data-selectable-paragraph="">While being a really powerful and flexible tool, Google Analytics, too, has a few shortcomings. Perhaps the biggest problem every advanced user faces is the fact that there is no way to access raw hit-level data. The second major issue with Google Analytics is related to sampling and data collection limits.</p>
<p id="3c30" class="mq mr le vn b mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni nj nk nl nm nn hw ci" data-selectable-paragraph="">Now, let’s take a look at some of the ways you can overcome these shortcomings without spending a ton on Google Analytics 360 — a premium version of Google Analytics that, to some extent, also eliminates these issues.</p>
<p id="d41b" class="mq mr le vn b mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni nj nk nl nm nn hw ci" data-selectable-paragraph=""><em class="np">PS! If you already have GA 360, these techniques will give you an even more robust and flexible tracking solution.</em></p>
<h2 id="1778" class="nq nr le aw ep vo nt vp vq vr nv vs vt vu nx vv vw vx nz vy vz wa ob wb wc oc ci" data-selectable-paragraph="">Table of Contents</h2>
<p id="30c4" class="mq mr le vn b mt od mv mw mx oe mz na nb of nd ne nf og nh ni nj oh nl nm nn hw ci" data-selectable-paragraph="">– <a class="co no" href="https://medium.com/reflective-data/hit-level-unsampled-google-analytics-to-bigquery-without-360-a6a1477a5d3#84b5" rel="noopener">Sampling in Google Analytics</a><br />
– <a class="co no" href="https://medium.com/reflective-data/hit-level-unsampled-google-analytics-to-bigquery-without-360-a6a1477a5d3#166b" rel="noopener">Ways to avoid sampling in Google Analytics</a><br />
– <a class="co no" href="https://medium.com/reflective-data/hit-level-unsampled-google-analytics-to-bigquery-without-360-a6a1477a5d3#98f4" rel="noopener">Why do you even need the raw data</a><br />
– <a class="co no" href="https://medium.com/reflective-data/hit-level-unsampled-google-analytics-to-bigquery-without-360-a6a1477a5d3#633a" rel="noopener">How to get access to unsampled hit-level raw data</a><br />
– <a class="co no" href="https://medium.com/reflective-data/hit-level-unsampled-google-analytics-to-bigquery-without-360-a6a1477a5d3#11ea" rel="noopener">What about the price</a></p>
<p data-selectable-paragraph="">***</p>
<p><a href="https://medium.com/reflective-data/hit-level-unsampled-google-analytics-to-bigquery-without-360-a6a1477a5d3" target="_blank" rel="noopener">Read the full post on medium.com</a></p>
<p>The post <a href="https://reflectivedata.com/medium-hit-level-unsampled-google-analytics-data-to-bigquery-without-360/">[Medium] Hit-Level Unsampled Google Analytics to BigQuery Without 360</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://reflectivedata.com/medium-hit-level-unsampled-google-analytics-data-to-bigquery-without-360/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Query Google Analytics Data Using SQL</title>
		<link>https://reflectivedata.com/how-to-query-google-analytics-data-using-sql/</link>
					<comments>https://reflectivedata.com/how-to-query-google-analytics-data-using-sql/#comments</comments>
		
		<dc:creator><![CDATA[Jason Dolan]]></dc:creator>
		<pubDate>Fri, 30 Oct 2020 14:48:47 +0000</pubDate>
				<category><![CDATA[BigQuery]]></category>
		<category><![CDATA[Data Pipeline]]></category>
		<category><![CDATA[Google Analytics]]></category>
		<category><![CDATA[Technical]]></category>
		<guid isPermaLink="false">http://reflectivedata.com/?p=6985</guid>

					<description><![CDATA[<p>SQL is the most popular language for professionals to communicate with databases and query data. Google Analytics is the most popular tool for digital analytics. How come there's no way to query Google Analytics data using SQL? In this article, we'll explore the solutions.</p>
<p>The post <a href="https://reflectivedata.com/how-to-query-google-analytics-data-using-sql/">How to Query Google Analytics Data Using SQL</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>SQL (pronounced &#8220;ess-que-el&#8221;) stands for Structured Query Language. SQL is a language used to communicate with databases. According to ANSI (American National Standards Institute), it is the standard language for relational database management systems. Most data analysts, data scientists and data engineers use SQL on daily basis to complete tasks related to ad-hoc queries, reporting and data visualization.</p>
<p>Google Analytics, on the other hand, is the most popular tool in the digital analytics world. It is used to keep track of marketing efforts, user behavior, traffic sources and more. The most common way to access data from Google Analytics is the web user interface. Alternative options include the <a href="https://developers.google.com/analytics/devguides/reporting/core/v4" target="_blank" rel="noopener noreferrer">Reporting API</a> or external tools like <a href="https://looker.com/" target="_blank" rel="noopener noreferrer">Looker</a> or <a href="https://datastudio.google.com/" target="_blank" rel="noopener noreferrer">Data Studio</a>.</p>
<p>What&#8217;s interesting, though, is that there is no way to use the most popular query language to query data from the most popular analytics platform. That&#8217;s right, you cannot query Google Analytics data using SQL.</p>
<p>This is no big deal for the more basic users just checking the built-in reports in the Google Analytics UI. It is, for sure, a limitation for power users working with tools like Python and use data in custom models or even feed it into machine learning algorithms and recommendation engines.</p>
<p>In this article, we&#8217;re going to cover the solutions that will enable you to query your Google Analytics data using SQL.</p>
<h2>Step 1 &#8211; Getting data into a database/data warehouse</h2>
<p>As mentioned above, there is, unfortunately, no way to query data directly from Google Analytics using SQL. This means that the first step is to get data into some sort of a relational database or a data warehouse that support SQL queries.</p>
<p>There are three options for sending Google Analytics data into some external data storage.</p>
<h3>1. Google Analytics 360 to BigQuery export</h3>
<p>If your company has the 360 (premium) version of Google Analytics then you can use its native BigQuery export feature. <a href="https://support.google.com/analytics/answer/3437618?hl=en" target="_blank" rel="noopener noreferrer">Here are the details</a> for setting this up. Keep in mind, though, that this solution will not work with the standard (free) version of Google Analytics.</p>
<h3>2. Google Analytics Parallel Tracking</h3>
<p>Google Analytics Parallel Tracking is a third party service that sends all of the raw hits into a data warehouse of your choice (i.e. BigQuery). These hits are then processed into sessions to provide a dataset similar to Google Analytics 360 export.</p>
<p>While this solution is not free, it will cost you only a small fraction of the cost of Google Analytics 360.</p>
<p><a href="http://reflectivedata.com/analytics-data-pipeline/from-google-analytics-to-bigquery/" target="_blank" rel="noopener noreferrer">Getting started with Google Analytics Parallel Tracking</a>.</p>
<h3>3. Export data using the API</h3>
<p>This is the most technical solution of the three. It leverages the<a href="https://developers.google.com/analytics/devguides/reporting/core/v4" target="_blank" rel="noopener noreferrer"> Google Analytics Reporting API</a> to pull data from Google Analytics and into your database or data warehouse.</p>
<p>One way to get started with this solution is to use the <a href="https://code.markedmondson.me/gago/" target="_blank" rel="noopener noreferrer">gago library</a> in Go language to communicate with the Reporting API. Then you need the code for writing this data into your database.</p>
<p>The limitations with data export solution are that you can&#8217;t query all of the metrics and dimensions at the same time, you&#8217;re still affected by the data collection and sampling limits of Google Analytics and a modification in your tracking system is required (custom dimensions for hit timestamp, hit type, sessions ID, client ID and more).</p>
<h2>Step 2 &#8211; Query Google Analytics data using SQL</h2>
<p>This depends a bit on the setup you used to send data into a database/data warehouse and the type of data warehouse being used. Since the most common option is <a href="http://reflectivedata.com/services/google-analytics-parallel-tracking/" target="_blank" rel="noopener noreferrer">Parallel Tracking</a> and <a href="https://cloud.google.com/bigquery" target="_blank" rel="noopener noreferrer">Google BigQuery</a>, we are going to use these in our examples as well.</p>
<p>The simplest way you can run your first SQL query against your Google Analytics data stored in BigQuery is to go into the <a href="https://console.cloud.google.com/bigquery" target="_blank" rel="noopener noreferrer">BigQuery user interface</a> and choose the right dataset containing your Google Analytics data.</p>
<p>With parallel tracking, you will have your Google Analytics data stored in three separate tables.</p>
<ul>
<li>raw_hits</li>
<li>processed_hits</li>
<li>processed_sessions</li>
</ul>
<p>Depending on the type of query you want to run, choose the right table. Keep in mind that some of the information (bounce rate, geo-location etc.) isn&#8217;t available before hits are processed into sessions.</p>
<p>For example, we could write a simple SQL query like this and see the top 10 countries by the number of Google Analytics sessions.</p>
<figure id="attachment_7056" aria-describedby="caption-attachment-7056" style="width: 588px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2020/10/screenshot-console.cloud_.google.com-2020.10.27-17_16_01.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="size-full wp-image-7056" src="http://reflectivedata.com/wp-content/uploads/2020/10/screenshot-console.cloud_.google.com-2020.10.27-17_16_01.png" alt="Query Google Analytics data using SQL" width="588" height="669" /></a><figcaption id="caption-attachment-7056" class="wp-caption-text">Query Google Analytics data using SQL</figcaption></figure>
<p>Now, to make this query a bit more interesting, we might add in metrics like users and bounce rate. All doable with SQL, of course.</p>
<p>Notice how you can define your own rules for things like &#8220;bounce&#8221; and &#8220;bounce rate&#8221;.</p>
<figure id="attachment_7058" aria-describedby="caption-attachment-7058" style="width: 678px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2020/10/screenshot-console.cloud_.google.com-2020.10.27-17_31_40.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="size-full wp-image-7058" src="http://reflectivedata.com/wp-content/uploads/2020/10/screenshot-console.cloud_.google.com-2020.10.27-17_31_40.png" alt="Query Google Analytics sessions, users and bounce rate using SQL" width="678" height="813" srcset="https://reflectivedata.com/wp-content/uploads/2020/10/screenshot-console.cloud_.google.com-2020.10.27-17_31_40.png 678w, https://reflectivedata.com/wp-content/uploads/2020/10/screenshot-console.cloud_.google.com-2020.10.27-17_31_40-584x700.png 584w" sizes="(max-width: 678px) 100vw, 678px" /></a><figcaption id="caption-attachment-7058" class="wp-caption-text">Query Google Analytics sessions, users and bounce rate using SQL</figcaption></figure>
<p>Pretty neat, right?</p>
<p>Using the BigQuery UI is good for testing your setup and quick ad-hoc queries. In most cases, though, you&#8217;ll probably use some sort of a BI tool. One of the popular options these days is Google Data Studio. So, let&#8217;s use this in our examples a well.</p>
<p>Google Data Studio is free and probably the easiest to get started with. That being said, it is still packed with useful features and makes creating interactive dashboards a fun and enjoyable process.</p>
<h3>Connecting BigQuery with Google Data Studio</h3>
<p>Google Data Studio, like many other BI tools, has a native integration for BigQuery as a data source.</p>
<figure id="attachment_7103" aria-describedby="caption-attachment-7103" style="width: 1063px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2020/10/Screenshot-2020-10-30-at-15.02.02.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="size-full wp-image-7103" src="http://reflectivedata.com/wp-content/uploads/2020/10/Screenshot-2020-10-30-at-15.02.02.png" alt="Connect BigQuery to Google Data Studio" width="1063" height="824" srcset="https://reflectivedata.com/wp-content/uploads/2020/10/Screenshot-2020-10-30-at-15.02.02.png 1063w, https://reflectivedata.com/wp-content/uploads/2020/10/Screenshot-2020-10-30-at-15.02.02-700x543.png 700w, https://reflectivedata.com/wp-content/uploads/2020/10/Screenshot-2020-10-30-at-15.02.02-1024x794.png 1024w, https://reflectivedata.com/wp-content/uploads/2020/10/Screenshot-2020-10-30-at-15.02.02-768x595.png 768w" sizes="(max-width: 1063px) 100vw, 1063px" /></a><figcaption id="caption-attachment-7103" class="wp-caption-text">Connect BigQuery to Google Data Studio</figcaption></figure>
<p>While you can automatically pull all data in a certain table, in most cases it&#8217;s a better idea to use a custom SQL query.</p>
<p>Data Studio has this feature built-in as well.</p>
<figure id="attachment_7106" aria-describedby="caption-attachment-7106" style="width: 1128px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2020/10/screenshot-datastudio.google.com-2020.10.30-15_09_45.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="size-full wp-image-7106" src="http://reflectivedata.com/wp-content/uploads/2020/10/screenshot-datastudio.google.com-2020.10.30-15_09_45.png" alt="Custom SQL query in Data Studio" width="1128" height="721" srcset="https://reflectivedata.com/wp-content/uploads/2020/10/screenshot-datastudio.google.com-2020.10.30-15_09_45.png 1128w, https://reflectivedata.com/wp-content/uploads/2020/10/screenshot-datastudio.google.com-2020.10.30-15_09_45-700x447.png 700w, https://reflectivedata.com/wp-content/uploads/2020/10/screenshot-datastudio.google.com-2020.10.30-15_09_45-1024x655.png 1024w, https://reflectivedata.com/wp-content/uploads/2020/10/screenshot-datastudio.google.com-2020.10.30-15_09_45-768x491.png 768w" sizes="(max-width: 1128px) 100vw, 1128px" /></a><figcaption id="caption-attachment-7106" class="wp-caption-text">Custom SQL query in Data Studio</figcaption></figure>
<p>In our example, we&#8217;re going to analyze the results of an A/B test run using <a href="https://vwo.com/" target="_blank" rel="noopener noreferrer">VWO</a>. We&#8217;re using VWO&#8217;s <a href="https://help.vwo.com/hc/en-us/articles/360021308973-Integrating-VWO-with-Universal-Analytics-by-Using-Google-Tag-Manager-Custom-Events-">custom-event-based integration</a> to send experiment data into Google Analytics.</p>
<p>It&#8217;s always a good idea to try your query in the BigQuery&#8217;s query editor before implementing it in Data Studio.</p>
<figure id="attachment_7107" aria-describedby="caption-attachment-7107" style="width: 1134px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2020/10/screenshot-console.cloud_.google.com-2020.10.30-15_18_28.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="size-full wp-image-7107" src="http://reflectivedata.com/wp-content/uploads/2020/10/screenshot-console.cloud_.google.com-2020.10.30-15_18_28.png" alt="Google Analytics VWO BigQuery" width="1134" height="982" srcset="https://reflectivedata.com/wp-content/uploads/2020/10/screenshot-console.cloud_.google.com-2020.10.30-15_18_28.png 1134w, https://reflectivedata.com/wp-content/uploads/2020/10/screenshot-console.cloud_.google.com-2020.10.30-15_18_28-700x606.png 700w, https://reflectivedata.com/wp-content/uploads/2020/10/screenshot-console.cloud_.google.com-2020.10.30-15_18_28-1024x887.png 1024w, https://reflectivedata.com/wp-content/uploads/2020/10/screenshot-console.cloud_.google.com-2020.10.30-15_18_28-768x665.png 768w" sizes="(max-width: 1134px) 100vw, 1134px" /></a><figcaption id="caption-attachment-7107" class="wp-caption-text">Google Analytics VWO BigQuery</figcaption></figure>
<p>Once we&#8217;re happy with the query and the results it returned, it&#8217;s time to put the query in Data Studio.</p>
<p>In Data Studio, we can start building all sorts of cool visualizations. For example this one for visualizing the funnels for Control and Variant 1 of our A/B test.</p>
<figure id="attachment_7110" aria-describedby="caption-attachment-7110" style="width: 1237px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2020/10/Screenshot-2020-10-30-at-16.02.53.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="size-full wp-image-7110" src="http://reflectivedata.com/wp-content/uploads/2020/10/Screenshot-2020-10-30-at-16.02.53.png" alt="A/B test visualization Google Data Studio" width="1237" height="499" srcset="https://reflectivedata.com/wp-content/uploads/2020/10/Screenshot-2020-10-30-at-16.02.53.png 1237w, https://reflectivedata.com/wp-content/uploads/2020/10/Screenshot-2020-10-30-at-16.02.53-700x282.png 700w, https://reflectivedata.com/wp-content/uploads/2020/10/Screenshot-2020-10-30-at-16.02.53-1024x413.png 1024w, https://reflectivedata.com/wp-content/uploads/2020/10/Screenshot-2020-10-30-at-16.02.53-768x310.png 768w" sizes="(max-width: 1237px) 100vw, 1237px" /></a><figcaption id="caption-attachment-7110" class="wp-caption-text">A/B test visualization Google Data Studio</figcaption></figure>
<p>Data Studio is really flexible when it comes to building custom reports, interactive dashboards and quick visualizations. If you can&#8217;t find the right chart from the <a href="https://michaelhoweely.com/2019/04/14/an-overview-of-all-google-data-studio-chart-types-in-2019/" target="_blank" rel="noopener noreferrer">default chart types</a>, check out the <a href="https://developers.google.com/datastudio/visualization" target="_blank" rel="noopener noreferrer">community visualizations</a> or go ahead and <a href="https://developers.google.com/datastudio/visualization/define-config" target="_blank" rel="noopener noreferrer">build one</a> yourself.</p>
<h2>Conclusion</h2>
<p>Working with your Google Analytics data using SQL opens up a whole new world of analysis opportunities for your digital analytics data. You no longer have to use the metrics and concepts defined and pre-calculated by Google. Feel free to come up with your own rules for things like calculating bounce rate or defining a session.</p>
<p>To get started, you first need to transfer your Google Analytics data into a data warehouse that supports SQL queries. For example, Google BigQuery. There are a few ways you can send Google Analytics data into BigQuery, our recommended method is <a href="http://reflectivedata.com/analytics-data-pipeline/from-google-analytics-to-bigquery/" target="_blank" rel="noopener noreferrer">Parallel Tracking</a>. This will provide you with the most complete dataset, delivered in near-real-time and for a fraction of the cost of GA 360.</p>
<p>Once you have data in your database or data warehouse, you can start writing ad-hoc SQL queries right away. To take your productivity to a next level, we recommend running your queries and reports through a BI platform (i.e. Data Studio).</p>
<p>If you have any questions about analyzing your Google Analytics data using SQL or sending data into a data warehouse, feel free to ask them in the comments below.</p>
<p>The post <a href="https://reflectivedata.com/how-to-query-google-analytics-data-using-sql/">How to Query Google Analytics Data Using SQL</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://reflectivedata.com/how-to-query-google-analytics-data-using-sql/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
	</channel>
</rss>
