Reconciling data from Google Ads and Google Analytics

Stitch customers sometimes ask us about discrepancies between the numbers they see in Google Ads (formerly AdWords) and those displayed in Google Analytics. Stitch replicates data from both platforms — shouldn't Google data be Google data?

Unfortunately, it's not that simple. Despite the fact that they're from the same company, these are different products that use their own terminology and business rules. One term, "conversion rate," means something different in each of the two products. Similarly, a click in Google Ads is not equivalent to a session in Google Analytics.

Google gets a lot of questions about this issue. They documented some of the data discrepancies between Google Ads and Google Analytics. If you see differences, Google explains some likely causes:

  • Comparing long date ranges may include periods during which your accounts were not linked.

  • Linking multiple Google Ads accounts to the same Analytics view complicates the information in your reports.

  • Filters may remove some of the data from your Analytics reports. Check that there are no filters editing your campaign final URLs.

  • Google Ads data is imported into Analytics at the time you view your report, so data is current as of the most recent hour.
  • In another post, Google says, "When you compare Clicks from Google Ads and Sessions from Analytics side by side, you might expect that the numbers match, [but] they often don't." The post shows how "the process to record a click is straightforward; however, recording a session involves requirements and checkpoints," and "if latency is introduced ... this can ... reduce the click-to-session ratio (more clicks than sessions are recorded)."

    Finally, Google provides a table (below) that compares Google Analytics and Google Ads conversion metrics, and covers reasons for data differences across the two platforms:

      Analytics: Goal Analytics: Transaction Google Ads: Conversion
    Count Once per session per configured goal Many per session (Transactions with same Transaction ID within one session are not double counted.)

    User configurable for each conversion action:

    One conversion: Once per ad click

    Every conversion: Many per ad click

    Attribution time Time of Goal completion Time of Transaction completion Time of the last impression preceding the ad click that led to a conversion
    Attribution source Last non-direct click model by default, but configurable (in the Model Comparison Tool). Last non-direct click model by default, but configurable (in the Model Comparison Tool). Only counted if the user has clicked on an ad from the Google Ads account (google/cpc traffic only)
    Reporting Reported fully after a 72-hour processing window Reported fully after a 72-hour processing window Reported daily for your chosen conversion window (1–90 days, default: 30 days) 
    Handling of multiple codes on one page One session can have one goal completion for each configured goal. The total can be up to 20 per session. N/A If multiple Conversion Tracking tags for the same account are installed on a single page, Google Ads counts a separate conversion for each tag

    In summary, sets of data from Google Ads and Google Analytics are not consistent. And that's not really surprising — any two analytics tools are likely to deliver slightly different values for the same metrics. Each may define the metric in a slightly different way, and collect data using different methods. The discrepancies seem more surprising, however, when the two analytics applications come from the same company.

    Where does that leave you if you want to check the validity of the data in your data warehouse? You should compare the data you've replicated for each platform with what you see in the Google UI for each, separately.

    Which set of data is "better"? Each organization has to answer that question depending on its use case. Read Google's in-depth explanation of the differences to see whether one or the other makes more sense for your organization. Fortunately, as a data engineer, you don't have to choose. Sign up for Stitch and replicate both data sets to your data warehouse, then let your analytics team use the data that makes the most sense.