Search

Enhanced conversions vs server-side tracking

Enhanced conversions vs server-side tracking: one helps Google Ads match a conversion to an ad, the other decides whether it arrives. Setup, checks and our lab.

By , Founder
Updated 15 min read

Enhanced conversions are a Google Ads feature that sends hashed customer data with a conversion your tag already reports, so Google can match it to an ad. Google Ads server-side tracking decides something earlier: whether the conversion reaches Google at all.

An order can be lost at either step. We tested Google’s requests in real browsers with six blocker setups to see where extra matching data helps and where the request itself is stopped.

What are enhanced conversions in Google Ads?

Enhanced conversions send hashed first-party customer data to Google with a conversion that your tag already reports. According to Google Ads Help (“About enhanced conversions”), they supplement existing conversion tags with data such as email, name, home address and phone number.

The data is normalised and hashed with SHA-256 before it is sent, and Google says this improves measurement accuracy. With the tag routes, the extra data travels on the existing conversion request. It doesn’t change how the tag loads or where that request goes.

Two groups of steps. Already in place: a purchase on your site, then your existing conversion tag fires. Added by enhanced conversions: the conversion plus hashed customer data (email, name, address, phone, SHA-256), then Google matches it to the ad interaction
The extra data travels on the conversion request the tag already sends.

You need the customer fields available at purchase and a conversion tag that already fires. For a visitor whose tag doesn’t fire, there’s no conversion for the extra data to supplement.

How do you set up enhanced conversions?

You turn them on in Google Ads, choose how the customer data reaches Google, and pass at least one customer field. The steps below follow Google’s own guides for the Google tag and Google Tag Manager.

Before you start, Google asks you to have:

  • The exact URL where the conversion tag fires, and its conversion event trigger.
  • First-party customer data on that page: an email address, full name and home address, and/or a phone number.
  • A developer for any code change.
  • Confirmation that you can comply with Google’s customer data policies.

Google offers three routes:

Method When Google suggests it Google’s guide
Google tag Conversion tracking already runs on the page through the Google tag Set up with the Google tag
Google Tag Manager You already use Google Tag Manager for conversion tracking Set up with Google Tag Manager
Google Ads API You want more flexibility and control over the data Set up with the Google Ads API
How do you set up enhanced conversions with the Google tag?

Google’s steps:

  1. In Google Ads, go to Goals, then Settings, and expand the “Enhanced conversions” section.
  2. Tick “Turn on enhanced conversions” and agree to the customer data terms.
  3. Choose “Google tag” in the method dropdown. If you are unsure, select “Which method should I use?” and enter your domain.
  4. If Google Ads says “your tag will collect user-provided data from your website”, select Save. Otherwise select Tag details.
  5. In Tag details, pick how the tag captures the data: automatic detection, CSS selectors or JavaScript variables, or a code snippet. Select Save.
  6. Validate the set-up, as described in the next section.
How do you set up enhanced conversions with Google Tag Manager?

The Tag Manager steps:

  1. In your Google tag settings, select “Allow user-provided data capabilities” and choose a collection method. Google recommends this for a first set-up.
  2. In Google Ads, go to Goals, then Settings, expand the enhanced conversions panel and tick “Turn on enhanced conversions”. Agree to the compliance statement.
  3. Choose “Google Tag Manager” as the method and select “Go to Google Tag Manager”.
  4. In Tag Manager, open the Google tag that has your Ads account as a destination, select Manage, then “Allow user provided data capabilities”, and choose the collection method.
  5. If the customer data sits on an earlier page than the conversion page, Google describes a separate “Google Ads User-Provided Data Event” tag with a form submission trigger.
  6. Save, publish and validate.

Whichever route you choose, the tag collects the data in one of three ways: automatic detection, selectors or variables you point to, or a snippet that sends it directly.

Email is preferred, and an address needs a first name, last name, postal code and country.

Google’s pages differ on one label. The setup guides still name the panel “Enhanced conversions”, while the updates page calls it “Customer data use”. Follow the label your account shows.

2026 changes: web, leads and one setting

Google’s page “Updates to your enhanced conversions settings” says Google Ads accepts user-provided data from website tags, Data Manager and API connections at the same time from April 2026.

It says enhanced conversions for web and for leads become one feature with an on/off switch from June 2026, and that existing users need no action. You can still opt out per conversion action.

The same page says that from 15 June 2026, offline conversion imports and enhanced conversions for leads uploads move to the Data Manager API and are blocked in the Google Ads API.

Consent

Google says data collection won’t begin until you accept the terms of service and, where applicable, the necessary consent parameters are set to “granted”.

It also says that if you use Consent Mode, the ads cookie follows the ad_storage consent status (Google tag and Google Tag Manager guides).

Whether you may collect the data is a question for your legal adviser; this is not legal advice.

How do you check that enhanced conversions are working?

Google documents two checks, and a third shows up once the feature has had time to train.

Check Where What to look for
Request payload Chrome DevTools, Network tab, filter for “google”, the request to googleadservices.com/pagead/conversion/, then Payload An em parameter with a hashed value, shown as “tv.1~em” followed by the hash
Diagnostics report Google Ads, Goals, Summary, the conversion action with enhanced conversions on, then Diagnostics Health checks on your implementation (timing below)
Impact card Google Ads, after the learning period The status “Recording (enhanced conversions)” and the impact on reported conversions, shown for 30 days

Google’s DevTools check also lists google.com/pagead/1p-conversion/ for “some browsers”. If you see only “tv.1~em” with no hash after it, Google says the parameter is being sent empty, which can happen when the customer data isn’t available at the time of conversion.

Diagnostics timing depends on the route

Google’s pages give different timings, so check the guidance for the route you used.

Google page What it says
Set up with the Google tag The tag diagnostics report can be viewed about 72 hours after implementing
Set up with Google Tag Manager The tag diagnostics report can be viewed about 48 hours after implementing
Set up with the Google Ads API Not a report time: send the data within 24 hours of the conversion
Diagnostics report The coverage rate is available within hours of requests; the match rate updates within 24 hours

What do the diagnostic statuses and match rates mean?

Google grades a set-up as Excellent, Good, Needs attention or No recent data, and labels each match rate Insufficient volume, No matches, Low, High or Unknown.

Status What Google says
Excellent The set-up is active and fully optimised
Good Active, with further improvements available, for example sending more user data
Needs attention Active, but errors need your attention, such as missing information
No recent data Enhanced conversions have not recorded data in the last 7 days
Match rate Meaning
Insufficient volume Fewer than 20 valid pings
No matches Exactly zero matches
Low Between 0% and 15%
High Above 15%
Unknown Shown “when privacy concerns are not satisfied”

Google says alerts are not shown when you have fewer than 20 conversions in the past 7 days.

It also says enhanced conversions are most helpful at 20 or more conversions a week. Coverage is the number of enhanced conversion events with the parameter divided by the number of conversion events.

The errors Google lists include accepting the customer data terms (data sent before that isn’t processed), missing or empty fields, and badly formatted email or phone numbers.

They also include missing address fields (country, first name, last name and postal code are all needed) and pages not served over HTTPS. If the report flags a problem, fix the implementation before you judge the results.

What did our ad blocker lab show?

In our lab, Brave Shields, uBlock Origin Lite and AdGuard with Tracking Protection stopped the standard Google Ads conversion requests. They also blocked, redirected or replaced the Google Tag Manager, GA4 and Google Ads tags. We ran each setup in a real browser.

Bar chart of how many of 4 standard Google requests each blocker setup stopped or replaced: Brave Shields 4, uBlock Origin Lite 4, AdGuard with Tracking Protection 4 and AdBlock 0.
Each bar is how many of the 4 standard Google requests a setup stopped or replaced. Brave Shields, uBlock Origin Lite and AdGuard with Tracking Protection stopped or replaced all four; AdBlock stopped none of them. Four of the six lab setups are shown.Source: Product Metrics ad blocker lab, 30 September 2026 (real browsers, throwaway profiles, example.com origin)
Show the data
How many of 4 standard Google requests did each blocker setup stop?
Blocker setupRequests stopped or replaced (of 4)
Brave Shields4
uBlock Origin Lite4
AdGuard + Tracking Protection4
AdBlock0

The lab loaded each tag the way a shop does, in real browsers, each in a fresh, throwaway profile on a public origin (example.com).

A request counted as blocked when the browser reported net::ERR_BLOCKED_BY_CLIENT or the blocker swapped the response for a stand-in. The results were the same in Brave and in Chrome for Testing for every extension tested in both.

Not every blocker stops the Google Ads tag. AdGuard on its default filters, AdBlock and AdGuard DNS did not block it. On its default filters, AdGuard blocked only the view-through conversion request; the conversion hit and the tags got through.

AdBlock blocked the Meta Pixel instead.

Bar chart of how many of 6 blocker setups let each request through: the standard Google Ads tag in 3 setups, a Full Signal-style first-party endpoint in all 6.
Each bar is the number of the 6 lab setups in which that request got through. In the 30 September 2026 lab, the standard Google Ads tag got through in 3 (AdGuard default, AdBlock and AdGuard DNS); a Full Signal-style first-party endpoint was reached in all 6.Source: Product Metrics ad blocker lab, 30 September 2026 (real browsers, throwaway profiles, example.com origin; AdGuard DNS checked with dig)
Show the data
In how many of 6 blocker setups did each request get through?
Request testedSetups where it got through (of 6)
Standard Google Ads tag3
Full Signal-style first-party endpoint6

Per setup, the lab recorded this for the Google Ads requests and the Full Signal-style endpoint:

Setup Google Ads tag Google Ads conversion hits Full Signal-style endpoint
Brave Shields Replaced by a stub Blocked Reached
uBlock Origin Lite Redirected Blocked Reached
AdGuard with Tracking Protection Blocked Blocked Reached
AdGuard, default filters Reached Only the view-through request blocked Reached
AdBlock Reached Reached Reached
AdGuard DNS Reached Only the view-through request blocked Reached

Do blockers stop the request that carries the hashed email?

In three of six setups, yes: the blockers that stopped the standard conversion requests also stopped these two. On 7 October 2026 we sent the two conversion requests named for this check, googleadservices.com/pagead/conversion/ and google.com/pagead/1p-conversion/, with a test hashed email in the em parameter.

Those same three setups blocked both. The other three setups, and a browser with no blocker, let both reach Google.

The em parameter changed no result: each request with em got the same outcome as the same request without it. So if you run Google’s DevTools check in a profile with one of the first three blockers, expect the request not to appear.

Brave Shields

  • Standard conversion requestgoogleadservices.com/pagead/conversion/Blocked
  • The same request with emgoogleadservices.com/pagead/conversion/?em=…Blocked
  • 1p-conversion request with emgoogle.com/pagead/1p-conversion/?em=…Blocked

Google's DevTools check won't show the request in a profile with this blocker.

uBlock Origin Lite

  • Standard conversion requestgoogleadservices.com/pagead/conversion/Blocked
  • The same request with emgoogleadservices.com/pagead/conversion/?em=…Blocked
  • 1p-conversion request with emgoogle.com/pagead/1p-conversion/?em=…Blocked

Google's DevTools check won't show the request in a profile with this blocker.

AdGuard with Tracking Protection

  • Standard conversion requestgoogleadservices.com/pagead/conversion/Blocked
  • The same request with emgoogleadservices.com/pagead/conversion/?em=…Blocked
  • 1p-conversion request with emgoogle.com/pagead/1p-conversion/?em=…Blocked

Google's DevTools check won't show the request in a profile with this blocker.

AdGuard, default filters

  • Standard conversion requestgoogleadservices.com/pagead/conversion/Reached
  • The same request with emgoogleadservices.com/pagead/conversion/?em=…Reached
  • 1p-conversion request with emgoogle.com/pagead/1p-conversion/?em=…Reached

The request reaches Google, with or without em.

AdBlock

  • Standard conversion requestgoogleadservices.com/pagead/conversion/Reached
  • The same request with emgoogleadservices.com/pagead/conversion/?em=…Reached
  • 1p-conversion request with emgoogle.com/pagead/1p-conversion/?em=…Reached

The request reaches Google, with or without em.

AdGuard DNS

  • Standard conversion requestgoogleadservices.com/pagead/conversion/Reached
  • The same request with emgoogleadservices.com/pagead/conversion/?em=…Reached
  • 1p-conversion request with emgoogle.com/pagead/1p-conversion/?em=…Reached

The request reaches Google, with or without em.

No blocker: all three requests reached Google. Product Metrics ad blocker lab, 7 October 2026: real browsers with the real blockers.

Test what your own browser blocks

The doubleclick.net view-through request with em was blocked in every setup except AdBlock in Brave. The 7 October run added the requests that carry the hashed email, and they followed the standard conversion request in every setup.

Where that request is stopped, the data that rides on it is stopped with it. That is why how the conversion is delivered matters before how it is matched.

Does Safari block the tags?

No. Safari works differently: WebKit tracking prevention restricts cookies instead of blocking loads, so tags still load.

Bar chart of how long a cookie lasts in Safari: 7 days for a cookie set by a script, 30 days for the Full Signal first-party cookie.
Each bar is how long that cookie lasts in Safari: tracking prevention cuts a script-set cookie to 7 days, while Full Signal's first-party cookie lasts 30 days.Source: Product Metrics, 30 September 2026
Show the data
How many days does a cookie last in Safari?
How the cookie is setCookie lifetime in days
Set by a script7
Full Signal first-party cookie30

Shoppers often buy days after the click, so a cookie that expires sooner makes a returning visitor more likely to arrive without the data that links them back to the ad.

Our ad blocker conversion tracking test shows Safari as a sixth blocker for that reason.

How does server-side tracking differ from enhanced conversions?

Enhanced conversions improve how Google matches a conversion that reaches it. Server-side tracking decides whether the conversion is sent at all, so each fixes a different gap.

Enhanced conversions Server-side tracking
What it fixes Matching a conversion that reaches Google Whether the conversion is sent
What it sends Hashed first-party data (email, name, address, phone) with the conversion, or up to 24 hours later through the API The conversion, from a server or an endpoint on your domain; Full Signal sends it with hashed customer data
What it needs Customer data at checkout and a conversion tag that already fires A server-side route set up for your shop platform
What it does not decide Whether the conversion is sent at all Which customer data travels; Full Signal’s fields depend on your checkout

An order can be lost at either step.

Bar chart of how many of 100 shop orders are still counted at each step, illustrative data: 100 in the shop, 85 reaching Google Ads and 75 credited to an ad.
Each bar is how many of 100 shop orders are still counted after that step. In this example 15 never reach Google and another 10 arrive but aren't matched to an ad, leaving 75. Fixing one step leaves the other loss in place.Source: Illustrative data
Show the data
100 shop orders: how many reach Google Ads, and how many are credited to an ad?
Step on the way to Google AdsOrders still counted (of 100)
Orders in the shop100
Conversion reaches Google85
Credited to an ad75

In this illustrative example, 15 of 100 orders never reach Google. Another 10 arrive but cannot be matched to an ad. Server-side delivery addresses the first gap; enhanced conversions address the second. You can use both.

Do enhanced conversions work with server-side tracking?

Google documents one server route, the Google Ads API, and it supplements a conversion that a tag has already recorded, so it does not replace the tag.

  • A tag still records the conversion. Google’s API guide says you must record conversions using a regular conversion tracking tag, then send hashed first-party data over an API connection up to 24 hours after the conversion.
  • The server holds the customer data. Google’s developer documentation says the tag sends the click identifier (such as a GCLID) and an order ID at conversion. You import the order ID with the hashed data later, within 24 hours of the original conversion.
  • Duplicates and hashing. The API guide says to use a transaction ID so Google can match tag conversions with API conversions, to send over HTTPS, and to normalise and hash the data with SHA-256.

The Google pages we read do not mention server-side tagging containers or ad blockers. Product Metrics’ own route is on the Full Signal Tracking page and in the next section.

To compare Google tag gateway, server-side tagging and Full Signal Tracking, see Google tag gateway vs server-side tagging. Server-side tracking tools for ecommerce sets ten providers side by side.

How does Full Signal Tracking work?

Server-side tracking sends the conversion to Google from a server rather than from the visitor’s browser, so a purchase can still count when something in the browser would have stopped the standard tag. Full Signal Tracking is Product Metrics’ version.

It gets through every adblocker: in our 30 September 2026 lab, a Full Signal-style first-party endpoint was reached in all 6 blocker setups tested (Brave Shields, uBlock Origin Lite, AdGuard with Tracking Protection, AdGuard default filters, AdBlock and AdGuard DNS).

Full Signal Tracking works in four parts. The example codes come from our server-side tracking for Google Ads and Meta page, which also shows the setup per platform:

  1. A unique endpoint on your own domain. An opaque path on your shop domain, such as yourshop.com/x7Kq2mVd…, with no “collect”, “track” or “pixel” in it, so adblockers let it through.
  2. Auto-rotation keeps it reachable. If a blocker ever catches your endpoint, it rotates to a fresh one on your domain (/x7Kq2mVd… → /Qm7vXt2L…). No tag edits, no tickets.
  3. Click IDs kept first-party. The gclid (gclid=Cj0KQ…x7Rw) is kept first-party and server-side, so a purchase days after the click still carries it.
  4. Server-side delivery to Google Ads. Purchases go from our server into your conversion actions, with enhanced conversions and Consent Mode v2. Refunds adjust later.

Every purchase then reaches Google Ads and Smart Bidding from your own domain.

Two routes stacked. Standard route: purchase, browser tag, Google Ads, where a blocker can stop the tag in the browser. Full Signal route: purchase, unique endpoint on your own domain, Google Ads and Smart Bidding
The standard route runs through a browser tag. The Full Signal route runs through a unique endpoint on your own domain.

To check it yourself, run the ad blocker tracking test in your own browser to see what each blocker stops and whether Full Signal gets through. Paste a request into the SDK debugger to decode it and see whether the collector would accept it.

Full Signal handles both the route and the matching data. It sends hashed customer data with the purchase, so it works with enhanced conversions; the fields depend on the customer data your checkout provides.

First-party is not consent-free. Full Signal reads the visitor’s consent choice before sending anything, as the Full Signal Tracking page describes:

  • It respects Consent Mode v2: ad_storage, ad_user_data and ad_personalization.
  • It works with Shopify Customer Privacy, Cookiebot, OneTrust, Usercentrics and Osano.
  • Customer data is hashed before it leaves our server.

Auto-rotation changes the path, never the consent rules: declined consent stays declined.

Should you set up server-side tracking or enhanced conversions first?

Compare the two counts over the same dates. Missing requests point to a delivery problem. Requests that arrive without enough customer data point to a matching problem.

Line chart of weekly orders in the shop and conversions in Google Ads over six weeks, illustrative data: orders rise from 100 to 130 and back to 115, conversions from 85 to 110 and back to 98.
The upper line is the orders in the shop, the lower line the conversions Google Ads reports for the same weeks. In this example Google Ads reports about 85% of the shop's orders every week. The size of that gap is where to start looking.Source: Illustrative data
Show the data
Orders in the shop against conversions in Google Ads, week by week
WeekOrders in the shopConversions in Google Ads
Week 110085
Week 2120102
Week 311094
Week 4130110
Week 5125106
Week 611598

Not every order comes from an ad, so compare like with like, for example orders that carry a Google click ID. Then work through the steps below, changing one thing at a time.

Decide what to set up first
  1. Compare orders with conversionsCount the orders in your shop and the conversions in Google Ads for the same days, and allow for conversion lag.
  2. Run the ad blocker testSee which of your tags a visitor with a blocker never sends.
  3. Fix delivery if the count has a gapMissing conversions call for server-side tracking. A conversion that is never sent has nothing to supplement.
  4. Add enhanced conversions if the count is closeWhen most conversions arrive, hashed customer data can help Google match them. Check your consent setup first.
  5. Re-check after your usual conversion delayCompare orders and conversions again over the same kind of period, then decide whether you need the other one too.

Before you start, ask your developer which customer fields checkout exposes, whether consent is captured before that data is sent, and which route the conversion takes today.

If the count has a gap, set up server-side tracking first. Full Signal Tracking is included in the Pro subscription and not billed separately; see pricing.

Where the count is close but you pass little customer data to Google, enhanced conversions are the next step, and you can use both.

How much does one missing conversion change a product’s numbers?

For one product in our example, the browser tag alone reported 41 of 55 purchases, which moves its ROAS from 3.85 to 2.87.

Smart Bidding and your product decisions learn from conversions, so products that lose them look worse than they are.

A ROAS decision, or a POAS decision, can be wrong as a result. What is a good ROAS explains why the verdict depends on the product’s own break-even.

The worked example on our Full Signal Tracking page shows how far this can go. One product priced at €139.99 had 55 orders in 30 days from Google Ads clicks.

With the browser tag alone, adblockers and browser privacy kept 14 of them out of Google Ads.

Bar chart of 55 orders from Google Ads clicks, illustrative data: 55 in the shop, 41 received by Google Ads from the browser tag and all 55 with Full Signal Tracking.
Each bar counts the same 55 orders of one product over 30 days. The browser tag got 41 of them to Google Ads; Full Signal Tracking sends all 55. The share of lost purchases differs per shop, audience and browser mix.Source: Illustrative data
Show the data
55 orders from Google Ads clicks: how many reach Google Ads?
Where the orders are countedOrders counted (of 55)
Orders in your shop from Google Ads clicks55
What Google Ads received from the browser tag41
What Google Ads receives with Full Signal Tracking55

On the same €2,000 of ad spend, the 14 missing purchases change the product’s numbers in Google Ads and its segment in Product Segmentation:

Same €2,000 spend Browser tag alone (41 purchases) Full Signal Tracking (55 purchases)
Conversion value €5,739.59 €7,699.45
ROAS 2.87 3.85
Profit at €50.91 per order €2,087.31 €2,800.05
POAS 1.04 1.40
Segment Dogs (high potential, low profitability) Question Marks (high potential, medium profitability)

Illustrative data. Profit is €50.91 per order after product cost, 36.4% of the €139.99 price, and POAS is profit divided by ad spend (ROAS times 36.4%).

Both POAS values are above break-even (1), so the product earns a small profit either way. Product Segmentation judges profitability against your target, not against break-even.

With a POAS target of 2, 1.04 is low profitability on a high-potential product, which is a Dog, and 1.40 is medium profitability, which is a Question Mark.

In Google Ads, the 41 purchases the browser tag also saw are worth €5,739.59. The 14 that only Full Signal Tracking sent, blocked in the browser, add €1,959.86, so €7,699.45 is credited to your campaigns.

The order ID is sent as the transaction ID, so Google Ads counts each order once. Google Ads does the attributing.

With the browser tag alone, the product looks like one for lower priority. With every purchase counted, it is a product to test on price and feed instead.

Judge each product against its own break-even, not an account average, whether you measure ROAS or POAS (POAS vs ROAS). Break-even ROAS per product shows the maths.

The break-even ROAS calculator does it for you. Product Segmentation then segments your products with machine learning on profitability (ROAS straight away, POAS once you connect margins), stock, return rate, potential and competitor prices, not just clicks.

Final thoughts

The count is the test: a shop that compares its orders with its conversions knows which problem it has. This week, compare your orders with your conversions, then run the ad blocker test on your own shop.

Once Full Signal is installed, confirm the requests with the SDK debugger. For numbers per product, Product Segmentation shows where the return sits once your conversions are complete, and you can start with the free analysis.

Look at this comparison again after a month; shops, consent setups and blockers change.

Written by

, Founder of Product Metrics

1M+ products analysed · Nominated at the Dutch Search Awards for Best Measurement Campaign (2023) and Best Use of Data (2024)

Linkedin

Keep reading.

Frequently asked questions.

How do you turn off enhanced conversions?

For the whole account, untick the setting under Goals, then Settings, and select Save. For one conversion action, open Summary, select the action, then Settings, untick the setting and select Save. Google says turning them off stops their use for bidding and reporting but does not affect your existing conversion data (Google tag guide).

What match rate is good for enhanced conversions?

Google does not name a good rate. It says sending more match keys, such as address and phone number next to email, can improve it (Google Ads Help, checked October 2026).

See which of your products to push, fix or pause. Start with your own products, or a 30-second estimate.

See what a blocker stops with the ad blocker tracking test. Then see how your products perform once every conversion is counted.

Find your hidden profit30-second estimate · no login
Analyse your products for freeFree analysis, no credit card

Questions, or want to spar about your products? Book a demo: a video call with Berend, then a demo account.