Google Analytics - Why Doesn’t my Data Match?
There are a number of reasons why the data you see in TapClicks do not match what you see in Google Analytics exactly. It all comes down to making sure that you view data in the Google Analytics interface in the same way that TapClicks is requesting and storing your data on your behalf.
Some of those most common scenarios are detailed below. Use the links below to jump to the applicable section.
Check your assignments
It’s possible that you have access to multiple similarly named Properties or Views and you may be comparing two records that are not exactly the same. Additionally, we’ve seen that sometimes the Google Analytics view you want to report on in TapClicks isn’t the one that’s assigned and it needs to be assigned.
You can check which Google Analytics view is assigned and create a widget that exposes your Analytics Property ID values. Once you have this ID value, you can compare it directly to what the Property ID in the Google Analytics interface. Make sure that it ID is exactly the same as the ID value in the Google Analytics user interface. To do this in GA, check out this article.
Check for multiple assignments
If the values you are seeing in the dashboard are greater than expected, it's possible that you are combining data from more than one Google Analytics assignment.
To check this, build a Data Grid widget with the following Group-By columns:
- Analytics View
- Analytics View ID
- Analytics Property
- Analytics Property ID
If you have multiple properties/profiles contributing to the complete data set, the total value cannot match a single Google Analytics view. To resolve this, go through the list and delete unwanted assignments, or add dashboard or widget filters to isolate the data you’re looking for.
The Data Might Not Match the UI but it's Probably Correct
The Google Analytics API is very complex and powerful. As a result, it does not behave intuitively in some situations including the following:
- Data Sampling Under specific conditions, the Google Analytics API will down-sample large data sets in order to ensure a fast API response as per the algorithm. When TapClicks fetches your data, all efforts are made to get the full, non-sampled data set. If the API returns a sampled report, TapClicks will reduce the date range until non-sampled data become available. So, the data you see in dashboard is never sampled, unless TapClicks gets non-sampled data when requesting reports day-by-day. As explained earlier, this is the smallest range supported by the API. However, when you view data in the Google Analytics UI, you may be shown sampled data, and this can cause marginal discrepancies with the TapClicks data.
- Excluding Invalid Data Google Analytics collects data for hundreds of dimensions and metrics when tracking your website traffic. However, there is no guarantee that the dimensions/metrics you are interested in will be captured for all users and sessions. The Google Analytics API returns the best data set, but will exclude sessions for which the requested fields are unavailable. Each Google Analytics data view requests a specific combination of dimensions/metrics, and if you are viewing data in the UI for a different combination of dimensions/metrics, it is likely that you will see discrepancies with your Tap data.
For example, the TapClicks Demographics data view stores data from a report that includes User Age Bracket and User Gender as dimensions. If you view the standard Age report in the Google Analytics UI, you are viewing data where Age is a dimension but Gender is not. In this case, the data between Google Analytics and the TapClicks dashboard may match up.
For some of these Google Analytics sessions, it’s possible that the Age is known but Gender is not. The report TapClicks captured in the Demographics data view will only include sessions for which BOTH Age and Gender are known. The data TapClicks captured from the Google Analytics API was not incorrect, it was just a different data set than you are viewing in the Google Analytics UI.
Ultimately, the best single source of truth is the Google Analytics Request Composer. This tool allows you to request any valid combination of dimensions and metrics, so you can request the exact report TapClicks requests for an apples-to-apples comparison.
There’s good news though. If TapClicks standard data views do not match your needs because of an interaction of dimensions/metrics, TapClicks can build you a custom DIY data view with only the fields you want to view with Date. Please refer to the next section for more detail.
Dates are Necessary for Data Storage but can Result in Excluded Data Rows
When you view data in the Google Analytics UI, it treats the selected date range as a single block of data (unless you specifically request a monthly/weekly/daily breakdown). When TapClicks calls the Google Analytics API for data, the request is always for the by date data so that your data store is built up over time. This can affect the values returned from the API, including the following circumstances:
- Small samples of Demographics data may be altered to protect individual users. If you don’t get very much Age/Gender data in a day, the API may exclude some or all sessions from an API response to prevent any possibility of identifying individual users. But if you view a larger date range in the UI, you may see more sessions because the privacy threshold is not triggered without the daily breakdown.
- When you view users in a Google Analytics report, you will see the count of unique users in the requested date range. If you break down the same report by date, the user's metric will show the number of unique users for each day. So, if there are users who visited your site on multiple dates, they will be counted once for each date, and the total for the date range will be greater than the user count without the daily breakdown. Since TapClicks gets the data broken down by date, the users metric will most likely not match the Google Analytics UI value.
Goals Data Must be Handled With Care
Google Analytics Goals provides a powerful way to track custom conversions on your websites. However, this results in complex data, which can lead to incorrect results in the TapClicks widget.
Any widget built from a Goals data view must either filter for one specific goal or include a Group-By of Goal.
If not, you will be aggregating the values from multiple Goals in your TapClicks widget. This is particularly problematic if you are viewing calculated fields that rely on a standard metric like Sessions, which must be duplicated for each Goal.
Please note that each goal can have a different value for configured metrics (i.e., Starts, Completions), but all show the same number of sessions. This is because Sessions is a standard metric, independent of any configured goal. There are no Goal 2 Sessions, there are just Sessions. As you know, any number of goals can be started, completed, or abandoned during a session. Sessions are required on each row so you can view the Goal X Completion Rate (X Completions/Sessions * 100%). But, if you don’t filter or group-by Goal, all these duplicated sessions get added together and your widget will display erroneous results.
The bottom line is, these Goals data views are not like other Google Analytics data views. They are meant for generating accurate data for individual goals, not accurate session data across goals.
If you’re still having issues with how your data from Google Analytics are being presented in TapClicks, we want to hear from you! If TapClicks standard data views do not match your needs because of an interaction of dimensions and metrics, TapClicks can build you a custom DIY data view with only the fields you want to view along with the few required fields we need for data storage. Our Customer Care and Customer Success Management team is here to help.
For more information about Google Analytics, check out this section of the TapClicks Knowledgebase.