Why Google Ads and Google Analytics data don’t match & how to fix it

Last Updated: September 5, 2023

I am often asked this question:

“Why doesn’t my Google Ads and Google Analytics data match?”

and my answer is usually,

“I can’t say for sure without first diving into your Google Ads and Google Analytics accounts and checking your website setup”

And this is true.

There is no single straightforward answer to this question and it could take several hours/days to find a solution to this problem, depending upon your expertise.

First things first. It is common and normal to have data discrepancy between Google Ads and Google Analytics data. So no need to panic.

However, it is not normal to have a very large data discrepancy between Google Ads and GA data. For example, your Google Ads is reporting 100 clicks from a Google Ads campaign but your Google Analytics is reporting only 10 sessions from that campaign in the same time period.

Before you take any action, you need to first measure the level of data discrepancies between Google Ads and Google Analytics.

Measure the level of data discrepancy between Google Ads and Google Analytics

In order to measure the level of discrepancy between Google Ads and GA data follow the steps below:

Step-1: Navigate to Acquisition > Google Ads > Campaigns report in your GA main view:

google ads analytics dont match Google Ads

Step-2: Click on the ‘Clicks’ tab:

google ads analytics dont match Google Ads Clicks

Step-3: Select ‘Clicks’ from the ‘Select a metric’ drop-down menu as shown below:

google ads analytics dont match select a metric

You will now see the following similar report:

google ads analytics dont match sessions clicks

Through this report, you can measure the level of discrepancy between ad clicks and GA sessions for all campaigns or for each individual Google Ads campaign.

A small amount of data discrepancy is normal. But if you see a lot of difference then it is a cause for concern.

From the screenshot above we can conclude that the Google Ads clicks are far more than Google Analytics sessions. So there is clearly a huge data discrepancy between Google Ads and Google Analytics and we need to dig deeper to find the cause.

21 causes of data discrepancy between Google Ads and Google Analytics data

Following are the most common reasons for data discrepancies between Google Ads and Google Analytics data:

  1. Google Ads account is not linked to Google Analytics
  2. Wrong Google Ads Account linked to Google Analytics
  3. Multiple Google Ads account linked to the same GA view
  4. Clicks and Sessions are fundamentally different metrics
  5. A user clicked on the same ad multiple times
  6. Google Analytics sessions are not filtered for invalid clicks
  7. Google Analytics tracking code missing from landing pages
  8. Google Analytics tracking code not firing on landing pages
  9. Multiple Google Analytics tracking code firing on landing pages
  10. View filters excluding Google Analytics session data
  11. Manual tagging is not configured correctly
  12. Google Ads destination URLs are not tagged
  13. Using both manual tagging and auto-tagging for Google Analytics
  14. Using both manual tagging and auto-tagging for non-google analytics purpose
  15. GCLID parameter dropped because of redirect
  16. Google Analytics can not read the GCLID value
  17. GCLID parameter is throwing error pages
  18. Bookmark contains GCLID parameter
  19. Difference between Google Ads and Google Analytics Conversion Tracking
  20. Data sampling issue creating data discrepancies
  21. You are comparing Apples to Oranges

Now you have got a pretty good idea of why there is no single straight forward answer.

#1 Google Ads account is not linked to Google Analytics

If your Google Ads account is not linked to your Google Analytics account then all of the traffic from Google Ads can be reported as organic traffic from Google in GA. You may not see any Google Ads traffic data being reported in your GA reports.

If you have got this issue you need to link your Google Ads account to your Google Analytics account.

You can verify whether or not the Google Ads account is linked to Google Analytics by following the steps below:

Step-1: Navigate to Acquisition > Google Ads > Campaigns report in your GA view.

Step-2: Look for the following notification:

google ads analytics dont match Linking Google Ads and Analytics account

If you see such notification and you use Google Ads then you need to link your Google Ads account to your GA account.

Remember that linking Google Analytics to a Google ads account can be done either from Google Analytics or from the Google Ads account side. Personally, I feel it is easier to link the ads account from Google Analytics.

Follow the below steps to link your Google Analytics account and Google Ads account.

Step-1: Log in to your Google Analytics account.

Step-2: Click on the ‘Admin’ setting on the left-hand side corner.

google ads analytics dont match admin

Step-3: Under ‘Property’, select the property that you want to link to your Google Ads account.

Step-4: Under ‘Product linking’ click on the ‘Google Ads Linking’.

google ads analytics dont match Google Ads linking

Step-5: You will now see a screen like below to configure your Google Ads link group. You will see all the Google Ads accounts that you have access to.

google ads analytics dont match Configure Google Ads Account

Step-6: Select the account that you would like to link to and click on ‘Continue’ as shown below.

google ads analytics dont match Link Configuration

Step-7: Now, click on ‘Link configuration’. You are requested to provide a link group title and also select the view in which you want to see your Google Ads data.

google ads analytics dont match Link Group title

Step-8: Finally, click on ‘Link accounts’.

You have now successfully linked your Google Analytics and Google Ads account data.

Also, make sure that you only enable advanced settings when you are using auto-tagging. This is because changing those settings will not affect anything. However, if you are using manual tagging and enable the additional settings, it will change the settings by default.

Depending upon the business requirement of your company, select auto-tagging or manual tagging in the advanced settings option.

Also, note that in order to link your Google Ads account to your Google Analytics property you need to have the necessary access levels.

  • You need to have administrative access to the Google Ads account that you want to link.
  • You need to have edit permission for the Google Analytics account that you want to link from.

Linking your Google Ads account to your Google Analytics account helps you greatly in understanding what people do on your website after they click on your Google ads.  

You can understand the behaviour of Google Ads visitors in terms of site usage (pageviews, bounce rate, avg. session duration, etc), goal conversions and ecommerce transactions.

This type of insight helps immensely in optimizing ad copies, keywords and landing pages of your Google Ads campaigns.

Following are some other advantages of linking your Google Ads account with your Google Analytics account:

  1. You can import Google Analytics goals and sales data directly into Google Ads.
  2. You can import Google Analytics remarketing audiences into Google Ads.
  3. You can run dynamic remarketing campaigns in Google Ads.
  4. You can import website usage data (like bounce rate, average session duration, etc) from GA into Google Ads.
  5. You get more accurate data in your GA reports esp. in your multi-channel funnel reports.
  6. You get accurate data in various attribution reports in Google Ads.
  7. Improved Google Ads reporting in Google Analytics view.
  8. Better insights through the MCF reports

Following is a short video on the benefits of linking your Google Ads and GA account:

#2 Wrong Google Ads account linked to Google Analytics

If you have got access to multiple Google Ads accounts then there is a possibility that you accidentally linked the wrong Google Ads account to GA. Make sure that the correct Google Ads account is linked to Google Analytics.

The first step in getting reliable Google Ads data in your Google Analytics account is by correctly linking to your Google Ads account. Follow this Google Analytics article, which provides detailed steps on linking your Google Analytics account to your Google Ads account.

#3 Multiple Google Ads account linked to same GA view

Avoid linking multiple Google Ads accounts to the same GA view as this can increase data discrepancies between Google Ads and Google Analytics.

In some instances, you might need to link multiple Google Ads accounts to the same GA views. In that case, go through the same steps that you followed for single linking separately and you are all set. But make sure you are linking the correct Google Ads account to the GA view.

#4 Clicks and sessions are fundamentally different metrics

There is always a very strong probability that the number of clicks on your Google ads does not match with the number of resulting Google Analytics sessions.

This is because ‘clicks’ and ‘sessions’ are fundamentally different metrics. A click is a hit (user’s interaction) whereas a Google Analytics session is a group of hits recorded for a user in a given time period.

On top of that, Google Ads report ‘clicks’ whereas Google Analytics report ‘ sessions’.

In some cases, there is a delay in the clicks on an ad, and the sessions that are registered in your Google Analytics reports.

For example, I may click on an ad and, for some reason, the page did not load. In the meantime, I may decide to hit the back button before the Google Analytics tags even load. In such a case, there is one click and zero sessions. This is call session latency.

Additionally, in some cases, you may notice that the returning users to your site are attributed to one campaign from which they originally came from. In such cases, we can expect to see more sessions than clicks for that specific campaign. This concept is related to the lifetime of a campaign.

#5 A user clicked on the same ad multiple times

In Google Analytics, every time a campaign source is changed, the existing Google Analytics session expires and a new session starts.

If you are using Google Ads auto-tagging, then each ad click has its own unique GCLID value. So multiple clicks on the same ad will change the GCLID value associated with the ad which will cause the existing GA session to expire and a new session to begin.

So if Google Ads is not filtering out multiple clicks on the same ad then, in that case, the number of ad clicks would be equal to the number of GA sessions.

If a user is excessively clicking on the same ad over and over again then Google Ads may choose to filter out excessive clicks. But Google Analytics still won’t filter out multiple GA sessions generated from such invalid ad clicks. So in that case, one click can result in multiple GA sessions.

If you are manually tagging Google Ads campaign URLs, then each ad click can have the same campaign source.

So multiple clicks on the same ad may not change the campaign source and hence the existing GA session may not expire and no new GA session will begin. In other words, multiple clicks on the same ad by the same user, may not generate multiple GA sessions, if you have manually tagged your Google ads.

If Google Ads in not filtering out multiple clicks on the same ad then, in that case, the number of ad clicks could be greater than the number of resulting GA sessions.

If a user is excessively clicking on the same ad over and over again then Google Ads may choose to filter out excessive clicks. In that case, the number of ad clicks could be equal to the number of resulting GA sessions provided you have manually tagged the Google Ads campaigns.

#6 Google Analytics sessions are not filtered for invalid clicks

Google Ads filter out invalid clicks but Google Analytics can’t filter invalid sessions resulted from such ad clicks.

So Google Analytics will track and report sessions even for invalid clicks. If your Google Ads account is getting a lot of invalid clicks (maybe because of click fraud or spambot attack) you will see a lot more GA sessions than ad clicks.

#7 Google Analytics tracking code missing from landing pages

If the landing page of the Google ad doesn’t contain Google Analytics tracking code, then Google Analytics will not be able to track sessions but Google Ads will still track and report on ad clicks. In that case, the number of ad clicks could be more than the number of GA sessions.

If your website doesn’t have tracking code implemented properly then the campaign information is lost if someone lands on your page.

Make sure to add Google Analytics tracking code on all your Google Ads landing pages. It is recommended that you implement Google Analytics with a tag management solution like Google Tag Manager.

Use a website crawler like ‘Screaming frog SEO Spider’ to find pages with missing GA tracking code. You can also use tag auditing tools like ‘Tag Inspector’ to find such pages.

Note: If your website does not use template files then you are more likely to find web pages with missing GA tracking code.

#8 Google Analytics tracking code not firing on landing pages

Whenever Google Analytics tracking code does not fire for some reason on the landing page of a Google ad, Google Analytics does not track the session resulted from an ad click but Google Ads will still track and report on the ad click.

In that case, the number of ad clicks could be more than the number of GA sessions.

Following are the events in which your Google Analytics tracking code will not fire:

#1 Google Analytics tracking code is not a valid code.

#2 A user has disabled JavaScript, Cookies and/or images via browser settings.

#3 A user is using Google Analytics opt-out add on which disable Google Analytics.

#4  Redirects in landing pages may prevent the Google Analytics Tracking code from being executed.

#5 Some server or client-side error may prevent the GA tracking code from being executed.

Use Google Tag Assistant’ to identify such issues.

#9 Multiple Google Analytics tracking code firing on landing pages

This issue has become more common lately, as more and more marketers have started using Google Tag Manager (GTM).

Often marketers forget to remove the hardcoded GA tracking code from the website once they start using GTM.

As a result, the tracking code is fired twice on each landing page, once via the code, hardcoded on the page and once via GTM. So every click on a Google ad can trigger two GA sessions. In that case, you may see a lot more sessions than ad clicks.

Make sure that the Google Analytics tracking code is fired only once on a page. You can identify this issue by using ‘Google Tag Assistant’ and by learning to install Google Tag Manager correctly via this article: Google Tag Manager Implementation and Deployment Guide.

#10 View filters excluding Google Analytics session data

View filters can remove some or a lot of GA session data from your view. So when you compare the session data from a filtered view, with Google Ads click data, you are more likely to see a lot of data discrepancy.

The solution to this problem is to always use the unfiltered view when comparing Google Ads and Analytics data.

You can also create separate views that only capture Google Ads traffic. Below is the filter configuration to capture Google Ads data in a separate view.

Step-1: Log in to your Google Analytics account.

Step-2: Click on the admin settings on the left-hand side.

Step-3: Under ‘View’, click on the ‘Filters’ option.

google ads analytics dont match Filters

Step-4: Click on ‘Add Filters’ and select ‘Create new filter’.

google ads analytics dont match create new filter

Step-5: In the ‘Filter information’ section, enter the filter name, for example, ‘Include only CPC Traffic’.

Step-6: Filter type should be ‘Custom’ and opt for ‘Include’. Under ‘Filter field’ select ‘Campaign medium’ as shown below:

google ads analytics dont match Campaign Medium

Step-7: In the filter pattern select ‘cpc’.

Step-8: Click on ‘Save’.

Adding this filter in Google Analytics will capture all the cpc data in one view.

#11 Manual tagging is not configured correctly

In order to import Google Ads data into Google Analytics, you need to tag the Google Ads destination URLs. You can do that either manually or through auto-tagging.

If the manual tagging of destination URLs is not correct then Google Analytics may choose to ignore the campaign tracking variables and treat Google Ads traffic as Google organic traffic. This would result in a lot of discrepancies between Google Ads and Google Analytics data.

The solution to this problem is to avoid using manual tagging. Use auto-tagging instead. Google also strongly recommends using auto-tagging for Google Ads campaigns.

#12 Google Ads destination URLs are not tagged

In order to get Google Ads data into Google Analytics, you need to tag your Google Ads destination URLs either via auto-tagging or manually.

If you do not tag your Ad URLs then Google Analytics can report Google Ads traffic as traffic coming from Google organic search.

This can happen if you have disabled auto-tagging but then forgot to manually tag your ads URLs or when your auto-tagging is not working for some reason.

#13 Using both manual tagging and auto-tagging for Google Analytics

Following is an example of Ad URL which uses both manual and auto-tagging:

https://www.abc.com/?utm_source=google&utm_medium=ppc&utm_term=car-insurance&utm_content=text-ad&utm_campaign=car-insurance-promo-feb&gclid=CLjTpNrg8NIC

If you are tagging Google Ads destination URLs both manually and via auto-tagging for the purpose of importing Google Ads data into Google Analytics then this could create serious data discrepancy issues.

You may also see multiple/ duplicate entries for Google Ads in your GA view:

google ads analytics dont match mutiple duplicate entries

When you use auto-tagging, Google automatically tags the campaign source and medium of your Google ads as google / cpc.

But if you are also using manual tagging, you may over a long period of time, tag the same campaign source and medium differently as: google/ppc, google/PPC, google/CPC, Google/CPC etc.

In GA, traffic source names are case sensitive. So Google is different from google and Google. Similarly, traffic medium names are case sensitive. So cpc is different from CPC, Cpc.

If you are not consistent with the names and spellings of the values of your campaign tracking variables then you are most likely to see multiple/duplicate entries in your GA view. 

The best practice is to avoid using both manual and auto-tagging at the same time. If you are using auto-tagging, make sure that no URL is manually tagged.

#14 Using both manual tagging and auto-tagging for non-Google Analytics purpose

There are situations when you have to use both manual and auto-tagging. For example, if you want to track Google Ads traffic data in Kissmetrics in addition to Google Analytics, then you have to use both manual and auto-tagging.

Kissmetrics can not extract any campaign data from the GLCID parameter. So GCLID is pretty much useless for kissmetricsIt can get campaign data only through campaign tracking variables (UTM parameters). 

So you need to use manual tagging for sending Google Ads data to Kissmetrics and auto-tagging for sending Google Ads data to Google Analytics.

If you are using both manual and auto-tagging then GA can discard campaign tracking parameters (UTM parameters) in favour of GCLID. 

In order to stop this, follow the steps below:

Step-1: Navigate to the ‘Admin’ section of your GA view and then click on ‘Property Settings’ under the  ‘Property’ column:

google ads analytics dont match property settings

Step-2: Check the box “Allow manual tagging (UTM values) to override auto-tagging (GCLID values) for Google Ads and Double Click Search Integration”:

google ads analytics dont match allow manual tagging 600x208 1

#15 GCLID parameter dropped because of redirect

Sometimes redirect can cause a GCLID parameter to be dropped from the landing page URLs (quite common in case of redirect from desktop to mobile website).

When the GLCID parameter is dropped, the auto-tagging doesn’t work and Google Ads campaign data is not sent to Google Analytics.

In order to test whether the GCLID parameter is dropped or not, follow the steps below:

Step-1: Add ‘?gclid=test’ to the end of the original destination URL of your Google Ads Ad.

For e.g. https://www.abc.com/?gclid=test.

If glcid=test is not the first parameter, then add ‘&gclid=test’ to the end of the destination URL of your Google Ads Ad.

For e.g. https://www.abc.com/?source=google&gclid=test

Step-2: Copy-paste the modified URL into the address bar of your browser window and then press the ‘enter’ key:

google ads analytics dont match address bar

Step-3: If the URL of the resulting page does not display ‘gclid=test’ then it means the redirect did not carry the GCLID parameter from the original URL to the final URL.

For example:

Let says the destination URL with auto-tagging is:

https://www.abc.com/?gclid=test

when the redirect occurs, the final URL becomes:

https://www.abc.com/tops/

instead of:

https://www.abc.com/tops/?gclid=test

To resolve this issue you can do two things:

#1 Prevent the redirect from occurring.

You can do that by manually updating all of your original ad destination URLs to final URLs.

For example, if your original ad destination URL is https://www.abc.com/ but it redirects to https://www.abc.com/tops/ then use the later URL as your ad destination URL.

This way, no redirect will take place when a user clicks on an ad and hence no GCLID parameter will be dropped.

#2 Configure your server to allow redirects to carry GCLID parameter from the original URL to the final URL.

For example:

Let says the destination URL with auto-tagging is:

https://www.abc.com/?gclid=test

when the redirect occurs, the final URL becomes:

https://www.abc.com/tops/?gclid=test

Here the URL has changed but the GCLID parameter remains intact. That means your redirect is able to carry the GCLID parameter from the original to the destination URL.

#16 Google Analytics cannot read the GCLID value

Sometimes GA can’t read the GCLID value even when you can see the value in the browser address bar.

This can happen when:

#1 Google Analytics Tracking code on the landing page is not valid.

#2 GA tracking code is valid but is not fired for some reason.

#3 GA tracking code is embedded in an IFRAME and the IFRAME is not a parent frame. If the GA tracking code is embedded in a child frame then it can not read the GCLID value, as a child frame can not read the address URL of a parent frame. So make sure the GA tracking code is always embedded in the parent frame.

#4 Your web server is altering or truncating the GCLID parameter. In order to test, whether or not your server is truncating the GCLID parameter, follow the steps below:

Step-1: Add the following GCLID parameter to the end of the destination URL of your Google ad:

gclid=TeSter-123-ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-0123456789-AaBbCcDdEeFfGgHhIiJjKkLl

For example: 
https://www.abc.com/?gclid=TeSter-123-ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-0123456789-AaBbCcDdEeFfGgHhIiJjKkLl.

The value of this GCLID parameter is 100 characters which is the maximum value a GCLID parameter can store.

Step-2: Copy-paste the modified URL into the address bar of your browser window and press enter.

Step-3: If the entire value of the GCLID parameter remains intact, then it means your server is not truncating the GCLID value.

#17 GCLID parameter is throwing error pages

This can happen when the presence of the GCLID parameter in a URL breaks the URL rewrite rule.

You would need to configure your web server so that it accepts the GCLID parameter.

#18 Bookmark contains GCLID parameter

Sometimes a user bookmark a landing page and the page URL also contains the GCLID parameter.

In that case, when a user returns to your website via the bookmark, Google analytics record a session resulting from an ad click but no ad click is recorded and reported by Google Ads.

If a lot of users return to the website via such bookmarks then Google Analytics can record more sessions than ad clicks reported by Google Ads.

#19 Difference between Google Ads and Google Analytics conversion tracking

I have explained the difference between Google Ads and analytics conversion tracking in this article: Difference between Google Ads and Google Analytics Conversion Tracking

#20 Data sampling issue creating data discrepancies

Data sampling in Google Analytics can easily skew your GA sessions data and as a result, you may see a lot of discrepancy between Google Ads clicks and GA sessions.

#21 You are comparing apples to oranges

If everything else fails, you are most likely comparing apples to oranges. 

When you look at the analytics data for long data ranges (six months or more), you could be comparing apples to oranges. This is because so much would have changed during that time frame from website size, traffic volume, marketing campaigns and yes analytics setup.

  • Maybe 6 months ago, your analytics account wasn’t linked to your Google Ads account.
  • Maybe 3 months ago, conversion tracking wasn’t set up in Google Ads.
  • Maybe 4 months ago there was some problem with auto-tagging.
  • Maybe 3 weeks ago, you applied a filter to your GA view which started excluding all of the internal traffic.  

So when you overlook all of these historical changes made to your Google Ads and GA accounts and you start comparing Google Ads clicks with GA sessions, you are likely to see data discrepancies.

Another article you will find useful: Blue Print for Google Analytics Implementation

My best selling books on Digital Analytics and Conversion Optimization

Maths and Stats for Web Analytics and Conversion Optimization
This expert guide will teach you how to leverage the knowledge of maths and statistics in order to accurately interpret data and take actions, which can quickly improve the bottom-line of your online business.

Master the Essentials of Email Marketing Analytics
This book focuses solely on the ‘analytics’ that power your email marketing optimization program and will help you dramatically reduce your cost per acquisition and increase marketing ROI by tracking the performance of the various KPIs and metrics used for email marketing.

Attribution Modelling in Google Analytics and BeyondSECOND EDITION OUT NOW!
Attribution modelling is the process of determining the most effective marketing channels for investment. This book has been written to help you implement attribution modelling. It will teach you how to leverage the knowledge of attribution modelling in order to allocate marketing budget and understand buying behaviour.

Attribution Modelling in Google Ads and Facebook
This book has been written to help you implement attribution modelling in Google Ads (Google AdWords) and Facebook. It will teach you, how to leverage the knowledge of attribution modelling in order to understand the customer purchasing journey and determine the most effective marketing channels for investment.

About the Author

Himanshu Sharma

  • Founder, OptimizeSmart.com
  • Over 15 years of experience in digital analytics and marketing
  • Author of four best-selling books on digital analytics and conversion optimization
  • Nominated for Digital Analytics Association Awards for Excellence
  • Runs one of the most popular blogs in the world on digital analytics
  • Consultant to countless small and big businesses over the decade