Skip to content

Guides

Google moved offline conversion uploads to the Data Manager API. What to check and change.

By Santi ·

What changed for offline conversion uploads?

Since June 15, 2026, the Google Ads API blocks offline conversion and enhanced conversions for leads uploads from developer tokens that weren’t already using it, and Google sends everyone to the Data Manager API instead. Uploaders that were already running can keep going for now while they migrate. Anything new, including a new HubSpot custom code action, has to upload through Data Manager.

How do I know my upload stopped?

  • The error. Per PPC Land’s summary of Google’s announcement, a blocked token gets CUSTOMER_NOT_ALLOWLISTED_FOR_THIS_FEATURE.
  • The silence. PPC Land: “the upload will fail silently from the advertiser’s perspective unless the calling system has explicit error handling for that response code.” So check the numbers as well as the logs.
  • The numbers. In Google Ads, open the import conversion action and check the “All conv. (by conv. time)” column, which counts by the date of the conversion. If it drops to zero from one day to the next while deals keep closing in your CRM, the uploads stopped.

What did Google announce?

Google’s help page for enhanced conversions:

“Starting June 15, 2026, offline conversions import and enhanced conversions for leads uploads will be migrated to the Data Manager API and blocked in the Google Ads API. Developer tokens that haven’t sent a request between January 2026 through June 2026 will not be allowlisted for legacy access.”

PPC Land reported on May 18, 2026 that Google announced it on its Ads Developer Blog on May 15. It puts the qualifying window at December 2025 to May 2026, a little different from the help page’s wording. Whether you’re on the list was settled in June: if your uploads still succeed, you are; if they return CUSTOMER_NOT_ALLOWLISTED_FOR_THIS_FEATURE, you aren’t.

Who does it affect?

  • New integrations. A homemade uploader, a HubSpot custom code action or a new tool that calls ConversionUploadService.UploadClickConversions for the first time.
  • Not, for now, existing ones. PPC Land: developers who already adopted offline conversion imports “can continue using the Google Ads API for imports while they carry out their integration with the Data Manager API”. It calls that access transitional.

The cutoff is about code that calls the Google Ads API. File uploads in the Google Ads interface and Data Manager’s own connectors are separate routes, which Google lists alongside the API in its FAQ.

What happened to developer tokens?

Google’s developer token page: “We sunset developer tokens on September 9, 2026.” You can keep sending one, but “this is optional and ignored by the API servers”. API access now belongs to the Google Cloud project your credentials come from. The same page says Google “transferred the developer token’s allowlist status to the associated Google Cloud projects”. It doesn’t name June’s list for offline uploads, so the test stays the one above: if your uploads still succeed, you’re on it.

What does a Data Manager upload need?

From Google’s Data Manager guides:

  1. A Google Cloud project with the Data Manager API enabled, and a user account or a service account to authenticate with. Google treats the Data Manager scope as sensitive, so an app other people sign in to goes through Google’s OAuth verification.
  2. Access to the Google Ads account. The account you authenticate with needs access to the Google Ads account you upload to.
  3. The conversion action’s ID, for an “Import from clicks” action.
  4. User data formatted and hashed. Email and phone are trimmed, lowercased where it applies, and hashed with SHA-256. Gmail addresses lose their dots and anything after a plus. Phones use E.164 format.
  5. A transaction ID per conversion. Google uses it “for deduplication”, so a retry doesn’t count twice.
  6. A test mode. Set validateOnly to true to check a request without applying it.
  7. A second look later. Google accepts the request first and processes it afterwards. Its diagnostics “may take up to 24 hours”, though some requests finish “in as little as 30 minutes”.

One more thing, for an action that also gets conversions from your Google tag: Google’s guide on that mix says that during the action’s initial 14-day trial, new conversions from uploads “will appear in your reporting but won’t be used for bidding”.

The time limits don’t change: a conversion with a GCLID up to 90 days after the click, and up to 63 days when it matches on email or phone alone.

How do I move a HubSpot setup over?

Two options:

  • Rebuild the custom code. HubSpot’s custom code and Send a webhook workflow actions are Data Hub Professional and Enterprise only. The code reads the deal and its contact, formats and hashes the user data, and calls the Data Manager API’s events:ingest. Then it has to check diagnostics, retry what failed, and keep up with the next API change. What a custom build involves.
  • Use a workflow step that already uploads through Data Manager. I built Ledion’s Send conversion step for this: it uploads to Google Ads through the Data Manager API, and sends to Meta, Microsoft Ads and Reddit from the same step (how it sends to Google Ads, and connecting Google Ads).

For the bigger picture, including HubSpot’s built-in events and Google’s own HubSpot connector, see How to send offline conversions to Google Ads.

I'm Santi. I build Ledion, a Send conversion step for HubSpot workflows. Something wrong or out of date? Email santi@ledion.io.

Questions

Do I still need a Google Ads developer token?

No. Google sunset developer tokens on September 9, 2026. You can still send one, but it’s “optional and ignored by the API servers”. Access now comes from the Google Cloud project your credentials belong to, and Google moved each active token’s access level to that project.

Can I keep using UploadClickConversions?

Only if your integration was already uploading before June 15, 2026 (Google allowlisted those for legacy access), and only for now. PPC Land describes that access as transitional. Plan the move to the Data Manager API before Google closes it.

Does a HubSpot custom code action need anything special?

It needs Data Hub Professional or Enterprise, which HubSpot requires for custom code and Send a webhook actions, and a Google Cloud project with the Data Manager API turned on. The code then sends each conversion to the events:ingest endpoint.

Sources: 10 pages, checked

Send each deal's real amount to your ad platforms.

Ledion adds a Send conversion step to HubSpot contact and deal workflows. It sends the record's real amount to Google Ads, Meta, Microsoft Ads and Reddit, and each network's result comes back to the workflow. Works with HubSpot Professional and Enterprise plans that include workflows.

I'm onboarding the first companies one at a time. You get a direct install link and a 20-minute setup call if you want one. First 10 companies: Pro free, with no card, until Ledion is listed on the HubSpot App Marketplace, then $79 a month instead of $129 for as long as you stay.