Send your Salesforce deals back to Google Ads. Offline conversions for investor PPC
If your Google Ads account counts a form fill as a conversion, Google is learning to find people who fill in forms. Some of them are motivated sellers. Many are retail sellers who want full price, agents, renters and spam. The answer to which clicks turned into contracts lives in Salesforce, and Google never sees it. This page is for owners and marketing leads at home-buying and wholesaling companies who spend real money on PPC and want Google to bid for deals, not leads.
Store the Google click ID (GCLID) on every lead that comes from an ad, copy it to the deal when the lead converts, and connect Salesforce to Google Ads through Data manager, which replaced the legacy Salesforce integration Google stopped supporting on May 31, 2025. Send the stages that mean money, such as a qualified appointment, a signed contract and a closed deal with its fee, and bid on the one you have enough of. Add enhanced conversions for leads so matching doesn't rest on the click ID alone, and make sure your calls carry the click too.
Why are form fills the wrong thing to optimize for?
Google's automated bidding learns from whatever you tell it is a conversion. Tell it a form fill is a conversion and it gets very good at finding people who fill in forms. Your cost per lead looks great in Google Ads while your cost per contract in Salesforce keeps climbing, and nobody can say which campaigns, keywords or search terms produce the sellers who actually sign.
Investor PPC has a long funnel with a lot of loss at every step: lead, contact, appointment, offer, contract, closed. Only your CRM knows how far each click got. Offline conversion import is the bridge. Salesforce tells Google which clicks became appointments, contracts and closed deals, and Google bids toward more of those instead of more forms.
It also changes what you can see. With imports running, Google Ads can show cost per appointment and cost per contract by campaign and search term, next to the numbers you already watch in Salesforce. The two will never match to the dollar, but they stop telling different stories.
What changed in 2025 and 2026?
A lot of setup guides online still describe Google's old Salesforce integration and its "milestones". That integration is gone. Here's what changed, from Google's own help pages:
| When | What changed | What it means for you |
|---|---|---|
| May 31, 2025 | Google ended support for the legacy Salesforce integration. Salesforce connections now live in Data manager. | If someone set this up before 2025, check that every conversion action still gets data under Data manager. |
| Since the move | Each connection is linked to exactly one Salesforce object, either Lead or Opportunity. | A lead status and a deal stage are two connections and two conversion actions, not one. |
| From June 15, 2026 | Google began moving offline conversion and enhanced conversions for leads uploads from the Google Ads API to its Data Manager API, and blocking them on the old path. | If a developer or a tool built a custom upload, ask whether it moved. |
Google also recommends enhanced conversions for leads over the older click-ID-only import. It adds hashed contact details from your form, so a conversion can still be matched when a click ID is missing. Google says to keep sending the GCLID whenever you have it, and that it's required if you don't collect contact details with the Google tag.
Which Salesforce stages should you send?
Map your funnel to a few conversion actions, then decide which one Google bids on. In Google Ads, primary conversion actions drive bidding and show in the Conversions column. Secondary ones are for observation only, so you can watch contracts and closed deals without letting a thin number steer the budget.
| Stage in Salesforce | Send it? | Why |
|---|---|---|
| New lead (form or call) | Usually no; your website tag already counts it | Importing it again counts the same lead twice |
| Qualified lead: a real owner, a property in your buy box, some reason to sell | Yes | Google's own advice is to pick a qualified or converted lead as the goal |
| Appointment set or held | Yes, often the primary | Close enough to money, and frequent enough for bidding to learn from |
| Offer made | Optional | Useful to watch, but it depends on your reps as much as on the lead |
| Contract signed | Yes | The strongest signal most teams have enough of; primary once volume allows |
| Closed, with the fee or profit | Yes, as secondary | The truth, but it arrives late and in small numbers |
Volume is the catch. A team signing a handful of contracts a month gives Google very little to learn from, while appointments happen several times as often. For most investor teams I'd make the qualified appointment the primary conversion, send contracts and closed deals as secondary, and switch the primary to contracts once there are enough of them to steer by.
Timing matters too. Google only accepts click-based conversions within 90 days of the click. A seller who clicks in March and signs in August won't import. That's fine; it's one more reason the earlier stages carry the bidding.
How do you set it up?
- Turn on auto-tagging in Google Ads. It adds a GCLID to the landing page address on every ad click. Without it there's nothing to send back.
- Capture the GCLID on your site. Google publishes a short script that reads the GCLID from the address, stores it for 90 days and fills a hidden field on your forms. Put it on every page of the site, because sellers click around before they fill anything in.
- Add a GCLID field to Lead and Opportunity in Salesforce. Google's setup page asks for a 255-character text field on both, read-only for users, with the lead field mapped to the opportunity field so the value survives lead conversion.
- Turn on field history tracking for Lead Status and Opportunity Stage. Google reads the time of the status or stage change from that history and uses it as the conversion time.
- Test every form. Submit a test lead with
?gclid=teston the end of the page address, check that the value lands on the lead, convert it, and check it on the opportunity. Then do the same for every other form and landing page. - Connect Salesforce in Google Ads. Create a conversion action that imports from a CRM, choose Salesforce, sign in, pick the object (Lead or Opportunity), set the condition (for example, Stage changes to Contract Signed) and map the GCLID. For enhanced conversions for leads, also map email and phone; Google prefers email and needs at least one of the two.
- Use a dedicated integration user with only the access the connection needs. Not the owner's login, and not a rep who might leave. When that user is deactivated, the imports stop.
- Set a daily schedule and give it a day. Google says a new conversion action needs 4 to 6 hours before uploads, conversions can take up to 24 hours to show, and the first run only looks back 14 days.
One limit catches investor orgs more than any other: Google's Salesforce connector reads Leads and Opportunities. If your deals live on a custom object, such as a Property or Deal record, the connector can't see them. You can track the stages you need on an opportunity linked to that record, or send conversions through a file or another tool. Decide this before you build, not after.
What about phone calls?
A lot of motivated sellers call instead of filling in a form, so a setup that only handles forms misses some of your best leads. There are three kinds of calls to think about:
- Calls straight from the ad, through a call asset or call-only ad with a Google forwarding number. Google already knows about the call. To tell it what happened next, its phone call import matches on the caller's number and the call start time, so your phone system needs to log both on the Salesforce record.
- Calls from your website after an ad click. These only tie back to the click if your call tracking swaps numbers per visitor (dynamic number insertion with a number pool). Check whether your call tracking writes the click ID or the campaign onto the lead it creates in Salesforce, or sends the conversion to Google itself. Pick one path. Doing both counts the same seller twice.
- Calls from a mailer number, even when the seller found you by searching your name. That isn't an ad click, and forcing it into Google Ads makes the numbers worse, not better.
Whichever way calls come in, the lead your phone system creates in Salesforce has to carry its source and, where there is one, the click ID. If it doesn't, the import quietly skips every seller who called. More on getting calls onto the right record in dialers in Salesforce.
Should you send a value with each conversion?
Yes, if you can do it consistently. A value lets Google bid toward money instead of a count, which matters when one campaign brings in assignment-fee deals and another brings in properties you keep.
- Closed deals: the fee or profit, from the same field your ROI reports use. Gross on some deals and net on others makes the value useless.
- Contracts and appointments: a fixed estimate, such as your average fee times the share of contracts that close. Revisit it every quarter.
- Leads: Google's upgrade notes say expected revenue carries over for opportunities but isn't supported for leads, so set the value on the conversion action instead.
If you don't map a value, Google uses the conversion action's default. That's a reasonable start while you get the basics working.
What usually goes wrong
- The GCLID is only on one form. The landing page has it; the contact page, the chat widget and the second landing page don't.
- It doesn't survive conversion. The lead has a GCLID, the opportunity doesn't, so every contract arrives with nothing to match.
- Stages get skipped. A rep moves a deal from New straight to Contract, so the appointment conversion never fires. A date field such as "appointment held on", set by a Flow whenever a deal passes that point, is a safer trigger than the stage itself.
- A status gets renamed. Someone tidies the picklist, the condition no longer matches, and imports drop to zero without an error anyone sees.
- The connection belongs to someone who left. Google says a failed event isn't retried automatically, so days can go missing for good. The admin handover plan covers the logins that should never belong to one person.
- Two primary conversions count the same thing. A tag-based form conversion and an imported "new lead" both drive bidding, and Google thinks every lead is two.
- Bidding on closed deals too early. Small numbers make the bidding jumpy. Watch them as secondary first.
How do you know it's working?
- Once a week, compare counts. Appointments imported to Google Ads against a Salesforce report of appointments from leads with a GCLID, for the same week. They won't match exactly, because of the 90-day window and Google's own attribution, but they should be close.
- Watch for blanks. A Salesforce report of PPC form leads with an empty GCLID should be close to empty. If it isn't, a form or a landing page isn't capturing it.
- Check the schedule. Look at the last run in Data manager every week. Failed runs don't fix themselves.
- Judge spend in Salesforce. Google Ads will show conversions, but the budget decision belongs on cost per contract and profit by campaign from your CRM, using the original source. See which campaign gets credit and the cost per deal calculator.
In the org I run, PPC sits in the same campaign ROI reports as TV, mail and every other source: appointments, contracts and booked revenue by campaign and market, checked against the books. Offline conversion import doesn't replace that. It gives Google the same answer your reports already give you.
Questions
Can Google Ads import conversions from Salesforce?
Yes. Google Ads connects to Salesforce through Data manager and imports conversions when a lead status or opportunity stage changes, matched by the Google click ID (GCLID) and, with enhanced conversions for leads, by hashed email or phone.
Is the Google Ads Salesforce integration still available?
The legacy integration isn't. Google ended support for it on May 31, 2025, and Salesforce connections now run through Data manager, with each connection linked to one object, either Lead or Opportunity.
Where do I store the GCLID in Salesforce?
In a 255-character text field on both Lead and Opportunity, read-only for users, with the lead field mapped to the opportunity field so the value carries over when the lead converts. Your website fills it through a hidden form field.
Do I still need the GCLID with enhanced conversions for leads?
Google says to include GCLIDs whenever you can, and that they're required if you don't use the Google tag to collect contact details from your forms. Enhanced conversions add hashed email or phone so more conversions can be matched.
Which conversion should a real estate investor bid on?
For most teams, a qualified appointment, because it's close to money and happens often enough for bidding to learn. Send contracts and closed deals too, as secondary conversions, and make contracts the primary goal once you have enough of them.
Can Google Ads import conversions from a Salesforce custom object?
Google's Salesforce connector works with Leads and Opportunities. If your deals live on a custom object, track the stages you want on a linked opportunity, or send conversions through a file upload or another tool.
How long after a click can I import a conversion?
Google accepts click-based conversions within 90 days of the click. Its Salesforce connection also only looks back 14 days on the first run, so older conversions from before the setup won't come in.
How do I track Google Ads phone calls in Salesforce?
Calls from call assets with a Google forwarding number can be imported with the caller's number and call start time. Calls from your website need call tracking that swaps numbers per visitor, so the call can be tied to the click. Either way, the Salesforce lead has to carry the source.
Related guides
Sources
Checked in October 2026. Salesforce and vendor features change with each release, so check the linked page before you rely on a detail.
- Google Ads Help: How to set up a Salesforce integration. GCLID fields on Lead and Opportunity, field history tracking, the hidden form field, testing with gclid=test, the 90-day limit, the 14-day first import, the daily schedule and no automatic retries
- Google Ads Help: Legacy Salesforce integration for conversions upgrade FAQ. End of legacy support on May 31, 2025, one Salesforce object per connection, expected revenue for opportunities only
- Google Ads Help: About enhanced conversions for leads. How hashed lead details are matched, when the GCLID is still needed, and the move of uploads to the Data Manager API from June 15, 2026
- Google Ads Help: Set up offline conversion imports using GCLID. Auto-tagging, the hidden GCLID field and the 90-day storage script
- Google Ads Help: Using Data Manager with enhanced conversions for leads. Google's advice to choose a qualified or converted lead as the conversion goal
- Google Ads Help: About primary and secondary conversion actions. Primary actions drive bidding; secondary actions are for observation
- Google Ads Help: Import phone call conversions. Caller number and call start time, Google forwarding numbers, and imported call conversions that can't be removed
- WhatConverts: Dynamic number insertion. How number pools tie website calls back to ad clicks
Want to know what your PPC really costs per contract?
The fixed-price CRM Revenue Audit (USD 1,500) traces each lead source, PPC included, from first call to closed deal, shows where the source gets lost on the way, and comes with a fix plan and up to three quick fixes done. It's for teams already on Salesforce. On another CRM? Book a free call and we'll talk about a move.
Book a free callSee the Revenue AuditOr just ask one question about your setup: email · WhatsApp · LinkedIn