Tap into the power of segmentation with hit-level Google Analytics data!

Success in marketing is all about matching the right content with the right audience. You need segmentation for this.

Segmentation is what allows you to zoom in on your target group. It allows you to identify, then target, high-performing users whilst at the same time improving or removing low performers.

Measuring the total conversion rate is a start, but you should also break down your data to see if some users convert more than others.

For example, if you find that desktop users convert more than mobile users, you could adjust your campaign target-audience accordingly or — even better — make your website more mobile-friendly.

If you optimize systematically across many user groups (geographical location, content viewed, visit frequency, previous purchases, basket abandonment, etc.), imagine the effect on your overall campaign effectiveness and conversion!

Segmentation with hit-level data

While it is possible to segment users in Google Analytics, the data will often be sampled and, therefore, not necessarily accurate. In addition, there are a number of limitations to custom segments in GA such as a maximum date range of 90 days.

Fortunately, it is possible to avoid all of this!

Simply signup for and implement SCITYLANA (it’s free), pull out data from your GA account and transform it into a raw, hit-level form. Next, load the data into a self-service BI tool such as Power BI, Excel, Qlik, Tableau or Data Studio / BigQuery.

As it turns out, segmentation becomes easier, more powerful and more actionable once data is loaded into one of these tools.

In the rest of this post, I will walk you through how segmentation works in Power BI. You can use any of the tools, of course, but Power BI is free, easy to use and has great segmentation features.

Custom segments in Power BI

If you haven’t done so already, go ahead and download our free Power BI template for GA data extracted through SCITYLANA.

If you are not a SCITYLANA user, you can download a Power BI Desktop file with demo data here (requires Power BI Desktop).

Here is an overview of the main segmentation options once you have loaded your data into the template:

  • Date range selectors
  • Slicers
  • Multi-level filters
  • Calculated columns

SegmentsFilters

Date range selectors

You can add as many slicers as you like directly to your dashboard (i.e. none of these limitations), and you can choose between different types of slicer, including date range selectors.

Simply select the Slicer icon, then drag & drop the relevant field onto the Slicer visual.

SegmentsDate

If you drag the Date field onto the visual, Power BI will automatically turn the slicer into a date range selector. You can switch between different types such as relative period, fixed period or lists with weeks, months, quaters and years.

SegmentsDateVersions

Dimension slicers

Suppose you want to zoom in on visitors who entered your site through Paid Search, used a mobile or tablet device to browse your content, was situated in Copenhagen and had never visited your site before.

Would that be possible…? Absolutely!

Simply pull in the dimensions you need, turn them into slicers and select the relevant values.

SegmentsDimensions

Notice the logic behind these selections. Values selected across slicers are joined with AND logic (e.g. “Display” AND “Copenhagen”). Values selected within the same slicer are joined with OR logic (e.g. “mobile” OR “tablet”).

Multi-level filters

Multi-level filters work basically the same way as slicers. The difference is you can specify which report level they should affect. To do so, pull in the filter dimension to either the visual-level, page-level or report-level area under FILTERS:

SegmentMultiLevel

To some extent, you can also define filtering levels for date range selectors and slicers. By default a slicer will affect the entire page – however,  you can overrule this setting by clicking Edit interactions of the Home ribbon (learn more here).

Calculated columns

Suppose you want to build a new variable, which doesn’t already exist in GA. Suppose you want to recode the deviceCategory dimension so that it only has two values instead of three:

SegmentsRecode

You can do this by adding a conditional column in Power BI using DAX in much the same way as you would do in Excel.

Simply right-click on the Scitylana table under FIELDS and select New column:

SegmentsNewCol

Now the DAX formula bar will appear:

SegmentsFormulaBar

Enter the following text:

deviceCategory NEW =
IF ( Scitylana[deviceCategory] = "desktop", "desktop", "mobile/tablet" )

… which reads: If the deviceCategory variable equals “desktop”, then “desktop”, otherwise “mobile/tablet”.

And that’s it!

You have successfully created a new column which you can use as a slicer or as input in a chart:

SegmentChart

[Download a demo Power BI file with all DAX examples in this post.]

More advanced segments

The IF() function is great if you only have a few items in your conditional expression. If you have many, however, you can take advantage of the SWITCH() function. With this function you avoid writing complex nested IF() expressions.

Suppose you want to divide all the US states into US regions: Northeast, Midwest, South and West. You can do so with the following SWITCH() expression:

US Region =
SWITCH ( 
    Scitylana[region], 
    "Connecticut", "Northeast",
    "Maine", "Northeast",
    "Massachusetts", "Northeast",
    "New Hampshire", "Northeast",
    "Rhode Island", "Northeast",
    "Vermont", "Northeast",
    "New Jersey", "Northeast",
    "New York", "Northeast",
    "Pennsylvania", "Northeast",
    "Illinois", "Midwest",
    "Indiana", "Midwest",
    "Michigan", "Midwest",
    "Ohio", "Midwest",
    "Iowa", "Midwest",
    "Kansas", "Midwest",
    "Minnesota", "Midwest",
    "Missouri", "Midwest",
    "Nebraska", "Midwest",
    "North Dakota", "Midwest",
    "South Dakota", "Midwest",
    "Wisconsin", "Midwest",
    "Delaware", "South",
    "Florida", "South",
    "Georgia", "South",
    "Maryland", "South",
    "North Carolina", "South",
    "South Carolina", "South",
    "Virginia", "South",
    "Washington D.C.", "South",
    "West Virginia", "South",
    "Alabama", "South",
    "Kentucky", "South",
    "Mississippi", "South",
    "Tennessee", "South",
    "Arkansas", "South",
    "Louisiana", "South",
    "Oklahoma", "South",
    "Texas", "South",
    "District of Columbia", "South",
    "Arizona", "West",
    "Colorado", "West",
    "Idaho", "West",
    "Montana", "West",
    "Nevada", "West",
    "New Mexico", "West",
    "Utah", "West",
    "Wyoming", "West",
    "Alaska", "West",
    "California", "West",
    "Hawaii", "West",
    "Oregon", "West",
    "Washington", "West",
    BLANK ()
)

The above expression reads: If the variable region equals Connecticut, then Northeast, else if region equals Maine, then Northeast [….], otherwise Blank.

[Download a demo Power BI file with all DAX examples in this post.]

This new calculated column can now be used as a slicer in Power BI, enabling the end-user to zoom in on the region he or she is interested in. For example, in the setup below, selecting Northeast will make the map dynamically zoom in on this region:

SegmentUsRegion

Now, suppose you want to build an even more complex segment. Suppose you want to create a variable which shows a specific geographical market division.

For example, you might want to create an overview of the US as your main market and Europe, Asia, Oceania and the rest of Americas as secondary markets.

The challenge here, however, is that whereas Europe, Asia and Oceania are continents, the US is a country belonging to the continent Americas.

To get an overview of your markets, you’ll have to create a new calculated column which draws on both Continent and Country.

You can do so by using SWITCH() in combination with TRUE():

Market =
SWITCH (
    TRUE (),
    AND ( Scitylana[Continent] = "Americas", Scitylana[Country] = "United States" )"The US",
    AND ( Scitylana[Continent] = "Americas", Scitylana[Country] <> "United States" )"Rest of Americas",
Scitylana[Continent] = "Africa""Africa",
Scitylana[Continent] = "Asia""Asia",
Scitylana[Continent] = "Europe""Europe",
Scitylana[Continent] = "Oceania""Oceania",
    BLANK ()
)

Notice how the TRUE() function allows for logical expressions in your conditions, including not only the equal operator, but also the AND operator.

[Download a demo Power BI file with all DAX examples in this post.]

Again, the new variable can be used as a slicer or as input in a chart:

SegmentTrueFunctionl

Beware of filtering scope

Now that you know how to use segments in both basic and advanced ways, you should know that variables in Google Analytics (dimensions and metrics) have different scope:

  • User scope
  • Session scope
  • Hit scope
  • Product scope

When building segments, user-scope variables filter users, session-scope variables filter sessions, hit-scope variables filter hits and so on.

For example, since the dimension Continent is session scope, selecting Europe will give you all sessions from Europe. Even if a user has previously visited your site from the US, you will still only get the sessions he or she made from Europe.

You can get an overview of GA variables and their scopes available in Scitylana here.

Scope is important because sometimes you want to filter a unit which is different from the variable’s scope.

Suppose you want to  build a segment with converted users, i.e. users who have completed one or more goals. The challenge here is that goals are hit scope, so a simple filter expression such as goal1Completion > 0, will not give you converted users, but only the specific hits that count as goal 1.

In my next post I will explain how to overcome this problem, how to give your goals and other hit-scope variables a broader scope.

SCITYLANA: “Hello BigQuery”

Sign-up
and get raw hit-level Google Analytics data on scitylana.com

The clouds are coming in…

Today we announce the BETA version of our first Cloud destination – BigQuery!

But what does this mean?

Well, it means from today we extract hit-level / not sampled data from your favorite FREE GA view and upload it automatically to your BigQuery project. Just like the big boys do with GA 360 but just less expensive.

Swoosh… !

It updates the data automatically behind the scenes every morning. And with NO HANDS – YAY!

Now take that fine reporting tool of yours with a BigQuery connector and put it to use. Use it to connect to your SCITYLANA transformed FREE GA hit-level / not sampled BigQuery database and do reporting on it.

Let it be Microsoft Power BI, Tableau, Google Data Studio or some other tool.

Let’s start the engine…

To get started – log-in to your www.scitylana.com account and authorize with a BigQuery account with modify permissions (Owner, Editor or Admin) in your data extraction settings. Click the Authorize BigQuery Access button:

BigQueryAuthorize

Now enter your Google Project ID, in my case it is scitylana-1048

BigQueryProjectID

Save it – and off you go. If you already have extracted data on the disk, these files will immediately be uploaded to BigQuery.

Do note that the app will continue to download the files from GA on to your hard-drive. From here the SCITYLANA app will upload the files to BigQuery.

While we wait for the files to be uploaded – let’s set-up the first report.

Connect to BigQuery from Power BI

The easiest way to do this is through our Power BI template for BigQuery. Simply download the template, open it (you must have Microsoft Power BI) and sign in to BigQuery when prompted.

You can also build your report from scratch in the following way.

  1. Open PBI Desktop and click Get Data

PowerBIGetData

2. Select Google BigQuery (Beta) connector

PBIBigQuery

3. Click Connect

4. Expand from your project id to your tables and views.

PBIBQDataset

5. Select second view from the top and click Load

6. Select DirectQuery

PBIDirectQuery

7. Click OK

8. Power BI now creates a model and should end up listing all the dimensions and metrics in the Fields list.

PBIBQFields

9. Right-click the table called “VIEW ya-da ya-da” and select New Measure

10. Write M_users = DISTINCTCOUNT(VIEW ya-da ya-da…[sl_userId]) where “VIEW ya-da ya-da” is the id of your own view. E.g. M_users = DISTINCTCOUNT(VIEW136604982DAYS007[sl_userId])

11. Check your new view M_users in the fields list. (Find it using the search)

12. And VIOLÁ – you get your first chart

PBIBQChart

13. Now search for the date dimension. And check it. Now we get…

PBIBQChartTime

14. I hope you can take the rest from here. 🙂

Nerdy details for the interested

OK, what have we done with your BigQuery account?

Well in the BigQuery Cloud console you can see we have added the following:

BigQueryOnline

(The screenshot displays the output for Google Analytics View 136604982 –  scitylana.com)

For each view you’ll get a date partitioned table (the one with the blue icon) named after your Google Analytics view idThe reason why we partition the data by date is because Google recommends it for getting better query performance. Currently this is the only way BigQuery can partition a table.

Table Schema

Here is a snippet of the schema definition.

BigQuerySchema

The sl_ dimensions (e.g. sl_userId) are some of the extra stuff SCITYLANA adds to the dataset. _PARTITIONTIME is BigQuery internal column used for date partitioning. Read more about it here.

All Google Analytics metrics a re-named from ga: to M_ e.g. M_bounces is the re-named version of ga:bounces. All dimensions are re-named from ga: to E.g. ga:userType is called userType.

BigQuery Views to help

Additionally we created 7 BigQuery views. BigQuery Views are a subset of data, a stored SQL query if you like. We made these helper views for your convenience.

In the data view you get integration between the SCITYLANA hit-level table and BigQuery’s public date table called bigquery-public-data.common_us.date_greg.

This view comes in 6 variations. Latest 7 days and latest 14, 30, 90, 180, 365 days. This is to get better query performance when using them with a BigQuery DirectQuery connector in e.g. Microsoft Power BI. The views have the following format, VIEWXXXXXXXXXDAYSYYY, where XXXXXXXXX is the view id and YYY is the number of days it queries. E.g. VIEW120558169DAYS030 which is returning the last 30 days of hit-level data for GA view with id 120558169.

Another view lets you see the data partitions behind the partitioned table for your convenience. E.g. LIST120558169PARTITIONS

This view is not super important, but it’s practical when you need to get an idea of how many days have been uploaded to the partitioned table.

 

Please feel free to comment here or write us, support@scitylana.com

Sign-up
and get raw hit-level Google Analytics data on scitylana.com

Retroactive goals with your raw Google Analytics data

Goals in Google Analytics are not retroactive. They only start showing data once you have configured them.

So, if you forget to set them up, this will happen:

But don’t despair!

If you have downloaded your raw GA data with Scitylana, you can use tools like Power BI, Excel, Tableau, Qlik or similar to show goals retroactively.

Once the data are outside of GA, you can define or re-define your goals on the fly and see the effect immediately on the entire time range.

How to set up retroactive goals in Power BI

You can use Scitylana with any BI tool. However, here we will show you how to set up goals in Power BI simply because we know this tool better. It’s easy, even if you don’t know DAX.

  1. Open the Power BI file with your raw GA data
  2. Right-click on the Scitylana table under Fields and select New measure
  3. In the formula bar above the reporting canvas, enter this DAX expression:
Conversions = CALCULATE ( [Users], Scitylana[Page] = "/thank-you" )

But remember to replace “/thank-you” with the URL of your own conversion page!

And that’s it!

You have a new measure called Conversions which you can drag and drop into a chart, break down on time, traffic sources, geography and more – and it works instantly on all of your historical data.

Switch your base metric instantly

In the example above, we calculated the goal in terms of users, not sessions. We wanted to know how many users have seen the thank-you page.

If you want to calculate by sessions instead, simply replace [Users]  with [Sessions]:

Conversions = CALCULATE ( [Sessions], Scitylana[Page] = "/thank-you" )

Turn your goal into a percentage

You can also express your new measure as a percentage and turn it into a conversion rate. To do so, simply create a new measure called % Conversions and define it as the number of converted users (i.e. your original measure) divided by the total number of users:

% Conversion = [Conversions] / [Users]

Notice how we use the original measure within the new measure, which is a nice, powerful feature of DAX.

Conversions divided by users gives you a decimal number, but you can easily change format to percentage from the top Modeling ribbon.

Select the new % Conversion measure, then click the % icon:

Add as many filters as you like

Suppose you want to define your goal as the number of users who have seen the thank-you page with a mobile device while staying in London.

No problem!

You simply add more filters to your CALCULATE () function:

Conversions =
CALCULATE (
    [Users],
    Scitylana[Page] = "/thank-you",
    Scitylana[DeviceCategory] = "mobile",
    Scitylana[City] = "London"
 )

… and you can add as many as you like!

Troubleshooting: Beware of your regional settings!

Please notice that the regional setting of your computer affects the required format of DAX (your goal expression).

In the above we have used US / UK regional setting, which requires you to use comma ( , ) as the list separator and period ( . ) as the decimal point.

If your computer has a different regional setting, you must use semicolon ( ; ) as the list separator and comma ( , ) as the decimal point. In this case, your goal expression would look like this:

Conversions = CALCULATE ( [Users]; Scitylana[Page] = "/thank-you" )

Next step

Now that you have created your own conversion measure and conversion rate, it’s time to add it to the Power BI template.

You can create a blank page dedicated to goals. Here you can insert a KPI chart that shows the status of your goal relative to a target.

You can also insert a combined line and bar chart that shows how your total number of users and conversion rate develop over time. The visualization possibilities are almost endless.

We hope you have enjoyed reading about how GA goals can be defined retroactively within Power BI. As always, we welcome any comments or questions you might have.

Why Google Analytics connectors are useless

I see many users of graphical dashboard tools using built-in Google Analytics connectors (like Power BI, QlikView, and Tableau) having trouble understanding what the numbers really mean – and why they differ from the Google Analytics dashboard.

Maybe you’ve had the same frustrating experience as many others:

  • A user of Tableau reports a “mismatch” between GA and Tableau
  • A user of Power BI complains that his GA data “don’t make sense”
  • A user of QlikView wonders why his GA data “is not matching”
  • A user of Power BI reports that his imported GA data “is wrong

If you have observed something similar, or just if you’re wondering what the heck is going on here, then please read on.

I’m going to settle once and for all why GA connectors are so confusing, and why you should probably avoid them altogether.

The core of the problem

The reason why Power BI, QlikView, and Tableau have become so popular in recent years is not only because they are superior at visual reporting, but also because they use so-called “in-memory databases” which work blazingly fast, giving the user an exploration tool with sub-second response time.

For these in-memory databases to work as intended, data-sets should be as “original” or “raw” as possible. No grouping, aggregating, or filtering. Just the events, line-by-line, imported from your sales tables, hit tables, etc. This gives you maximum freedom of analysis while the in-memory database will happily crunch the growing volume of data.

The problem? GA connectors do not deliver raw data!

Instead, they import GA metrics that are already aggregated (summed, counted, calculated, etc.). And while this works fine in a few cases, users are potentially misled to think these metrics are always reliable to use in their dashboard tool.

They are NOT!

You need the non-aggregated data behind these numbers to avoid faulty double aggregations.

Let me explain.

Beware of double aggregation!

Consider this overview of how two people, let’s call them John and Carla, visit a website during a week. While Carla visits only once, John makes four visits on four different days, as seen in the table below:

 Day Number of Users The Names of Users
Monday 2 John, Carla
Tuesday 1 John
Wednesday 0
Thursday 0
Friday 0
Saturday 1 John
Sunday 1 John
Total 5 2

Now ask yourself, “What is the total number of users during this week?” Looking at the names of users in the rightmost column, the total is obviously only two: John and Carla.

However, this is not the picture we get from GA connectors. The GA connector only shows the other columns: Day and Number of Users (or “Users per Day”). If we try to roll them up to the week, the result is five (2 + 1 + 0 + 0 + 0 + 1 + 1 = 5).

Do you see what happened here? Summing up users across days leads to the wrong result – in this case, five instead of two!

Why is that?

Semi-additive metrics and distinct count

Here’s the thing, Users is an example of what database geeks (like me) call semi-additive metrics.

It’s a metric you can sum meaningfully across some dimensions, but not all, and the time dimension is not one of them.

The technical explanation for this is that Users per Day constitutes a data stream with repeated elements (i.e., a user may repeatedly appear during the week, like John). Calculating users across days will, therefore, most likely result in multiple counts of the same user, leading to a meaningless total such as the final number 5 in the table above.

The way to handle data streams with repeated elements is to use  distinct count instead of sum.

This is what Google Analytics does behind the scenes when it returns a query involving users, and that’s why you will always see the correct totals in Google Analytics.

The problem is, that distinct count is only possible if you have access to the raw data (e.g., cookie IDs of users or, in my example, the names in the table above). You can’t derive distinct count from a table which is already aggregated. Yet this is exactly what users of Power BI, Tableau, QlikView, etc., are led to believe when they use the tools’ built-in GA connectors.

And that’s the reason they get so confused and frustrated!

Is there a workaround?

“Okay,” you say, “But can’t I just avoid importing Users per Day? Can’t I just import the totals I need directly from Google Analytics?”

Well, yes, you can – but you’ll be severely limited in what you can then do in your dashboard.

Obviously, you wouldn’t be able to add a time-period selector in your dashboard, which can be annoying to end-users. But you would also have to be careful about other types of filters, since Users is a non-additive metric not just across time, but across several other dimensions as well.

For example, you can’t sum Users meaningfully across traffic sources such as your ad campaigns, emails, organic traffic, etc. You also can’t sum Users across landing pages or other types of URLs.

And mind you, Users is not the only semi- or non-additive metric in Google Analytics. Sessions is another example, as well as all calculated rates and ratios such as your Goal Conversion Rate, Bounce Rate, Average Session Duration, Average Order Value, and so on.

So, yes, you can try to circumvent the problem of semi- and non-additive metrics in your dashboard, but it would prevent you from taking full advantage of its features to the point where it probably becomes useless.

Un-aggregate your GA data with Scitylana

The frustrating experience many people have using GA connectors in dashboards is one reason we created Scitylana.

This tool lets you extract data from your free Google Analytics account, transforming them into a raw, hit-level form. This is the perfect format to have when you load data into Power BI, Tableau, QlikView, Targit, and others.

It gives you maximum freedom to analyze, visualize, and integrate GA data with other data sources. It enables you to slice and dice the data and to use whichever dimension you like as a filter.

With Scitylana you never have to worry about semi-additive metrics or distinct count.

The best thing? Signing up is free, and you can do it right now in just a couple of seconds: www.scitylana.com

Visualize your raw GA data instantly with this Power BI template

Okay, so you’ve implemented SCITYLANA and pulled out loads of nice hit-level data from your Google Analytics account.

Now you want to put all that data to impressive use! But what to focus on and how to get started?

Use this free Power BI template

Although SCITYLANA works with all sorts of tools (BigQuery, Data Studio, Tableau, Targit, Qlik, etc.), we suggest you start with this template for Power BI.

We’ve chosen Power BI as our starter tool, because it’s free, easy to use and extremely versatile when it comes to analyzing, reporting and integrating data.

In this post we’ll give you a quick rundown on the contents of the template. At the end, we’ll also show you how to populate it with your own data.

Overview

The first report tab in the Power BI template gives an high-level view of your traffic.

You can use each visual as a filter. For example, clicking on Organic search in the pie chart will immediately filter all other visuals.

You can also define a custom date range using the slicer in the upper right corner.

PbiTemplateOverview

Traffic sources

The next tab shows your traffic sources. The bar chart shows all traffic sources, but you can easily filter these by channel grouping using the slicer to the right.

PbiTemplateTrafficSources

We’ve included a bubble chart showing visit engagement by channel grouping. The y-axis shows the average number of pages viewed by a session, while the x-axis shows the average time spent on each page.

Notice the Organic Search bubble in the upper right corner? These sessions view many pages and spend a long time on the site.

Content usage

What’s special about this report? Well, it shows Hostname (domains) and Page combined with Sessions.

In GA you actually can’t do this. You can’t combine Hostname or Page with Sessions. This is because of the way GA has organized its data storage.

What is great about the report tab below is that you can easily filter your top pages by hostname. Simply click on one of the domains in the bar chart to the left, and you will see the other one changes immediately.

PbiTemplateContent

Visiting time

Here you can see traffic during working hours, weekends and even seasons such as summer or winter. Again we’ve gone a bit beyond what you can do in GA. We’ve added a calendar and a time of day dimension with more interesting attributes.

PbiTemplateVisitingTimeClickstreams

Now comes our favorite part: Clickstreams! This is kind of the “proof” that we deliver hit-level GA data. Each row is a hit (a pageview or en event).

You can see exactly what individual visitors do!

PbiTemplateClickstreams

Geography

Geography: Isn’t that more or less the same as in the GA interface? Not quite! The treemap in the upper left corner divides North Americans into Northeast, West, South, and Midwest. Yet this dimension doesn’t exist in GA!

PbiTemplateGeography

Technology

Waiting for another surprise? Well, this one is not that special, but nonetheless useful. It shows statistics on devices, browsers and operating systems.

PbiTemplateTechnology

How to use the template with your own data

  1. Sign up for and implement SCITYLANA (it’s free!)
  2. Start a new data extraction so that your GA data is downloaded to your hard drive
  3. Download and install Power BI Desktop (it’s free!)
  4. Download and open our Power BI template
  5. Enter the path of the data folder (the destination you chose during step 2)

 

PbiTemplateDataFolder

Now it’s your turn 🙂 Do you have ideas on how to visualize GA data in new interesting ways? Please let us know and we’ll add them to the template.

The Cost of Sampling in Google Analytics

Recently, Jonathan Weber at LunaMetrics wrote a great post regarding the accuracy of Google Analytics sampling, revealing how users shouldn’t just take it at face value but also check for potential inaccuracies.

Weber shows that while sampling works well for overall trends on your website, it can become very inaccurate. One good example of this is when you’re looking at smaller subsets of data, such as the conversion rate of a specific campaign.

To help calculate the accuracy of your data, Weber even included an online tool, which you can use to determine the “margin of error” for your campaign conversion rate.

In this post, I want to take his argument a bit further. I wanted to ask a slightly different question and see what the sampling inaccuracy could actually COST you, particularly if it led to taking the wrong decision in a campaign.

First, calculate margin of error

Imagine that you have a website with some 10M sessions in a particular time period, and that sampling kicks in. Now, suppose you’re comparing five different online campaigns, each of which is reported to send 4K sessions to your website with conversions of 2%.

Using Jonathan’s tool, linked above, we can now calculate the margin of error for these reported conversion rates. Here is the result:

SamplingCalculator

As you can see, even though Google Analytics reports a conversion rate of 2%, the real rate for each of the five campaigns is actually between 0.55% and 5.04%. A significant difference, whichever way you look at it.

Next, calculate sampling cost

Let’s assume you have invested $6K in each of the five campaigns (for a total cost of $30K). Let’s then say that each converted session is worth around $100, making your total revenue from the campaigns $40K. This gives you a total profit of $10K:

CampaignCost1

Now assume that Campaign A is doing much better that the rest. Assume that its conversion rate is 5.04%, while the other campaigns only convert to 1.24%:

CampaignCost3

In this case, you would still see a profit of $10K across all your online campaigns, but you would only profit from Campaign A.

Now imagine that you have an additional $30K to invest in the five campaigns. If you allocated this money based on GA’s sampled report, you would still end up with $10K profit.

But, if you had had access to the unsampled data, you would have known that Campaign A is the only profitable one, and that investing the entirety of your $30K into this campaign was the smart move.

Indeed, this simple decision would net you nothing less than $70.8K in profit:

CampaignCost2

As you can see, sampling in this hypothetical case would have cost you $70.8K – $10K = $60.8K.

That’s not small change by any means. Think about that next time you run into this seemingly innocuous message:

SamplingMessage

Unsample your data with Scitylana

The potential cost of sampling in Google Analytics for business is one reason we created  Scitylana. This tool lets you extract data from your free Google Analytics account, transforming them into a raw, hit-level form.

The data is free from sampling, giving you more freedom to analyze, visualize, and integrate GA and CRM data.

The best thing? Signing up is absolutely free, and you can do it right now in just a couple of seconds: www.scitylana.com

 

Marketing-to-sales funnel insights finally made easy!

Base your campaigns on facts instead of feelings. Combine your data sources in MS Power BI.

Get to know the whole funnel – from source to conversion.

  • Load raw Google Analytics data in Power BI through Scitylana
  • Load online campaign data from Facebook etc.

Once loaded, find the fields that your various data sources have in common.

  • For Facebook campaigns, look for the utm-code from your campaigns. This is the key you use to combine your data from Facebook to Google Analytics in Power BI.

Now you have impressions, reach, CTR, bounce rate, conversion etc at your fingertips:

FacebookFunnel

It does not have to take a huge investment in expensive tools to achieve the whole funnel, and not only using the website purchase conversion value in Facebook business manager. This is based on the Facebook attribution model – not your own.

You already have the data. Don’t be afraid to use them.