PPCdigest.com

Offline conversion import and enhanced conversions for leads: a CRM guide for lead generation

Quick answer

If your real sales happen after the form, on a sales call or in a CRM, a form-fill conversion teaches Smart Bidding to find more form fills, not more customers. The fix is to send qualified leads and closed deals back to Google Ads. As of late 2026, Google's recommended way is enhanced conversions for leads: it matches CRM records to ad clicks using hashed email or phone plus the GCLID, set up through Google Ads Data Manager or a CRM connector such as HubSpot or Salesforce. Create one conversion action per funnel stage, upload daily, and make the stage you trust primary only after it has run for a few weeks.

Key takeaways

  • Smart Bidding optimizes for whichever conversions you include. Count every form fill and junk leads train it to bring more junk.
  • Enhanced conversions for leads is Google's upgraded version of offline conversion import. Send hashed email or phone and the GCLID together whenever you have both.
  • Data Manager connects directly to HubSpot, Salesforce, Zoho CRM, Google Sheets and more. Since June 15, 2026, API uploads are moving to the Data Manager API.
  • Upload deadlines: 90 days after the click with a GCLID, 63 days with hashed customer data.
  • Create a separate conversion action for each funnel stage and bid to one of them. Start new actions as secondary.
  • Check the diagnostics reports and compare "All conv. (by conv. time)" with your CRM before trusting the numbers.

Why form-fill conversions mislead Smart Bidding

Here's the setup I see in a lot of lead-gen accounts: one conversion action called something like "Form submit". A spam entry, an existing customer asking for support and a serious buyer all count the same.

Smart Bidding can't tell them apart. Google's own FAQ on offline imports says it plainly: Smart Bidding optimizes for whichever conversion types you include. Feed it form fills and it gets very good at finding people who fill in forms.

Let's make it concrete with a hypothetical. Say you sell home solar installations:

  • Campaign A brings 100 form fills at $40 each ($4,000 spend). Sales qualifies 10 of them and closes 2.
  • Campaign B brings 60 form fills at $65 each ($3,900 spend). Sales qualifies 30 and closes 9.

On cost per form fill, A wins easily. On cost per sale, A costs $2,000 and B costs about $433. Bidding on form fills would push budget in exactly the wrong direction.

That's the whole case for offline conversions: give bidding the outcome you actually get paid for. Google's lead-gen best practices point the same way: optimize toward goals like "qualified lead" or "converted lead", and avoid mixing goals from several stages of the lead journey.

Form fills still have a job. I keep them as a secondary action for fast feedback, the same way I use micro-conversions. They just shouldn't steer bids once better data exists.

Your options for sending qualified leads and sales back to Google Ads

The names have shifted over the years. As of late 2026, this is the landscape.

GCLID-based offline conversion import

The classic method. With auto-tagging on, every ad click arrives with a Google Click ID (GCLID). You capture it in a hidden form field, store it with the lead in your CRM, and later send it back with the conversion name and time.

It works, but it's fragile. If the hidden field breaks or the GCLID gets lost between the lead and the deal record, the conversion never matches. Google now labels the file-based GCLID upload as legacy. If you never stored GCLIDs, read can you import offline conversions without a GCLID.

Enhanced conversions for leads

Google calls this "an upgraded version of offline conversion import". Your Google tag captures the email and/or phone number when someone submits the form and sends it hashed. When that lead later qualifies or buys, you upload the conversion with the same hashed email or phone, and Google matches it to signed-in Google accounts and the original ad interaction.

Two details people miss:

  • Keep sending the GCLID. Google's upgrade guide says user-provided data and GCLIDs may be shared in the same conversion event, and to share both whenever they are available.
  • Upload all conversions for the event, including the ones that didn't come from Google Ads. Google's implementation checklist lists this as a requirement.

Google is also merging enhanced conversions for web and for leads into a single on/off setting, and since April 2026 it accepts user-provided data from website tags, Data Manager and API connections at the same time. If the concept is new to you, start with my enhanced conversions guide and the short web vs leads comparison.

Data Manager and CRM connectors

Data Manager is Google's point-and-click import tool inside Google Ads (Tools, then Data manager). Google describes it as "the fastest and easiest way to set up or upgrade to enhanced conversions for leads".

Google's list of supported sources for offline conversion import includes HubSpot, Salesforce, Zoho CRM, ActiveCampaign, Klaviyo, Google Sheets, BigQuery, Snowflake, SFTP and more. For the two most common CRMs:

  • HubSpot: supports offline conversion import and enhanced conversions for leads. You define the conversion with conditions on HubSpot's Lifecycle Stage field.
  • Salesforce: the old integration stopped being supported on May 31, 2025, so Salesforce now connects through Data Manager. For GCLID imports, Google asks for a custom GCLID field on both Lead and Opportunity, field history tracking on Lead Status and Opportunity Stage, and the GCLID mapped from Lead to Opportunity.
  • No CRM? Google's FAQ says any system that captures lead information can work, and "a Google spreadsheet will also work".

The API route

If a developer built your upload, check it going into 2027. Starting June 15, 2026, Google is migrating offline conversion and enhanced conversions for leads uploads to the Data Manager API, and they are being blocked in the Google Ads API.

RouteHow the match worksWhen I'd use itWatch out for
GCLID file import (legacy)GCLID onlyExisting setups with clean GCLID captureLost GCLIDs, 90-day limit, Google calls it legacy
Enhanced conversions for leadsHashed email or phone, plus GCLID when availableMost lead-gen accounts as of late 2026Tag must capture form data, upload all conversions, 63-day limit
Data Manager connectorFields mapped from your CRMHubSpot, Salesforce, Zoho or Sheets usersField mapping, consent checkboxes
Data Manager APISame keys, sent by your systemCustom CRMs, developer-built pipelinesNeeds a developer, replaces Google Ads API uploads

Upload timing and lookback windows

Timing is where most offline setups quietly lose data. These are Google's numbers:

WhatGoogle's guidance
Latest upload with a GCLID90 days after the click
Latest upload with hashed customer data63 days after the click
How often to uploadAt least daily, or on a consistent schedule if you can't
Wait after creating a new action (legacy file import)4-6 hours before the first upload
Processing timeTypically under 12 hours, up to 72 hours for GBRAID and WBRAID conversions
Fully reflected in reports (legacy file import)24-48 hours
Adjusting or restating a conversionUp to 55 days after it was first recorded

Three things to plan around:

  1. Long sales cycles. If deals close after 90 days, Google's advice is to upload a different offline event that happens within 90 days. In practice that means bidding on "qualified lead" or "opportunity", not "closed won".
  2. Conversion windows. An upload can also fail if the conversion is older than the click-through conversion window set on the action. Set the window to cover your real cycle.
  3. Reporting date. Imported conversions show up on the date of the click or impression, not the upload date, so last week's numbers keep growing. Same delay problem I covered in conversion cycles and learning periods. More in how long imported conversions take to show.

How to choose conversion actions and values

One conversion action per funnel stage

Google's FAQ says it's best practice to create a separate conversion action for each stage of the funnel. A typical setup: Form submit, Qualified lead, Opportunity, Closed deal.

Then bid to one stage. Google's lead-gen best practices say to pick an action with at least 15 conversions in the last 30 days at the account level, ideally one that happens within 7 days of the ad interaction. Closed deals are the truest signal but often too rare and too slow. For most accounts, qualified lead is the sweet spot. If volume is the problem, read what to do with low conversions on Smart Bidding.

Primary vs secondary

SettingWhere it reportsUsed for bidding?
Primary"Conversions" columnYes, when the goal it belongs to is used for bidding
Secondary"All conversions" column onlyNo, unless it's part of a custom goal

The custom goal exception catches people out: any action inside a custom goal is used for bidding, primary or secondary. My usual setup is Qualified lead as primary, with Form submit, Opportunity and Closed deal as secondary so I still see the whole funnel.

Values

Google recommends thinking about what each conversion is worth to the business, and using proxy values when exact values are hard to know. Here's the simple math I use.

Say (hypothetically) your average deal is worth $5,000 and 20% of qualified leads close. A qualified lead is worth about $1,000 to you. Send that as its value, or send the real deal value on the Closed deal action if your CRM has it.

For leads, set the count to "One", which Google describes as the better fit when only one lead per click adds value. And when you switch from form fills to qualified leads, reset your target. If 30% of form fills qualify, a $50 cost per form fill is roughly $167 per qualified lead. Keeping a $50 target would choke the campaign.

Step by step: moving bidding to qualified leads

  1. Turn on auto-tagging. Accept the customer data terms in Goals, then Settings.
  2. Make sure the Google tag captures email and/or phone when the form is submitted. Google recommends collecting both to improve match rates. If you use GTM, see my GTM guide for Google Ads.
  3. Create the action: Goals, Conversions, Summary, + Create conversion action, Import, then CRMs, files, or other data sources and Track conversions from clicks. Connect your data source and choose a category such as qualified lead.
  4. Set the new action to secondary and the count to "One".
  5. Upload daily from your CRM.
  6. Wait. Google's FAQ says one to two conversion cycles of daily uploads before you include the action. Its upgrade guide says the longer of three conversion cycles or four weeks. I go with the longer one.
  7. Make the new action primary, demote form submit to secondary, adjust your target, and expect a learning period.

Consent and data requirements

This part is not optional, especially in Europe.

  • Customer data terms. You accept them in Goals settings before enhanced conversions work.
  • EU user consent. Google's EU user consent policy covers users in the EEA, the UK and Switzerland. You need valid consent for the collection, sharing and use of personal data for ad personalization, and you need to keep records of it. When you set up a direct connection in Data Manager, you have to tick the checkbox on the EU user consent policy and customer data policies.
  • Tell people what you collect. Google asks you to give users clear information about the data you collect and to get consent where the law requires it.
  • API uploads carry consent. The Data Manager API has consent fields for adUserData and adPersonalization. Google's API docs warn that if consent isn't set, your conversions may not be attributable.
  • Hash correctly. If you upload by API, hash personal data with SHA-256 after normalizing it: lowercase emails, trim spaces, remove periods before the @ for gmail.com and googlemail.com addresses, and format phone numbers in E.164 (for example +16505551234).

Your website consent setup matters too. If you're unsure how it works, read my consent mode v2 guide and basic vs advanced consent mode. I'm not a lawyer, so run your consent text past someone who is.

Common mistakes I see

  • Uploading only Google Ads leads. For enhanced conversions for leads, Google wants all conversions for the event, whatever the source.
  • Several funnel stages as primary. Form submit plus qualified lead plus closed deal, all primary, means one customer counts three times and bidding chases a blend of goals.
  • Losing the GCLID. The hidden field works on one form but not the pop-up, or the GCLID never moves from the lead to the deal record.
  • Irregular uploads. A monthly CSV is too slow, and anything past 90 days (GCLID) or 63 days (hashed data) is lost.
  • Switching bids too early. Making a new action primary on day one, before enough data has come through.
  • Keeping the old target. Your cost per qualified lead will be higher than your cost per form fill. That's expected.

How to check it's working

  1. Test the tag. Submit a test lead in GTM preview mode with Tag Assistant. Google says the Google Ads User-Provided Data Event tag should appear under "Tags Fired", with a network request to google.com/pagead/form-data/. More in how to test conversion tracking.
  2. Open the enhanced conversions for leads diagnostics. Go to Goals, then Summary, and hover over the action's status or open the Diagnostics tab. The statuses run from Excellent and Good to Needs attention and Urgent. Alerts are based on the past day of data, or the past 7 days if there isn't enough.
  3. Check offline data diagnostics. In the status column, hover over offline data quality and click "Go to diagnostics". Excellent means at least 90% of your offline events are well-formed and valid, Good is 70-90%, and Needs attention is below 70%. "No recent data" means nothing arrived in the last 28 days.
  4. Compare with your CRM. Google's FAQ calls the "All conv. (by conv. time)" column, segmented by conversion action, the best way to check imported conversions. Line it up against your CRM counts for the same days.
  5. Expect a gap. Not every lead will match. Google's diagnostics page notes enhanced conversions are most helpful for advertisers with at least 20 conversions per week, including organic ones. Below that, read the trend, not single days.

Final recommendation

If I took over a lead-gen account tomorrow and the only conversion was a form fill, this would be my first project. Before ad copy, before keywords. Bidding is only as smart as the goal you give it.

I'd set up enhanced conversions for leads through Data Manager, keep sending GCLIDs, and create separate actions for each funnel stage. Then I'd bid on the earliest stage sales actually trusts, usually qualified lead, with a value attached. Give it a few weeks before you make it primary; early data always looks incomplete. If you want a second pair of eyes on your setup, book a call.

Action checklist for this week

  • Ask sales what makes a lead "qualified", and write it down as a CRM stage.
  • Check that auto-tagging is on and your form captures email, phone and the GCLID.
  • Create one import conversion action per funnel stage, all secondary, count set to "One".
  • Connect your CRM or a Google Sheet in Data Manager and schedule daily uploads.
  • If a developer built your uploads, confirm they use the Data Manager API.
  • Put a date in your calendar four weeks out to review diagnostics and decide on primary.

Sources