[Digital Analytics](/categories/digital-analytics) March 17, 2026

# Enhanced conversions in Google Ads: setup and checks

What enhanced conversions are, web and leads variants, setup in GTM or a server container, Consent Mode, and how to check the hashed data keeps flowing.

![](/images/65d75b0ae8d69ef95785a5d6_david-pombar.webp)

**[David Pombar](/author/david-pombar)** Swiss army knife at Trackingplan

17 min read · 3778 words

**Enhanced conversions** is a free Google Ads feature that adds hashed first-party data, such as the email address a customer typed at checkout, to the conversion tag you already run, so Google can match the conversion to the ad click even when the cookie is gone or the device changed. It comes in two variants, web and leads, and two implementation paths, browser-side and server-side. This post, part of our [conversion tracking](/blog/what-is-conversion-tracking) series, covers what it is, how to choose and run each path, how Consent Mode applies, and how to check that the hashed data keeps flowing after the next release.

## What enhanced conversions are and why they matter

![Overhead shot of a smartphone displaying an online shopping cart and a laptop with a 'Connect Conversions' note.](/images/69b8f7c34359bde6e60db94f_enhanced-conversions-google-ads-online-conversions.jpeg)

Overhead shot of a smartphone displaying an online shopping cart and a laptop with a 'Connect Conversions' note.

Standard conversion tracking depends on a cookie surviving from the click to the conversion. Safari caps that cookie's life, cross-device journeys break it, and consent choices remove it. Each lost match is a conversion Google Ads cannot credit, and a bid it optimizes without. That is the gap **enhanced conversions for Google Ads** closes.

Just think about a common scenario: a customer clicks your ad on their smartphone during their morning commute but only completes the purchase later that night on their laptop. Without a way to connect these two actions, your standard tracking would likely miss this conversion entirely, making your campaign look less effective than it truly was.

### How the matching works

Enhanced Conversions bridges this gap. When a user converts on your site—by making a purchase or filling out a form—you can securely capture the first-party data they provide, such as an email address or phone number.

This data is then hashed directly in the user's browser using a one-way algorithm called **SHA256** before it ever gets sent to Google. Hashing scrambles sensitive data into an unreadable string of characters, keeping user privacy at the forefront. Google then tries to match this hashed string against its own database of hashed data from signed-in Google users. When a match is found, a conversion is correctly attributed to your ad campaign.

> **Key Takeaway:** The whole point of enhanced conversions is to create a durable, privacy-safe link between ad clicks and conversions, even when cookies aren't there. This leads to more robust attribution and helps you make smarter bidding decisions.

Let's take a quick look at how this method stacks up against older tracking techniques.

#### Enhanced Conversions vs Traditional Tracking

| Feature | Traditional Conversion Tracking | Enhanced Conversions Google Ads |
| :--- | :--- | :--- |
| **Data Source** | Relies on third-party cookies and pixel fires. | Uses first-party data (e.g., email) provided by the user. |
| **Accuracy** | Prone to data loss from cookie blocking and cross-device journeys. | Recovers lost conversions by matching hashed data. |
| **Privacy** | Dependent on third-party cookies, which are being phased out. | Uses one-way hashing (SHA256) to protect user data. |
| **Resilience** | Performance degrades as cookie restrictions increase. | Built to be durable in a cookieless advertising environment. |

Google reports a median 5% lift in reported Search conversions and 17% for YouTube among advertisers that adopted it; your lift depends on how many of your conversions were losing the cookie, so measure your own before and after.

### Web and leads: the two variants

-   **Enhanced conversions for web** improves the measurement of conversions that happen on your site: a purchase, a sign-up, a form submission. The hashed data travels with the conversion tag at the moment of conversion.
-   **Enhanced conversions for leads** measures conversions that happen *after* the form, offline: the lead signs a contract or buys over the phone. You capture the hashed email and the click ID at the form, and later upload the closed deals so Google ties them back to the click.

### Two paths to implementation

Ready to get started? You have two main ways to set up **enhanced conversions for Google Ads**:

-   **Browser-Side (or "Tag-Based")**: This method uses your existing Google Tag (gtag.js) or Google Tag Manager (GTM) setup. It's the quicker and more straightforward option, perfect for teams without a ton of developer resources. All the hashing happens right in the user's browser.
    
-   **Server-Side**: This is a more advanced approach where you send conversion data from your website to your own server first, and *then* forward it to Google. It offers the best accuracy, security, and control, making it the top choice for enterprises or businesses handling sensitive data. If server-side tracking is on your radar, you should learn more about the [Google Tag Gateway](/blog/google-tag-gateway) and its role in this type of architecture.
    

## Choosing the implementation path

Your first big decision when setting up **enhanced conversions for Google Ads** is choosing *how* you'll implement it. This choice will fundamentally shape your tracking infrastructure, and you've got two main routes: a browser-side setup or a server-side one. The right path hinges on your technical resources, business needs, and your long-term data strategy.

Think of it as building a house. A browser-side setup is like a high-quality prefab home—it’s faster to assemble with standardized parts and gets you up and running quickly. Server-side is the custom-built route; it demands more architectural planning and effort but gives you ultimate control and unmatched durability.

### The browser-side approach

The browser-side method is the most common starting point for a reason. It uses your existing [Google Tag Manager (GTM)](https://tagmanager.google.com/) or global site tag (gtag.js) to capture, hash, and send user data directly from the visitor's browser to Google's servers.

This approach is a great fit for:

-   **Smaller teams** with limited developer time or budget.
-   Businesses that need to get **enhanced conversions running quickly** to see an immediate lift in data accuracy.
-   Marketers who are already comfortable working inside Google Tag Manager and prefer a more straightforward process.

The main draw here is speed and simplicity. You can often have it running in a few hours, not weeks. The trade-off is its reliance on the user's browser, which makes it more vulnerable to ad blockers and browser-level tracking restrictions that can erode its effectiveness over time.

### The server-side approach

In contrast, a server-side setup gives you control over the data before Google sees it. With this method, your website first sends conversion data to your own server-side GTM container. From there, you control exactly what data gets forwarded to [Google Ads](https://ads.google.com/). This creates a powerful layer of control and security.

> Server-side implementation is the path with the most control over accuracy and privacy. By processing data on your own server, you gain complete ownership over the data stream, reduce your site's reliance on client-side scripts, and build a more resilient tracking infrastructure.

This advanced path is the go-to choice for:

-   **Enterprises and regulated industries** like finance or healthcare that require maximum control over data handling.
-   Businesses focused on **optimizing website performance**, as it shifts the heavy lifting from the user's browser to your server.
-   Marketers who demand the highest possible data accuracy, since it’s less affected by ad blockers and ITP (Intelligent Tracking Prevention).

Opting for server-side is a strategic move. It requires more technical expertise to set up a tagging server (often on [Google Cloud Platform](https://cloud.google.com/)) and maintain it. The payoff, however, is a superior, more secure data collection system that puts you firmly in control.

### Choosing between them

To make an informed choice, you have to weigh the pros and cons against your specific situation. There is no one-size-fits-all answer; the best method is the one that aligns with your resources and goals. If you're curious to learn more about the possibilities of server-side data, exploring topics like [how to implement server-side tracking beyond Google Ads](/guides/server-side-tagging-meta-capi-google-ads-tiktok) can offer valuable context.

| Aspect | Browser-Side Setup | Server-Side Setup |
| :--- | :--- | :--- |
| **Speed & Simplicity** | Fast and easy to implement, often using GTM. | Slower, more complex, requires server infrastructure. |
| **Cost** | Minimal cost, uses existing tools. | Involves server costs (e.g., Google Cloud Platform). |
| **Data Accuracy** | Good, but can be impacted by ad blockers. | Excellent, more resilient to tracking prevention. |
| **Security & Privacy** | Secure hashing, but data is sent from the browser. | Highest level of control and security over data. |
| **Maintenance** | Low, managed within GTM. | Requires ongoing server management and oversight. |

Ultimately, many businesses start with a browser-side implementation to quickly benefit from **enhanced conversions in Google Ads**. As their data maturity and needs evolve, they often migrate to a server-side setup to gain the additional control and accuracy it provides.

## Browser-side setup, step by step

If you need to start recovering lost attribution data \*fast\*, the browser-side setup for \*\*Google Ads Enhanced Conversions\*\* is your best bet. This approach is hands-down the quickest way to get a solution live, especially for marketers who can't afford a long development cycle. It all works right within \[Google Tag Manager (GTM)\](https://marketingplatform.google.com/about/tag-manager/), an interface you probably know like the back of your hand.

The concept is pretty simple. When a user converts on your site, we'll use GTM to grab the personal data they've shared (like an email address), hash it for privacy, and then package it with the conversion event sent to Google Ads. This little bundle of data helps Google connect the dots between an ad click and a conversion, even when third-party cookies are out of the picture.

### Preparing the website and the GTM container

Before you even open GTM, there’s a critical prerequisite: the user's data needs to be accessible on the page. When someone fills out a form—for a lead, a newsletter, or a purchase—that information has to be available for GTM to see. The cleanest and most reliable way to do this is with a `dataLayer.push()`.

You’ll need to work with your developers to make sure a successful form submission triggers a push of that user data into the data layer. For a standard lead form, the code might look something like this:

window.dataLayer = window.dataLayer || \[\];  
window.dataLayer.push({  
'event': 'form\_submission\_success',  
'user\_data': {  
'email': '[jane.doe@example.com](mailto:jane.doe@example.com) ',  
'phone\_number': '+1234567890'  
// Other fields as needed  
}  
});

This data structure is the prerequisite for a browser-side setup. It creates a predictable, stable source for GTM to pull from, making the rest of the process much smoother.

### Capturing user-provided data in GTM

With your data layer ready to go, the next step is to create variables inside GTM that can catch these values. You'll need to set up a **Data Layer Variable** for each piece of user information you plan on sending to Google.

Here's how to get it done in GTM:

1.  Head over to the **Variables** section and create a new "User-Defined Variable."
2.  Select **Data Layer Variable** as the variable type.
3.  For the "Data Layer Variable Name," you'll point it to the data's path. Based on our example, the variable for email would be `user_data.email`.
4.  Give it a descriptive name like `DLV - User - Email` and hit save.

Go ahead and repeat this for any other fields you want to send, such as phone number (`user_data.phone_number`) or address information.

### Configuring the user-provided data variable

Now it's time to bundle all that information into a single, neat package that Google can understand. This is done with the **User-Provided Data** variable, which was built specifically for Enhanced Conversions.

Back in the **Variables** section, create another "User-Defined Variable." This time, choose ** User-Provided Data** from the list. You’ll see fields for Email, Phone Number, First Name, and so on. In the "Email" field, simply select the `DLV - User - Email` variable you just created. Do the same for all the other Data Layer Variables you made, mapping each one to its correct field.

> **Pro Tip:** Google handles all the data hashing automatically, but the input format matters. Phone numbers must include a country code (like `+1`), and addresses need to be broken down into individual components (street, city, state, postal code). Clean data going in means accurate matching coming out.

### Updating the Google Ads conversion tag

The final piece of the puzzle is telling your existing Google Ads Conversion Tracking tag to actually *use* this new user data.

Find the tag in GTM that fires on your main conversion event (like our `form_submission_success` example) and open it up. In the tag configuration settings, you'll see a checkbox labeled **"Include user-provided data from your website."**

Tick that box. A new field will pop up, asking you to select a User-Provided Data Variable. Pick the one you just configured. That's it! From now on, whenever this conversion tag fires, it will automatically bundle in the hashed user data.

With everything configured, fire up GTM's Preview mode to run a full test. Go through the conversion flow on your website and keep an eye on the Tag Assistant. You should see your conversion tag fire. Click on it to inspect the details and confirm that the user-provided data is included in the hit being sent to Google Ads. Once you’ve verified it’s all working, publish your GTM container, and you're good to go.

## Server-side setup

For businesses that demand the highest level of data accuracy and security, a server-side implementation of **enhanced conversions for Google Ads** is the gold standard. This isn't just a small adjustment; it's a strategic overhaul of how your conversion data flows, creating a much more robust and future-proof measurement system.

Instead of sending event data directly from a user's browser to Google, you first route it to a server environment that you own. This server, usually a server-side [Google Tag Manager (GTM)](https://marketingplatform.google.com/about/tag-manager/) container, acts as a secure middleman. Only after the data is processed on your end is it forwarded to Google's servers.

This method gives you some serious advantages. Moving the data transfer off the user's browser can slightly improve site performance and makes your setup more resilient against ad blockers and tracking restrictions. It also puts you in control, giving you the power to enrich or validate data before it ever leaves your ecosystem.

### The server-side architecture

The heart of this setup is your tagging server, which typically runs on [Google Cloud Platform](https://cloud.google.com/). This server takes in data from a client-side tag (most often GA4) and then uses its own set of tags to send that data out to various endpoints, including Google Ads.

The diagram below shows the basic browser-side flow, which is where the data originates before being sent to your server.

![Browser-side setup flow showing three steps: capture data, configure GTM, and validate ads with icons.](/images/69b8f7c34359bde6e60db94c_enhanced-conversions-google-ads-setup-flow.jpeg)

Browser-side setup flow showing three steps: capture data, configure GTM, and validate ads with icons.

In a server-side model, that "Configure GTM" step is modified. The data goes to your server container first, *not* directly to Google Ads.

This two-container architecture gives you control over every field before it leaves your environment. For a deeper look at building this kind of infrastructure, our comprehensive guide on [server-side tagging for platforms like Google Ads and Meta](/guides/server-side-tagging-meta-capi-google-ads-tiktok) is a great resource.

### Configuring the server-side GTM container

To get your server-side GTM container ready for **enhanced conversions for Google Ads**, you'll need a few key pieces.

-   **GA4 Client:** This is the entry point. The GA4 client in your server container claims the incoming requests sent from the GA4 tag on your website. It then standardizes this information into an event data object that other tags can use.
-   **Conversion Linker Tag:** Just like on the browser side, the Conversion Linker tag is required. In the server container, its job is to scan incoming requests for URL parameters like the `gclid` (Google Click ID) and set a first-party cookie to attribute conversions correctly.
-   **Google Ads Conversion Tracking Tag:** This is the tag that sends the final conversion data to Google Ads. It uses the event data passed to it from the GA4 client and automatically includes the hashed user information whenever it's available.

This server-side process ensures sensitive user data is handled securely within your own environment before being hashed and forwarded, adding a critical layer of privacy and control.

### Consent Mode on the server

Consent needs more attention in a server-side setup, not less. Consent Mode signals, like `ad_storage` and `analytics_storage`, are passed from the user's browser along with the event data to your server container.

Your server-side tags must be configured to respect these signals. The good news is the Google Ads Conversion Tracking tag will automatically adjust its behavior based on the consent status it receives, which keeps you compliant while still allowing you to model for lost conversions where permitted.

### Prerequisites

Going down the server-side path requires some technical planning. You'll need to set up and maintain a tagging server, which comes with costs and requires expertise, typically using Google Cloud Platform's App Engine.

You also have to make sure your website is correctly configured to send data to your new server-side endpoint. This means updating your client-side GTM or gtag.js configuration to point to your tagging server's URL instead of directly to Google's.

While this setup definitely demands more upfront effort, the long-term benefits in data fidelity, security, and performance make it a worthy investment for any serious data-driven organization.

## Verifying that the data keeps flowing

![A person holds a smartphone displaying data analytics next to a monitor showing 'Monitor Data Quality' with charts.](/images/69b8f7c34359bde6e60db955_enhanced-conversions-google-ads-data-monitoring.jpeg)

A person holds a smartphone displaying data analytics next to a monitor showing 'Monitor Data Quality' with charts.

Getting **enhanced conversions for Google Ads** live is not the end of the work. The real challenge is keeping that data stream clean and consistent over time. A flawless setup is more fragile than you think—it can break without warning, leading to silent data loss and wasted ad spend.

Imagine this: a developer pushes a minor site update, a new feature is deployed, or a consent banner is reconfigured. Suddenly, your enhanced conversion data is corrupted or stops flowing entirely. When that happens, Google’s ability to match conversions plummets, and its Smart Bidding algorithms start making decisions with incomplete, inaccurate information.

### What breaks, and what it costs

This isn't just a technical hiccup; it's a financial drain. When your enhanced conversions setup breaks, your reported ROAS becomes dangerously misleading. You might pull back the budget from a campaign that’s actually performing well or, even worse, pour money into campaigns that look great only because of over-attribution from bad data.

> The accuracy of your attribution model depends entirely on the quality of the data you feed it. Intermittent data loss or malformed properties can introduce significant noise, making it difficult to trust your performance metrics and optimize your campaigns effectively.

The manual checks are the Google Ads Diagnostics page (Goals > Conversions > Diagnostics, which reports whether user-provided data is arriving and matching) and a test conversion in GTM Preview after every change to the form or the container. The [Google Ads conversion tracking troubleshooting post](/blog/google-ads-conversion-tracking-not-working) lists what each symptom means. Both checks are a point in time; the next release can undo them.

### How Trackingplan watches it

Trackingplan works where the data is produced: the dataLayer push with the user data, the GTM release that changed the variable, the hit to Google Ads, the consent state that went with it. One tag or server-side hook, and it infers the conversion events your site actually sends and what they carry, then reports to the owner:

-   **Broken Conversion Tags:** Get an immediate alert via Slack or email if your Google Ads conversion tag stops firing after a site update.
-   **Malformed Data:** Instantly know if an `email` property is suddenly sent in the wrong format or if a `phone_number` is missing its country code.
-   **PII Leaks:** Trackingplan can detect if personally identifiable information is accidentally sent in an unhashed format, helping you prevent serious privacy violations.

It names the cause when two independent pieces of evidence agree, and says so when it cannot. The [conversion tracking validation playbook](/blog/conversion-tracking-validation) is the manual version of the same checks.

### The attribution shift to expect

A robust data quality process also helps you better interpret the sophisticated outcomes of enhanced conversions. While they typically boost reported conversions, they can sometimes lead to fewer direct attributions to Google Ads. This isn't a failure; it’s a sign of more precise credit redistribution across all your channels. It uncovers the true multi-touch customer journey and prevents over-attribution to a single touchpoint. To explore this counterintuitive result, you can read more about [why enhanced data might shift attributions on blog.littledata.io](https://blog.littledata.io/2025/01/17/why-enhanced-conversions-might-result-in-fewer-conversions-attributed-to-google-ads/).

Enhanced conversions run on [first-party data](/blog/what-is-first-party-data), and the consent that covers it is the same consent that covers the rest of your tracking.

## Frequently asked questions

### Are enhanced conversions compliant with GDPR and CCPA?

Yes, but only when it's implemented correctly. The entire system was built with privacy in mind, using a secure one-way hashing algorithm (**SHA256**) on first-party data like email addresses. This hashing happens directly in the user's browser *before* any data is sent to Google.

Google never sees the raw personal data. You still need the visitor's consent to collect and use it for measurement, as for any other tracking, and Consent Mode's `ad_user_data` parameter is how that consent reaches the tag.

### What happens if a user does not provide their data?

It's simple: if a user doesn't provide an email, phone number, or address—maybe they check out as a guest—then enhanced conversions can't be used for that specific transaction. The system needs that user-provided data to create the hash for matching.

Your standard conversion tracking will still fire and try to attribute the sale. You just miss out on the cross-device and post-cookie benefits for that particular conversion. This is a great reason to encourage users to create accounts or provide their info, as it helps both you and them.

### Can I use enhanced conversions if my conversions happen offline?

Absolutely. This is actually one of the biggest advantages of the system, and it's handled through a feature called **'Enhanced Conversions for leads'**.

Here’s how that flow typically works:

1.  A user clicks one of your ads and submits a lead form on your site.
2.  You capture their information (like an email) and the **Google Click ID (gclid)** from the URL.
3.  Later, when that lead converts offline—maybe they sign a contract or make a purchase over the phone—you upload a file to Google Ads.

That file contains the hashed user data and the `gclid` you saved, which allows Google to tie the final offline revenue back to the original ad click.

> This offline capability matters for businesses with longer sales cycles, like B2B services or high-ticket retail. It’s the key to connecting ad spend directly to revenue that never even touches your website's checkout.

### Will enhanced conversions slow my website down?

The impact of the browser-side implementation is negligible. It's comparable to any other tracking tag you’re already running. The hashing process is incredibly fast and happens almost instantly right in the user’s browser.

If page weight is a priority, the server-side path moves the sending off the browser, as the [server-side tracking](/blog/server-side-tracking) pillar explains.

Part of[What is conversion tracking and how does it work](/blog/what-is-conversion-tracking)

On this page

1.  [*01*What enhanced conversions are and why they matter](#what-enhanced-conversions-are-and-why-they-matter)
2.  [*02*Choosing the implementation path](#choosing-the-implementation-path)
3.  [*03*Browser-side setup, step by step](#browser-side-setup-step-by-step)
4.  [*04*Server-side setup](#server-side-setup)
5.  [*05*Verifying that the data keeps flowing](#verifying-that-the-data-keeps-flowing)
6.  [*06*Frequently asked questions](#frequently-asked-questions)

**Stop babysitting tags**

Trackingplan audits your real user data around the clock and flags issues before they cost you.

[Start free trial →](https://app.trackingplan.com/signup)

![](/images/65d75b0ae8d69ef95785a5d6_david-pombar.webp)

**David Pombar** Swiss army knife at Trackingplan

Read more from David, a Senior Product Strategist with 18+ years in digital product development and an atypical error detection knack.

Share Copy link [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.trackingplan.com%2Fblog%2Fenhanced-conversions-google-ads) [X](https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.trackingplan.com%2Fblog%2Fenhanced-conversions-google-ads&text=Enhanced%20conversions%20in%20Google%20Ads%3A%20setup%20and%20checks)

Read next

[All Blog →](/blog)

-   [
    
    8 minDigital AnalyticsOctober 20, 2026
    
    ### AI analytics agents compared: what each one can see
    
    Six AI analytics tools compared by the evidence they read, how they work, and where they stop, for teams asking why GA4 and ad conversions dropped.
    
    by **Mariona Martí**](/blog/ai-analytics-agents-compared)
-   [
    
    16 minDigital AnalyticsOctober 14, 2026
    
    ### GTM debugging: manual methods vs continuous monitoring
    
    How to debug Google Tag Manager with Preview Mode, extensions, the Network tab and server-side preview, and when continuous monitoring takes over.
    
    by **David Pombar**](/blog/gtm-debugging-guide)
-   [
    
    11 minDigital AnalyticsOctober 9, 2026
    
    ### Meta Pixel and CAPI debugging tools compared
    
    Data Advisor, GTM Preview, DevTools, Test Events, Diagnostics, server logs, and Trackingplan: what each one proves when you debug Meta Pixel and CAPI.
    
    by **Mariona Martí**](/blog/meta-pixel-capi-debugging-tools)

Trackingplan

## See everything. Miss nothing.

Your implementations audited around the clock with real-time, real-user data. Real-time alerts about errors or changes in your data, campaigns, pixels, privacy and consent. Let AI flag issues before they cost you.

[Start free trial →](https://app.trackingplan.com/signup) [Book a demo](/demo)
