How do I upload offline conversions to Google Ads now that the API blocks new users?
TofuAnswer by the Tofu team · checked

Use Google's Data Manager. Since June 15, 2026, the Google Ads API rejects offline conversion uploads from anyone who wasn't already using it, with the error CUSTOMER_NOT_ALLOWLISTED_FOR_THIS_FEATURE. Marketers can connect HubSpot or Salesforce inside Google Ads with no code. Developers send the same data to the Data Manager API. Either way, send a GCLID or the lead's email or phone number (hashed, for the API) for each lead, then test before you go live. Google now calls the Data Manager API the primary API for offline conversions, so plan to move even if you still have access.
As of October 2026.
Before you start
- Access to the right Google Ads account. For the API, data must go to the account that owns the conversion action, not a manager account above it.
- An identifier for each lead. Either a GCLID saved in your CRM (this needs auto-tagging on), or the lead's email or phone number for enhanced conversions for leads.
- For HubSpot: a HubSpot login. Import limits depend on your HubSpot plan.
- For Salesforce: rights to enable the API, create custom fields and turn on field history tracking. The asynchronous API must be on, and sandbox environments aren't supported.
- For the Data Manager API: a Google Cloud project with the Data Manager API enabled, OAuth with the scope
https://www.googleapis.com/auth/datamanager, and the Google Account added as a user of the Google Ads account or a parent manager account. You don't need a developer token.
Step 1: Check whether you're still allowlisted
If your calls to ConversionUploadService.UploadClickConversions return CUSTOMER_NOT_ALLOWLISTED_FOR_THIS_FEATURE, you are not on the allowlist. None of Google's pages on this describes a way to request access. Google decided who keeps access by past activity, but its three pages give three different windows:
| Google page | Who keeps Google Ads API access |
|---|---|
| Google Ads developer blog, May 15, 2026 | Developers who imported offline conversions between December 2025 and May 2026 |
| Help article "Updates to your enhanced conversions settings" | Developer tokens that sent a request between January 2026 and June 2026 |
| Google Ads API deprecations page | Developer tokens with offline conversion uploads between December 17, 2025 and June 15, 2026 |
The windows overlap but don't match at the edges. If your last uploads fall inside one window and not another, ask Google Ads API support, which the developer blog names as the contact for questions. Access was tied to your developer token. On September 10, 2026, Google said it is sunsetting developer tokens and moving access levels to Google Cloud projects. The deprecations page says the offline conversion restriction still applies after that move. If you are allowlisted, you can keep using the Google Ads API while you build the Data Manager integration.
Step 2: Pick a route
| Route | Best for | Watch out for |
|---|---|---|
| HubSpot connector in Google Ads | HubSpot users | Conversions are chosen by Lifecycle Stage; import limits follow your HubSpot plan |
| Salesforce connector in Google Ads | Salesforce users | One connection per object (Lead, Opportunity or Order). The old Salesforce integration stopped being supported on May 31, 2025. |
| Data Manager API | Data warehouses, custom pipelines, agencies | Developer work, a Google Cloud project and OAuth setup |
| Other Data Manager sources, or a partner such as Zapier | Data in BigQuery, Google Sheets, SFTP, Zoho CRM, ActiveCampaign and other sources on Google's list | Check Google's supported data sources table first; a partner like Zapier is a separate third-party service |
Step 3: Turn on enhanced conversions if you'll send emails or phone numbers
Google's help says that starting in June 2026, enhanced conversions for web and for leads are one feature with a single on/off switch, and that since April 2026 Google Ads accepts data from tags, Data Manager and the API at the same time.
- In Google Ads, go to Settings in the Goals menu.
- Expand Customer data use.
- Check Turn on enhanced conversions.
- Select Agree and save, review the data terms, then select Agree and continue.
If you manage this through the API, version 26 (October 14, 2026) adds Customer.enablement_setting and Customer.effective_enablement_setting, which replace Customer.enhanced_conversions_for_leads_enabled.
Step 4a: Connect HubSpot
- In Google Ads, go to Summary in the Goals menu and choose + Create conversion action.
- Pick a category, select + Add conversion action, choose HubSpot, and click Next.
- Sign in to HubSpot, accept the customer data policy, and click Continue.
- Pick a conversion goal category and click Set up.
- Add conditions for which records count. For HubSpot, conditions must use the Lifecycle Stage field, unless joined to another condition with AND. A B2B team might use the stage that means "sales qualified."
- Click Continue, add optional filters, check the field mapping (required fields map on their own), and click Done, then Save and continue.
Step 4b: Connect Salesforce
- In Google Ads, go to Summary in the Goals menu and choose + Create conversion action.
- Choose a conversion category, select + Create conversion, and choose Salesforce from the list of data sources.
- In the "Set up custom event" panel, select Next, then log in to Salesforce. If the login window doesn't appear, allow pop-ups for ads.google.com.
- Click Done, then Continue, and select the Salesforce object (Lead, Opportunity or Order). Each object needs its own connection, so add a second one if you want both Lead and Opportunity conversions.
- Add optional filters, map the Salesforce fields, click Continue, review the integration name and setup, and click Done.
If you use cross-account conversion tracking from a manager account, Google says to link Salesforce to the manager account.
Map every identifier you have. Google says the connection works with at least one of GCLID, email or phone, and recommends mapping as many as you can.
Step 4c: Or send conversions with the Data Manager API
- Set up access. Enable the Data Manager API in your Google Cloud project and authenticate with the
datamanagerscope. Apps that sign in with people's own Google accounts eventually need Google's OAuth verification; service accounts don't. - Set the destination.
operatingAccountis the Google Ads account that owns the conversion action (accountTypeGOOGLE_ADS, 10-digit customer ID).loginAccountis the account where your credentials are a user.productDestinationIdis the numeric conversion action ID, not its resource name, and the conversion action must be of typeUPLOAD_CLICKS. - Build each event. Set
eventTimestamp(RFC 3339 in JSON),eventSource(such asWEB), and at least one identifier:adIdentifiers.gclid,gbraidorwbraid, oruserDatawith a normalized, SHA-256 hashed email or phone number. AddtransactionIdfor deduplication, andconversionValuein currency units (5.23, not micros) withcurrency. You can setconsentforadUserDataandadPersonalization. - Send it with
events.ingest.
Know the differences from the Google Ads API. The Data Manager API fails a whole request if a required field is wrong, instead of accepting part of it. Re-sending an event with an existing transactionId for the same conversion action counts as an adjustment. It can't retract a conversion: you can restate the value, but the count stays the same.
Step 5: Capture the GCLID if you use it
Turn on auto-tagging. Add a hidden GCLID field to every lead form, store the value with the lead in a custom CRM field, and send it back with the conversion. Google's example script keeps the GCLID for 90 days.
Step 6: Test before you go live
- API: send the request with
validateOnly: truefirst. It checks for errors without saving data. Then check results withrequestStatus.retrieve. Since July 2026, problems with optional fields come back asfield_warningswhile the rest of the request still goes through. - New conversion actions: wait 4 to 6 hours after creating one before you upload to it.
- Connectors: after the first import, confirm that the conversion action shows conversions before you use it for bidding.
Common problems
| Problem | Why it happens | Fix |
|---|---|---|
CUSTOMER_NOT_ALLOWLISTED_FOR_THIS_FEATURE | Your token wasn't uploading offline conversions in Google's window | Move to a Data Manager connector or the Data Manager API |
| API rejects the destination | operatingAccount points to a manager account | Use the account that owns the conversion action |
| Whole request fails | One required field is invalid (fast-fail) | Fix the field; test with validateOnly: true |
| Conversion values look 1,000,000 times too high | Values sent in micros | Send currency units |
| You need to remove a conversion | The Data Manager API doesn't support retractions | Restate the value; the count stays |
| "Salesforce API isn't active" | Salesforce's asynchronous API is off | Turn it on in Salesforce |
| "HubSpot data import paused" | You reached your HubSpot plan's import quota (Google's help describes it as a limit on how many lists you can import at a time) | Upgrade your HubSpot plan, as Google's help suggests |
| Old Salesforce integration stopped importing | Google ended support for it on May 31, 2025 | Reconnect Salesforce through Data Manager |
| Conversions don't match to clicks | No GCLID stored and no email or phone sent | Capture the GCLID, or turn on enhanced conversions and send hashed email |
Sources (15)
- Changes to Offline Click Conversion Import Support in the Google Ads API, checked October 23, 2026
- Updates to your enhanced conversions settings, checked October 23, 2026
- Feature deprecations and unversioned changes (Google Ads API), checked October 23, 2026
- Google Ads offline conversions (Data Manager API), checked October 23, 2026
- Upgrade from the Google Ads API (Data Manager API), checked October 23, 2026
- Field mappings (Data Manager API), checked October 23, 2026
- Send events (Data Manager API), checked October 23, 2026
- Set up API access (Data Manager API), checked October 23, 2026
- HubSpot (Google Ads Data Manager Help), checked October 23, 2026
- Salesforce (Google Ads Data Manager Help), checked October 23, 2026
- Supported data sources (Google Ads Data Manager Help), checked October 23, 2026
- Set up offline conversions using Google Click ID (GCLID), checked October 23, 2026
- A new onboarding experience for Google Ads API developers, checked October 23, 2026
- Announcing v26 of the Google Ads API, checked October 23, 2026
- Data Manager API updates: RemoveAllAudienceMembers method, ingestion field warnings, expanded address data, checked October 23, 2026