Google Ads
Google Ads server-side conversions in PartialLeads work a bit differently than Meta or Pinterest. Instead of a direct Conversions API, Google requires conversions to be uploaded through Google Sheets as “offline conversions” — Google Ads imports the sheet on a schedule.
PartialLeads handles all the plumbing. You grant us access to Google Sheets via OAuth, we create a fresh conversion sheet in your Google Drive automatically, and we append every matching purchase or lead to it in real time. Google Ads then imports the sheet hourly or daily, depending on your configuration.
There’s also a second tab on this page for Web Call Tracking — swapping displayed phone numbers with Google forwarding numbers for ad-clicked visitors.
Google Ads requires a Starter plan or higher. Free-tier accounts won’t see the Google Ads config page.
What you’ll need
- A Google account with access to Google Sheets (basically any Gmail or Google Workspace account)
- A Google Ads account with the conversion action(s) you want to upload to
- Your domain authorized in PartialLeads (see Domain setup)
- A PartialLeads plan at Starter or higher
Configure Google Sheets (Offline Conversions)
Open the Google Ads page
Dashboard → Conversions → Google Ads.
Click “Connect Google Sheets”
You’ll be redirected to Google’s OAuth consent screen. Sign in with the Google account you want to use.
Approve the requested scopes
Google will ask you to authorize PartialLeads to:
- Create and edit Google Sheets in your Drive
- Read sheet metadata
These are the minimum permissions we need. Approve.
Confirmation
PartialLeads will:
- Create a fresh conversion sheet in your Google Drive (named something like “PartialLeads Conversions — YYYY-MM-DD”)
- Share it with the right Google Ads service account so Google Ads can import from it
- Begin appending matched events as they arrive
You’ll be redirected back to the Google Ads page with a success toast.
Configure your trigger
Decide which events go to Google Sheets. Common configurations:
- Purchases only — every matched purchase from Shopify / WooCommerce / Stripe / GHL becomes a row
- Completed leads — every form submission becomes a row (for lead-gen funnels)
- Both — purchases and completed leads
Pick your trigger from the dropdown.
Configure the conversion action mapping
In Google Ads, you have one or more conversion actions defined (e.g., “Purchase”, “Lead”, “Phone Call”). In PartialLeads, map each PartialLeads event type to the corresponding Google Ads conversion action name.
The mapping is by conversion action name — copy it exactly from your Google Ads conversion settings.
Save
PartialLeads starts appending matched events to your sheet immediately. Google Ads imports the sheet on its schedule (typically every 1-3 hours).
Configure Web Call Tracking
The second tab on the Google Ads page is for Web Call Tracking — a separate feature.
When someone clicks a Google ad and lands on your site, Google can dynamically swap any phone number on your page with a Google forwarding number. When the visitor calls that number, the call is attributed back to the Google ad in your campaign reporting.
PartialLeads’ Web Call Tracking config delivers the phone-swap rules to your pixel so the swap happens correctly for ad-clicked visitors and stays untouched for everyone else.
Open the Web Call Tracking tab
Dashboard → Conversions → Google Ads, then click the Web Call Tracking tab.
Enter your Google forwarding number
This is the dynamic forwarding number Google generated for your campaign. You can find it in Google Ads → Tools → Conversions → Phone calls.
Enter the number to replace
The static phone number currently displayed on your website — the one Google should swap with the forwarding number for ad-clicked visitors.
Save
The next page load on your site will detect ad-clicked visitors and swap the number automatically.
What you’ll see after setup
- Google Ads conversions — recent dispatches to your conversion sheet, row count, last-export status
- In your Google Drive — the conversion sheet (you can open it manually to see the raw rows being appended)
- In Google Ads — your conversion column will start showing imported conversions within a few hours of the first sheet-append
Common questions
”Why Google Sheets and not a direct API like Meta?”
Google Ads’ offline conversion ingestion API requires a multi-week verification process (CASA audit if you upload via OAuth, brand verification if via service account). Google Sheets bypasses this — uploads happen against YOUR sheet, in YOUR Drive, with YOUR Google account’s permissions.
Google has hinted at a public direct API for years, but it hasn’t shipped. When it does, we’ll switch over without breaking existing setups.
”How long until conversions appear in Google Ads?”
Sheet imports run on Google Ads’ schedule, not ours. Typically 1-3 hours. You can manually trigger an import in Google Ads → Tools → Conversions → Upload Conversions. PartialLeads’ side is real-time — the moment a matching event lands, it appears in your sheet.
”Where can I see what’s being sent?”
Open the conversion sheet in your Google Drive. Every row is a dispatched event with the relevant Google Ads fields (gclid, conversion_action, conversion_date_time, conversion_value, currency_code).
”I revoked the OAuth access — what happens?”
The connection in PartialLeads marks itself disconnected. New events stop being appended. The existing sheet in your Drive stays intact (Google preserves it; we can’t delete it without re-authenticating).
To re-connect, click Connect Google Sheets again and re-authorize. PartialLeads can either resume to the existing sheet or create a new one — your choice on re-connect.
”Web Call Tracking isn’t swapping the number”
Make sure the visitor actually came from a Google ad (has a gclid parameter in their URL). Web Call Tracking only swaps for ad-clicked visitors — direct or organic visitors see your normal phone number.
You can test by appending ?gclid=test123 to any page on your site and reloading. The number should swap.
Done with Google? Set up Pinterest next, or jump back to Meta.