TL;DR
An order your team keys in after a phone call never had a Google click ID, so every route into Google Ads runs on customer data. WeltPixel Conversion Tracking can upload those orders on its Plus plan, but only once two Google Ads settings are on, and both ship off. Google then reports the upload as accepted whether or not it matched anyone, and a matched order lands on the date of the ad click rather than the date of the call. Pick one route per order and key it on the numeric Shopify order ID, or Google counts the sale twice.
Key Takeaways
- In the app, a back-office order reaches Google Ads only on the Plus plan ($39/mo), with Enhanced Conversions and the no-GCLID import both on (both ship off), and with at least one customer identifier on the order.
- Google credits an identifier-only upload when the hashed data matches data already collected on your website or a signed-in person who engaged with your ad [2]. No setting on your side creates that match.
- An unmatched upload still counts as successful in Google's API [1], so read matches on the action's Diagnostics tab [11].
- Matched offline conversions report on the impression date of the original click, not the day of the call [1].
- Data Manager's Shopify connector feeds Customer Match only (supported-sources table read September 28, 2026) [5]. A do-it-yourself conversion import goes through Google Sheets, SFTP, HTTPS or BigQuery.
- Google removes a duplicate only inside one conversion action and only on an identical order ID [8]. The app sends the numeric order ID, not
#1001. - Calls placed straight from an ad are a separate import that needs Google forwarding numbers [10]. The app has no call path.
What happens to a phone order under default settings?
Browser pixels never see a staff-created order, for the reasons laid out in our guide to admin and POS orders. The server-side path does see it. Trace one order through the app with every setting left where it ships:
- A customer calls, a staff member builds a draft order, and Shopify turns it into a real order. Wholesale drafts built for a company account are the same order class, with their own timing problems.
- The app receives the order and classifies it as back-office, because it didn't come through the online-store checkout. On the Plus plan, back-office orders are eligible for every integration, and the per-channel "Exclude Admin/API Orders" toggle is off by default, so nothing filters it out yet.
- The Google Ads upload needs something to match on. Click IDs reach an order only from a storefront session, and this order never had one.
- Enhanced Conversions is off, so there's no hashed customer data either. The app has nothing Google would accept, builds no upload, and records the order under Skipped on its Conversion tracking card for lack of data. It isn't counted as a failure, because nothing failed.
So the default outcome for a phone order in Google Ads is nothing at all.
Turning on the two settings changes step 4: with Enhanced Conversions producing at least one hashed identifier and the no-GCLID import on, the order goes to Google Ads with its order ID, value, currency and order time; with no identifier it is still skipped. The same pair of settings rescues storefront orders that lost their click, which the no-GCLID guide covers. A phone order is a different animal: it didn't lose a click, it never had one.
Configuration decides whether the order is sent. Google's match decides whether it is counted.
Three routes into Google Ads, and what each one can credit
Three routes exist, and they cover different orders more than they compete.
| Route | What travels | What Google can credit | Fits |
|---|---|---|---|
| App upload on customer data (Plus) | Order ID, value, currency, order time, hashed email, phone, name and postcode | Orders whose data matches a signed-in person who engaged with an ad [2] | Back-office orders with an email or phone |
| Your own import through Data Manager or the API | Whatever your export holds: order ID, time, value, hashed identifiers, a GCLID if you captured one | The same matching, plus a click match if the GCLID is under 90 days old [6] | Sales that never become Shopify orders |
| Call conversion import | The call itself, through a Google forwarding number [10] | Calls from call-only ads, call assets and website call tracking [10] | Stores where the ad makes the phone ring |
Google's own vocabulary has moved. The file-based offline import is now titled "(legacy)" on Google's help center [4], and Google tells anyone starting fresh to use enhanced conversions for leads, which it calls "an upgraded offline conversion import" [3]. The account also has to accept uploaded customer data before any identifier-only upload is used, which the enhanced conversions for leads article walks through.
The shortcut most merchants reach for first isn't there. Data Manager does list Shopify as a source, but on the supported-sources table as read on September 28, 2026, the Shopify row is ticked for Customer Match only, and the Offline Conversions Import column is empty for it [5]. Google Sheets, SFTP, HTTPS and BigQuery are ticked for it, so a do-it-yourself route means exporting orders somewhere Data Manager can read.
The call route is the strongest signal when it applies, because the call is the ad interaction, but Google's forwarding numbers exist only in certain countries [10].
Google is also testing multi-source conversions, a beta that lets a tag-based website conversion action take backend order data as a second source. A new source runs a 14-day trial in which its conversions report but don't bid, and Google wants the data uploaded ideally within 24 hours [9]. It's scoped to actions set up with the Google tag or Google Tag Manager [9].
Why the app says sent and Google says nothing
Accepted and matched are two different numbers, and Google documents the gap. Its API returns the warning that no click matched the identifiers only when the uploader turns debugging on, and even then the upload is counted among the successful events in the offline data diagnostics [1]. The app doesn't request debug errors. Its Sent column counts uploads Google accepted.
You've probably had the week where the app shows every order delivered and Google Ads shows a fraction of them. For phone orders, most of that gap is the match, and only Google can see it. Why Google Ads reports fewer conversions than Shopify covers the other causes that stack on top.
None of this makes the uploads pointless. Google says conversions carrying only user-provided data "are still useful and can contribute positively to Google Ads campaign optimization" [1].
The place to read the match is Google Ads: Goals → Summary, open the conversion action, then the Diagnostics tab. One of its alerts is "No user-provided data matches" [11]. Some of that report's other alerts are written for a Google tag collecting form data on your site, so don't expect every line to apply to an upload-only action.
Which date does a matched phone order land on?
The date of the ad click. Google's API documentation says imported conversions are "reflected in reports for the impression date of the original click, not the date of the import request or the date of the conversion_date_time" [1]. For last-click attribution the numbers take up to three hours to appear, and longer under other attribution models [1].
Run it on an illustrative order. A customer clicks a Search ad on September 20, calls on October 3, and your team creates the order that afternoon. The app stamps the conversion with the moment Shopify created the order, October 3, and on the default setting uploads it the same day. On the Plus plan, if the Google Ads "When to send the Purchase event" setting is on "When the order is paid", the upload waits until the order is marked paid, and it still carries October 3. If Google matches it, the conversion appears in reports under September 20. The gap is 13 days, inside Google's default 30-day click-through window [7] and inside the 90-day window the app sets when it creates its own action. A September report pulled on October 1 misses it. And a draft that sat for a week converts on the day someone turned it into an order.
The remaining timing rules matter mostly on the do-it-yourself route:
- Google keeps a GCLID for 90 days, and an offline conversion can't be dated before its click [6].
- Processing usually takes under 12 hours, and up to 72 hours for GBRAID and WBRAID conversions [6].
- A change to the click-through window applies only to conversions going forward [7].
- A brand-new conversion action wants 4 to 6 hours before the first upload [4], which is the rule behind a new action showing zero.
How do you stop the same order counting twice?
Google treats two conversions with the same transaction ID in the same conversion action as one, and says "order ID" is the term it uses for offline conversions [8]. The multi-source page spells out the limit: Google "only removes duplicate data within a single conversion action," not across two different actions [9].
Two traps follow. The app uploads the numeric Shopify order ID, the long number at the end of the order's admin URL (admin.shopify.com/store/<your-store>/orders/<id>), not the #1001 name. A spreadsheet import keyed on #1001 into the same action looks like a different order and gets counted again. And a do-it-yourself import into a second action, in the same goal as the app's, counts the order twice for bidding. Which action should count is covered in choosing the primary Google Ads action, and if Shopify's Google & YouTube channel created purchase actions of its own, running a tracking app alongside it is the next read.
The clean split is one route per order class. Let the app upload every order that exists in Shopify, storefront and back-office. Keep a do-it-yourself import for sales that never become Shopify orders at all, like a deal invoiced from your ERP, and key it on an ID the app never sends.
On the default setting, canceled phone orders stay counted, too; with "When the order is paid", an order canceled before payment is never uploaded. Google's adjustment service keys retractions on the order ID [12], but the app never retracts or restates a Google Ads conversion. Refunds and cancellations in ad platform reporting has the manual path.
Set it up and check it
- Confirm the app is on the Plus plan. Google Ads is a Plus integration; the free plan is GA4 only.
- In the app, open Advanced Settings → Google Ads Settings and turn on "Enable Enhanced Conversions" and "Import all events that have user-provided data, even those without GCLID".
- Leave "Exclude Admin/API Orders" off for Google Ads if it should receive phone orders, and switch it on for any other channel that shouldn't.
- Check the account side against the Google Ads settings that matter for server-side enhanced conversions.
- Make an email or phone number mandatory on every order your team creates. An order with neither, and without a full name, country and postcode, has nothing to hash and stays skipped.
- Pick the conversion action. The app's picker lists only enabled upload actions; if the app creates one, it's a Purchase action with a 90-day click-through window.
- A week after the first phone orders go out, open Goals → Summary, click the action, and read the match status on its Diagnostics tab [11].
WeltPixel Conversion Tracking [13] uploads phone, manual and draft orders to Google Ads from the Shopify order record on the Plus plan, with hashed customer data and the numeric order ID, and files the orders with nothing to match on under Skipped instead of Sent.
FAQ
Do phone and draft orders reach Google Ads by default?
No. They need the app's Plus plan, two Google Ads settings that ship off, and at least one customer identifier on the order. Otherwise the order is recorded as skipped.
Can I import Shopify orders into Google Ads through Data Manager's Shopify connector?
Not as conversions. On the supported-sources table read September 28, 2026, the Shopify connector covers Customer Match only [5]. A Data Manager conversion import has to read from a source such as Google Sheets, SFTP, HTTPS or BigQuery.
Will uploading phone orders double count my online orders?
Not if every order goes into one conversion action under the same order ID, because Google removes duplicates inside one action on identical IDs [8]. Two actions in the same goal, or a second import keyed on #1001, will count twice.
Sources
- Google Ads API documentation, "Import offline conversions", developers.google.com/google-ads/api/docs/conversions/upload-offline, page last updated September 24, 2026, accessed September 28, 2026
- Google Ads Help, "About enhanced conversions for leads", support.google.com/google-ads/answer/15713840, accessed September 28, 2026
- Google Ads Help, "About offline conversion imports", support.google.com/google-ads/answer/2998031, accessed September 28, 2026
- Google Ads Help, "Import conversions from ad clicks into Google Ads using files (legacy)", support.google.com/google-ads/answer/7014069, accessed September 28, 2026
- Google Ads Data Manager Help, "Supported data sources", support.google.com/google-ads-data-manager/table/13860693, accessed September 28, 2026
- Google Ads Help, "Fix discrepancies and errors in offline conversion imports", support.google.com/google-ads/answer/13321563, accessed September 28, 2026
- Google Ads Help, "About conversion windows", support.google.com/google-ads/answer/3123169, accessed September 28, 2026
- Google Ads Help, "Use a transaction ID to minimize duplicate conversions", support.google.com/google-ads/answer/6386790, accessed September 28, 2026
- Google Ads Data Manager Help, "Multi-source conversions in Google Ads (beta)", support.google.com/google-ads-data-manager/answer/16542291, accessed September 28, 2026
- Google Ads Help, "About importing call conversions", support.google.com/google-ads/answer/6301373, accessed September 28, 2026
- Google Ads Help, "About the enhanced conversions for leads diagnostics report", support.google.com/google-ads/answer/15249267, accessed September 28, 2026
- Google Ads API documentation, "Upload conversion adjustments", developers.google.com/google-ads/api/docs/conversions/upload-adjustments, accessed September 28, 2026
- WeltPixel Conversion Tracking, Shopify App Store listing, apps.shopify.com/weltpixel-conversion-tracking, accessed September 28, 2026