Platform Guide 10 min read

Google Ads Offline Conversions: The Complete Guide to Uploading Real Revenue Data

How offline conversions reach Google Ads: click IDs, hashed contact data, a file upload, and the Data Manager API. Covers conversion actions, Smart Bidding, and the errors that still reject a row.

Last verified: 2026-11-07

Google Ads offline conversions allow you to import real-world business outcomes — booked jobs, signed contracts, completed sales — directly into Google Ads so the platform’s Smart Bidding algorithms can optimize for actual revenue instead of proxy metrics like clicks and form fills.

The Upload Offline Conversions App (TUOCA) was built specifically for this workflow. This comprehensive guide covers everything you need to know: the three types of offline conversions Google supports, how GCLID matching works, the role of Enhanced Conversions for Leads, conversion action configuration, API specifics, Smart Bidding impact, and the most common errors you’ll encounter.

Why Google Ads Offline Conversions Matter

Google Ads’ Smart Bidding — Target CPA, Target ROAS, Maximize Conversion Value, Maximize Conversions — is a machine learning system. It learns from the conversion signals you provide. The quality of its optimization is directly proportional to the quality of your conversion data.

For service businesses (HVAC, plumbing, legal, dental, roofing), the conversions that matter most — a $4,500 AC installation, a $12,000 roof replacement, a $8,000 legal retainer — happen offline. Without uploading this data, Smart Bidding optimizes for whatever it can see: clicks, page views, form submissions.

The result? Your $50/click budget goes to campaigns that generate $15 leads instead of campaigns that generate $4,500 customers. Smart Bidding is working perfectly — it’s just optimizing for the wrong objective.

Three Types of Google Ads Offline Conversions

1. Click Conversions (GCLID-Based)

The most common type. When a user clicks your ad, Google appends a GCLID (Google Click Identifier) to your landing page URL. Your CRM or call tracking tool captures and stores this GCLID. When the lead converts to a customer, you upload the GCLID along with the conversion details.

Required fields:

FieldDescriptionExample
gclidThe Google Click IdentifierEAIaIQobChMI8dml...
conversion_actionResource name of the conversion actioncustomers/123/conversionActions/456
conversion_date_timeWhen the conversion occurred (timezone-aware)2026-04-15 14:30:00-05:00
conversion_valueRevenue amount4500.00
currency_codeISO 4217 currencyUSD

Optional but recommended:

FieldPurpose
order_idDeduplication — prevents the same conversion from being counted twice
external_attribution_dataCustom attribution model data

GCLID requirements:

  • Must be captured at click time (from URL parameter)
  • Google keeps a GCLID for 90 days after the click, so a job closed on day 75 can still be uploaded and the same job closed on day 91 cannot.
  • Auto-tagging must be enabled in Google Ads
  • GCLID must belong to the same Google Ads account (or MCC hierarchy) as the conversion action

2. Call Conversions

Specifically for phone calls driven by Google Ads call extensions, call-only ads, or website call buttons:

FieldDescription
caller_idPhone number of the caller (E.164 format)
call_start_date_timeWhen the call started
conversion_actionResource name
conversion_date_timeWhen the conversion occurred
conversion_valueRevenue amount

When to use call conversions vs. click conversions: Use call conversions when the phone call itself is the conversion event and you’re tracking via Google’s call reporting. Use click conversions when you have the GCLID from a call tracking tool like CallRail or CallTrackingMetrics.

3. Enhanced Conversions for Leads

The newest and most privacy-forward option. Instead of relying on the GCLID, Enhanced Conversions matches on hashed PII — specifically, the SHA-256 hash of the user’s email address, phone number, or name.

How it works:

  1. User clicks your ad and submits a form with their email
  2. Google records the hashed email associated with the click
  3. Days/weeks later, the lead converts to a customer
  4. You upload the hashed email + conversion data
  5. Google matches the hash to the original click

Key advantages:

  • Works cross-device (user clicks on phone, converts on desktop)
  • Hashed contact data can match when the click ID was never stored. Still send the GCLID on that same conversion when you have it.
  • Privacy-compliant (only hashes are transmitted)
  • A hashed email or phone matches for 63 days after the click, and from day 64 through day 90 only the GCLID still matches.

PII normalization requirements (before hashing):

  • Email: lowercase, trim whitespace, remove dots from Gmail
  • Phone: E.164 format (+1XXXXXXXXXX)
  • Name: lowercase, trim whitespace
  • All hashing: SHA-256 only (not MD5, not Base64)

See What Is Enhanced Conversions? for the complete guide.

Setting Up Conversion Actions

Before you can upload offline conversions, you need to create a conversion action in Google Ads with the correct configuration.

Step-by-Step

  1. Navigate: Google Ads → Goals → Conversions → Summary → New conversion action
  2. Select type: Choose “Import” (not Website, App, or Phone calls)
  3. Select source: Choose “CRM, files, or other data sources”
  4. Select conversion type: Click through to “Track conversions from clicks” or “Track conversions from leads (Enhanced Conversions for Leads)”
  5. Configure:
    • Name: Descriptive (e.g., “Booked Job”, “Signed Contract”, “Completed Sale”)
    • Value: Use different values for each conversion, or set a default
    • Count: “One” for leads/contracts, “Every” for purchases
    • Click-through window: 30, 60, or 90 days (match your typical sales cycle)
    • Attribution model: Data-driven (recommended) or last-click
  6. Save the conversion action

Critical detail: The conversion action must be type “Import.” If you accidentally create a “Website” type action, offline uploads will be silently rejected.

For the full step-by-step with screenshots, see How to Upload Offline Conversions to Google Ads.

Upload Methods

Method 1: Google Ads UI (CSV Upload)

The simplest method. Prepare a CSV file with the required columns, then:

  1. Go to Google Ads → Goals → Conversions → Uploads
  2. Click the upload button
  3. Select your CSV file
  4. Review the preview and confirm

CSV format for click conversions:

Google Click ID,Hashed Email,Order ID,Conversion Name,Conversion Time,Conversion Value,Conversion Currency
EAIaIQobChMI...,a8b14f04...,job-1842,Booked Job,2026-04-15 14:30:00-05:00,4500.00,USD

That row is one booked job: the click ID, the hash of the customer’s email, your job number, and 2:30 p.m. Central written as 2026-04-15 14:30:00-05:00. If you only have the click ID, you can upload, but add the hash and the job number whenever the CRM has them.

Limitations: Manual process, no scheduling, no deduplication, no error retries.

Method 2: Data Manager API

Use this when a script uploads the job for you. You still read the account list and the conversion actions with the Google Ads API. The upload of the offline job, including the hashed email, goes through the Data Manager API.

After June 15, 2026, a developer token that was not already uploading is rejected on the old click-upload call. Call conversions and later adjustments are separate requests. Sending a new offline file to the old call will fail.

Method 3: TUOCA automated relays

TUOCA turns that upload into a configuration instead of a custom request:

  1. Connect your data source (CallRail, CallTrackingMetrics, ServiceTitan, etc.)
  2. Connect your Google Ads destination (OAuth flow, select account/MCC)
  3. Map your conversion action
  4. Set filter rules (optional — e.g., only upload leads with status “Booked”)
  5. Set schedule (hourly, daily, weekly)
  6. Activate the relay

The relay handles: data fetching, format transformation, PII normalization and hashing, GCLID validation, deduplication, upload, error handling and retries, per-record activity logging.

See Automated Relays for details.

Attribution: Click Date vs. Conversion Date

One of the most confusing aspects of Google Ads offline conversions: Google attributes the conversion to the date the click occurred, not the date the conversion occurred.

This means if a user clicked your ad on March 1 and booked a job on April 15, the conversion appears in your March 1 report — not your April 15 report.

Why this matters:

  • Recent campaign performance always looks worse than it is (conversions haven’t been uploaded yet)
  • Historical performance improves over time as conversions trickle in
  • You can’t evaluate a campaign’s true performance until at least one full sales cycle has passed

How to read reports correctly:

  • Use “Conversions by conversion time” segments to see when conversions actually occurred
  • Set your default reporting window to at least 2× your average sales cycle
  • Understand that today’s numbers will look better in 30–60 days

For a deep dive, see Google Ads Click Date vs. Conversion Date.

Smart Bidding Impact

Uploading offline conversions unlocks the full power of Google’s Smart Bidding, particularly value-based bidding strategies:

Target ROAS (Return on Ad Spend)

With conversion values from offline uploads, you can set a Target ROAS and let Google optimize bids to meet that return. Without values, this strategy doesn’t work.

Example: You set Target ROAS at 500%. Google learns that keywords like “HVAC installation [city]” generate $5,000 average conversion values and bids aggressively. Keywords like “AC filter replacement” generate $50 values and get minimal bids.

Maximize Conversion Value

Instead of maximizing the number of conversions, this strategy maximizes total value. It will sacrifice volume to pursue higher-value conversions.

Target CPA Impact

Even without values, uploading offline conversions as simple events dramatically improves Target CPA. The algorithm stops optimizing for form fills and starts optimizing for actual customer acquisition.

Google measured an average 26% increase in incremental ROAS for Search campaigns bidding to conversion value, among advertisers who connected offline and app data to Data Manager, from April 2025 through April 2026. That is Google’s average for that setup. Judge the change on your own spend and your own uploaded revenue.

Processing Delays and Timing

Understanding Google’s processing timeline is critical for troubleshooting:

EventTypical Delay
Click occurs → you can upload itWait 6 hours after the click before you upload it: a click at 9:00 a.m. is too recent at noon and is ready at 3:00 p.m.
Upload submitted → data appears in reportsAbout 3 hours. Typically under 12 hours. A GBRAID or WBRAID row can take up to 72 hours.
Judging Smart BiddingGoogle’s Smart Bidding help says you can turn it on with no conversion history, and that you should judge results over a period with at least 30 conversions, such as a month, and over 50 conversions before you judge Target ROAS.

Common Errors

When uploading offline conversions to Google Ads, you’ll encounter these errors most frequently:

ErrorCauseFix
CLICK_NOT_FOUNDGCLID not recognized — non-Google traffic, too recent, or expiredVerify GCLID source, add 6-hour delay, check 90-day window
UNPARSEABLE_GCLIDMalformed GCLID — URL encoding issues, truncationValidate GCLID format before upload
EXPIRED_GCLIDGoogle keeps a GCLID for 90 days after the click, so a job closed on day 75 can still be uploaded and the same job closed on day 91 cannot.Upload an earlier milestone, such as a qualified lead, while the click is still inside 90 days. A hash does not rescue day 91.
INVALID_CONVERSION_ACTIONWrong conversion action type or IDEnsure action type is “Import”
DUPLICATE_CONVERSIONSame GCLID + conversion action uploaded twiceUse order_id for deduplication
INVALID_USER_IDENTIFIERPII not properly normalized/hashedLowercase, trim, E.164 phones, SHA-256 only

Before a record is sent: TUOCA checks the click ID, normalizes contact data, checks the expiration window, drops duplicates, and waits out the processing delay.

MCC (Manager Account) Uploads

For agencies, Google Ads supports uploading conversions at the MCC (Manager Account) level:

  • Conversions are automatically attributed to the correct child account based on the GCLID
  • Conversion actions can be created at the MCC level and shared with child accounts
  • Single API authentication covers all child accounts
  • TUOCA supports MCC-level configuration natively

Recommended setup for agencies:

  1. Create conversion actions at the MCC level
  2. Share them with relevant child accounts
  3. Configure TUOCA to upload to the MCC
  4. Use the Agency Dashboard for cross-client monitoring

Getting Started

  1. Create a conversion action — Type “Import”, name it descriptively, set value tracking to “Use different values”
  2. Enable auto-tagging — Settings → Account settings → Auto-tagging → ✅
  3. Ensure GCLID capture — Your CRM or call tracking tool must store the GCLID
  4. Prepare your first upload — Start with a manual CSV upload to validate the workflow
  5. Automate — Set up TUOCA Automated Relays for hands-off operation
  6. Add revenue data — Use Fusion Relays to combine call tracking with CRM revenue
  7. Switch to value-based bidding — Once you have 30+ conversions with values over 30 days, switch to Target ROAS or Maximize Conversion Value

Frequently Asked Questions

Google Ads supports three types of offline conversion uploads: (1) Click conversions — matched via GCLID, the most common type for tracking actions like booked jobs or signed contracts that result from an ad click; (2) Call conversions — matched via caller ID and call start time for attributing revenue to phone calls driven by call extensions or call-only ads; (3) Enhanced Conversions for Leads — matched via hashed PII (email, phone number) for privacy-safe, cross-device matching that works even without a GCLID.

Google keeps a GCLID for 90 days after the click, so a job closed on day 75 can still be uploaded and the same job closed on day 91 cannot. A hashed email or phone matches for 63 days after the click, and from day 64 through day 90 only the GCLID still matches. Wait 6 hours after the click before you upload it: a click at 9:00 a.m. is too recent at noon and is ready at 3:00 p.m., and if you upload sooner the error asks you to try again in 12 hours.

After a successful upload, imported conversions usually show in reports in about 3 hours. Processing is typically under 12 hours, and a row keyed by a GBRAID or WBRAID can take up to 72 hours. They appear on the click date, not the upload date. A missing row can also be a click ID that was cut off, expired, or malformed, or a conversion action that is not an import.

Smart Bidding uses the conversions you include. Without the booked job, it optimizes for form fills. With the invoice on the row, it can prefer the clicks that became jobs. Google measured an average 26% increase in incremental ROAS for Search campaigns bidding to conversion value, among advertisers who connected offline and app data to Data Manager, from April 2025 through April 2026. That is Google's average for that setup. Judge the change on your own spend and your own uploaded revenue.

Yes. You can upload conversions at the MCC level and they will be attributed to the appropriate child accounts based on the GCLID. This is the recommended approach for agencies managing multiple client accounts. TUOCA supports MCC-level uploads natively for all connected Google Ads destinations.

Stop Guessing. Start Proving ROI.

TUOCA connects your CRM and call tracking data directly to your ad platforms. Set up in minutes.