Server-Side Enhanced Conversions on Shopify: The Google Ads Settings That Actually Matter

|Dan Giura
Server-Side Enhanced Conversions on Shopify: The Google Ads Settings That Actually Matter

TL;DR

Google Ads counts a Shopify purchase when it can connect the order to an ad click, and the click ID that normally makes that connection travels in a cookie that consent banners, Safari and ad blockers interrupt, while a cross-device buyer's second device never held it at all. We have covered why the counts diverge and how orders without a click ID can still be attributed. This article covers the part that goes wrong in practice: the Google Ads account configuration. The setting that authorizes hashed customer data on API-uploaded conversions is called "Enhanced conversions for leads" [3], and the name conceals its scope. The method dropdown under it offers only "Google tag" and "Google Tag Manager," which is normal [2]. And the separate "Enhanced conversions" section, if it already shows "Managed through Google Tag," should be left exactly as it is, because Google documents that enhanced conversions data sent in a way different from the selected method "may not be processed" [4]. This one is where a well-meaning click makes a working setup worse.

What Enhanced Conversions Adds to a Server-Side Upload

WeltPixel Conversion Tracking sends purchases to Google Ads from Shopify's order webhook, so the upload does not depend on the buyer's browser. Enhanced Conversions enriches that upload with identity data the store already holds from the order: the customer's email, phone number and name are hashed with SHA-256 before anything leaves the server, and the phone number is first normalized to international E.164 format so locally formatted numbers still match. Country and postal code accompany them in Google's required plain format. Google compares the hashed identifiers against signed-in accounts that interacted with your ads, and only matched records are used to report conversions [1][6].

With a click ID present, the hashed data strengthens the match. Without one, it becomes the only route to attribution, which is why it pairs with the second toggle below for orders where the click ID never survived the trip to checkout.

One boundary worth stating plainly: consent signals from the order are passed through to Google with the upload. That is the accurate description, and it is the only claim we make about consent here.

The Two Toggles in WeltPixel Conversion Tracking

Both live in Advanced Settings → Google Ads Settings, on the Plus plan.

Enable Enhanced Conversions attaches the hashed customer data to every purchase conversion upload.

Import all events that have user-provided data, even those without GCLID changes which orders upload at all. By default, only orders carrying a Google click ID (GCLID, GBRAID or WBRAID) are sent; with this on, orders without one are uploaded too, as long as there is hashed customer data to match on. It requires Enhanced Conversions to be enabled, and our no-GCLID attribution guide covers the mechanism in depth.

Our recommendation is both on. The first improves match quality on the conversions you already send; the second recovers the ones you currently do not send at all.

The Google Ads Side: Two Changes, One Thing to Leave Alone

Everything happens in Google Ads under Goals → Conversions → Settings. Allow two minutes.

Step 1: accept the Customer data terms. A one-time, account-level agreement. Until it is accepted, Google will not process customer data from any source.

Step 2: turn on "Enhanced conversions for leads." This is the step most guides skip, and the name is doing it no favors. Google's API documentation states that you "must opt in to enhanced conversions for leads and accept the customer data terms," and the conversion action type it requires is the click-upload type that server-side Shopify integrations use [3]. Reading the API contract, that means the checkbox labeled "for leads" is what authorizes hashed customer data on conversions uploaded through the Google Ads API, purchases included. Google does not write it that way anywhere, so treat this as our reading of the requirement rather than a quote. The method dropdown beneath it offers only "Google tag" and "Google Tag Manager" [2]. Google frames that choice as describing how your tag is instrumented on your website, and its own setup flow treats the API import as a separate step [2], so pick "Google tag" and save.

Step 3: find the separate "Enhanced conversions" section, then leave it alone. If it already shows something like "Managed through Google Tag," change nothing. Google's rule is symmetric: enhanced conversions data sent by a method other than the selected one "may not be processed" [4]. Its own worked example runs the other way, tag selected and API data ignored, so the API-selected case is not spelled out, but the rule as written covers it. Switching this section's method to Google Ads API risks your existing tag data going unprocessed, and the server-side integration does not need the change. If the section is not configured at all, you can still leave it alone; the server-side upload does not read it. Configure it with Google Ads API as the method only if you want API-side data governed here and you run no tag-based enhanced conversions today.

Google Is Mid-Transition on These Settings

As of July 31, 2026, Google is unifying these controls. Its announcement put simultaneous acceptance of tag, Data Manager and API data at April 2026 and a single customer-data switch at June 2026, yet its help pages still describe both the old per-method layout and the new unified panel, and still carry future-tense banners for both dates [5]. The steps in this article cover the per-method layout; under the unified panel the step 3 trap disappears by design, because the method selection itself goes away.

If your account shows the new panel, one caution: it sits next to a separate checkbox for conversion-based customer lists [5]. That is a different feature with different data-use implications, not a requirement for conversion tracking, and it deserves its own decision.

How to Verify It Is Working

  1. In Google Ads, open Goals → Conversions → Summary and find the WeltPixel conversion action under the Purchase goal. After the first orders arrive, its numbers appear in the reporting columns its Primary or Secondary status assigns it.
  2. Set that status to match your intent. Google's API default creates conversion actions as Primary, which is right when WeltPixel is your source of truth for purchases: a Primary action feeds Smart Bidding and the "Conversions" column. If you are trialing next to an existing working setup instead, set ours to Secondary, where it reports under "All conv." and stays out of bidding while you compare. The configuration to avoid is two purchase actions both set to Primary, which double-counts. Promote one, demote the other, same step.
  3. Give it time. Google asks for a four-to-six-hour wait after a conversion action is created before uploads become eligible, and conversions landing near that boundary can take about two days to display, so a brand-new conversion action showing zero is normal for the first afternoon.
  4. In the app, the Conversion tracking card on the dashboard shows orders delivered to each platform over the recent period: sent versus attempted, skipped orders, an accuracy score, and a trend column.

Differences from an older action are expected: attribution windows may differ between actions, and the two statuses report in different columns. For the mechanics of tag-based Enhanced Conversions and match rates, our setup and verification guide covers that path.

Key Takeaways

  • The Google Ads setting that authorizes hashed customer data on API-uploaded conversions is "Enhanced conversions for leads" [3]; the scope-beyond-leads reading is ours, from the API contract, and the checkbox is required either way.
  • Its method dropdown describes tag instrumentation, and Google's setup flow treats the API import as a separate step [2]; there is no API option in the dropdown to look for.
  • If your separate "Enhanced conversions" section already runs through a Google tag, do not change its method: Google documents that data sent differently from the selected method may not be processed [4].
  • In WeltPixel Conversion Tracking, enable both Google Ads toggles: Enhanced Conversions for match quality, and the no-GCLID import for orders that lost their click ID entirely.
  • Identity fields are hashed with SHA-256 server-side, phones normalized to E.164 first; country and postal code travel in Google's required plain format; only matched records are used to report conversions [1][6].
  • Set the conversion action's Primary or Secondary status to match your intent, and never run two Primary purchase actions at once.

FAQ

Will enabling this break my existing Google tag or GTM enhanced conversions?

Not if you follow step 3 above and leave the "Enhanced conversions" section on its current method. The two required changes, accepting the customer data terms and enabling "Enhanced conversions for leads," sit in different settings and add authorization without altering how your existing tag data is processed [4].

Should the WeltPixel conversion action be Primary or Secondary?

Match it to your intent. Primary is Google's API default and the right state when this is your purchase source of truth, because Primary actions feed Smart Bidding. Secondary is the right state for a trial period next to an existing setup: it reports under "All conv." and influences nothing. The only wrong state is two purchase actions both set to Primary.

Can importing orders without a click ID inflate my conversion counts?

Google compares the hashed identifiers against real ad interactions and uses only matched records for reporting [6], so an order that never touched your ads has no interaction to match and never becomes a conversion. Whether the matched conversions influence bidding is then governed by the action's Primary or Secondary status.

Why does the new conversion action show zero conversions?

A newly created action is not eligible for uploads for four to six hours, conversions accepted near that boundary can take about two days to display, and a Secondary action reports under "All conv." rather than "Conversions." If nothing shows after a day of orders, open the Conversion tracking card in the app and compare sent against attempted for Google Ads.

Does this require a specific WeltPixel plan?

Yes. The Google Ads integration, Enhanced Conversions included, is part of the Plus plan; the free Discovery plan covers GA4 tracking only.

If you run Google Ads on Shopify and want purchases delivered server-side with Enhanced Conversions attached, install WeltPixel Conversion Tracking, connect Google Ads, and enable the two toggles in Advanced Settings.

Sources

  1. Google Ads Help, About enhanced conversions, support.google.com/google-ads/answer/9888656, accessed July 31, 2026
  2. Google Ads Help, Set up enhanced conversions for leads, support.google.com/google-ads/answer/14274408, accessed July 31, 2026
  3. Google Ads API documentation, Upload offline conversions, developers.google.com/google-ads/api/docs/conversions/upload-offline, accessed July 31, 2026
  4. Google Ads Help, Set up enhanced conversions with the Google Ads API, support.google.com/google-ads/answer/13261987, accessed July 31, 2026
  5. Google Ads Help, Updates to your enhanced conversions settings, support.google.com/google-ads/answer/16884284, accessed July 31, 2026
  6. Google Ads Policy Help, About the data sharing process, support.google.com/adspolicy/answer/9755941, accessed July 31, 2026

Questions or notes on this guide? Discuss it on r/WeltPixel.

Ready to upgrade your tracking?

Server-side tracking for Magento and Shopify — accurate data, better attribution, full privacy compliance.