What To Do When Google Analytics And Ads Data Don’t Match

Portrait of Matthew Kammerer
by Matthew Kammerer
Aug 14, 2017
Screenshot of Google Analytics data

Discrepancies between data in Google Analytics and advertising platforms is a common problem for marketers. It pops up in campaigns on every advertising platform including AdWords, Facebook, and BuySellAds.

With two key sources telling different stories, it can be hard to report on campaign performance with confidence. There are four common causes of this data discrepancy, some with more actionable solutions than others.

1. Understand the difference between clicks and sessions

Different metrics are a common cause of confusion for marketers analyzing data in Google Analytics and advertising platforms.

While sessions is the golden metric for Google Analytics, ad platforms default to clicks. It’s logical to think that one click equals one session, but that’s not always the case.

Sessions represent user activity within a given time frame (by default 30 minutes). Ad platforms report a click whenever someone clicks on an ad. It’s common to have more sessions than clicks in Google Analytics and your ad platform because they represent different actions.

For example, a user who clicks on an ad twice within the session duration will represent one session in Google Analytics and two clicks on an advertising platform. Conversely, if someone clicks on an ad once and stays on a website for longer than the session duration, that user will count as one click on the advertising platform and two sessions in Google Analytics.


If you want to verify that the ad platform is being fair in its click reporting, use a link shortener as a second verification tool. Keep in mind this might add load time to the landing page, which can result in less sessions.

2. Users bounce before they’re tracked

Loading a landing page takes a few seconds after clicking on an ad. Even though it’s a short period, it’s plenty of time for users to bounce and go elsewhere.

This is one of the most common causes for a sizable discrepancy between data from the advertising platform and Google Analytics. While the ad server registers a click, the Google Analytics tracking code didn’t execute and therefore doesn’t log a corresponding session.

There is usually one of two factors at play. The user could have accidentally clicked on the ad and exited before the page loaded. This is more common with mobile users and interstitials and display placements. Or, the user might have bounced because the page took too long to load. Nearly half of mobile users abandon a site after only 3 seconds of delay, according to Facebook research.


To improve your chances of capturing sessions from bouncing users, first make sure the tracking code is placed in the header. The snippet will be loaded faster if it’s higher up on the page, so placing it in the footer or body could delay it by several seconds.

It’s also a best practice to test to make sure the landing page loads quickly before running any campaigns. Google has a page speed tester with mobile and desktop results, while Pingdom will let you run tests from various locations. Google Analytics also has metrics on individual page load times under Behavior → Site Speed.

Screenshot of Pingdom testing page

3. Users opt out of tracking

Ad blockers don’t only affect ads—many interfere with Google Analytics data, too. User-whitelisted websites, native ad formats (such as content) or auto-whitelisted ad networks (such as Carbon) send website traffic that might not be reflected on Google Analytics reports.

While most ad blockers allow Google Analytics by default but let users block it, others automatically disable the snippet’s ability to send user data. Google even makes a Chrome extension that lets users hide activity from website owners. In these cases, none of the user’s data is sent to Google’s servers, resulting in incomplete reporting on Google Analytics.

Marketers looking to reach technical audiences are more affected by this than others. Developers are more likely to use ad blockers because of their sensitivity to page load speeds and focus on privacy and user experience. An experiment by Quantable found 11% of its users were blocking Google Analytics. Their code is on GitHub for companies that think they might be in similar positions.


Before taking steps to bypass ad blockers, consider the wishes of the user who has opted out of tracking. If the ethical considerations don’t outweigh the loss of data, Free Code Camp has a tutorial on collecting data despite ad blockers.

4. Google Analytics is filtering data

Filtering could be another cause of discrepancy between results in Google Analytics and advertising platforms.

Make sure a heavily filtered view isn’t used when tracking attribution of advertising campaigns. For example, excluding visits from the office domain makes sense for measuring external interest but could produce uneven metrics if staff are clicking on company ads around the internet.

It’s also possible that Google filtered data on its own. Google Analytics uses data sampling to provide predictions and results without having to analyze an entire dataset. As a result, not every visit to a website is included in reports, especially for sites with significant traffic.


If the marketing team uses a filtered view to track efforts, consider checking the unfiltered default view to see a fuller picture.

There’s not much marketers can do regarding data sampling unless they graduate to a more expensive Google Analytics plan. Optimize Smart has a guide to understanding which reports are affected by sampling and how to solve for it.

Determining the true metrics

It’s rare for data from advertising platforms and Google Analytics to exactly match up. But understanding the human and technology-related causes for data discrepancies can save marketers time and frustration.

At the end of the day, the effectiveness of an ad campaign should be tied to goals set at the beginning of the campaign. Identify benchmarks for signups, leads, or visits and use relevant data from all reports to determine a channel’s ROI.