Data Manager: Missing Auth Token Error

Hi everyone,

I’m trying to send Google Ads Data Manager (GoogleConversionEvent) events from my server GTM via Stape, but every request to Google Ads is failing with:

“Request is missing required authentication credential. Expected OAuth 2 access token…”

My setup:
• Google Ads connection in Stape is active
• 2FA is enabled on the Google account
• I removed and re-added the connection
• Operating Customer ID and Conversion Event ID match the ones shown inside Google Ads
• Payload from GTM to Stape looks valid, and Stape receives it with no issues.

Request to Stape (with obfuscations):

{
  "type": { "type": "request", "label": "Request Log" },
  "platform": "GoogleConversionEvent",
  "requestUrl": "https://<stape-endpoint>/v2/data-manager/events/ingest",
  "logData": {
    "Name": "GoogleConversionEvent",
    "Type": "Request",
    "EventName": "ConversionEvent",
    "RequestMethod": "POST",
    "RequestUrl": "https://<stape-endpoint>/v2/data-manager/events/ingest",
    "RequestBody": {
      "validateOnly": false,
      "destinations": [
        {
          "reference": "1111111111",
          "productDestinationId": "1111111111",
          "operatingAccount": {
            "accountType": "GOOGLE_ADS",
            "accountId": "**********"
          },
          "linkedAccount": {
            "accountType": "GOOGLE_ADS",
            "accountId": "**********"
          }
        }
      ],
      "events": [
        {
          "eventTimestamp": "2025-12-01T13:35:02+00:00",
          "eventSource": "WEB"
        }
      ]
    },
    "TraceId": "REDACTED_TRACE_ID"
  }
}

Response

{
  "type": { "type": "response", "label": "Response Log" },
  "platform": "GoogleConversionEvent",
  "responseStatusCode": 400,
  "logData": {
    "Name": "GoogleConversionEvent",
    "Type": "Response",
    "EventName": "ConversionEvent",
    "ResponseStatusCode": 400,
    "ResponseHeaders": {
      "cache-control": "no-cache, private",
      "content-type": "application/json",
      "date": "Mon, 01 Dec 2025 13:35:04 GMT",
      "server": "nginx",
      "trace-id": "REDACTED"
    },
    "ResponseBody": "{\"body\":{\"message\":\"Request is missing required authentication credential. Expected OAuth 2 access token...\"}}",
    "TraceId": "REDACTED_TRACE_ID"
  }
}

Any ideas what the issue might be?

Thanks in advance

Google Ads or Data Manager one?

Data Manager @Dan

Hi @syedali, I encountered this error previously when I did not pass the correct value in the Operating Customer ID and Customer ID fields in the UI.
Make sure to remove the “-” symbols and also any space characters at the start and the end of the string.

Thanks @giovaniortolani @Dan it was the ID fields yes.

Now I managed to get 200 response codes for conversion tags configured with the template.

But they are appearing as ‘Inactive’ goals under Google Ads.

I have set up the conversions as Offline conversions on Ads and Ads keeps prompting me to set up the data source. I could not find any instructions related to this. What could be the issue?

Thanks in advance.

Hi @syedali, from our experience, it will display Inactive until an actual Conversion is recorded (e.g. a conversion that came from an ad click or ad view).

And you don’t need to do anything else regarding setting up a data source. Just leave without one.

We have started a campaign targeting this conversion goal and have not have any conversions and the conversion goal remains inactive.

I can also see gclids generated by the ad clicks of that campaign in our internal database which is the source for the requests sent by Stape to Data Manager.

So I suspect, Google Ads is accepting the gclid but unusually rejecting the gclid (checked format already) or accepting its validity but not matching for some reason.

What could be the issue?

Hi @syedali, are you passing the GCLID in the corresponding field in the tag? And do you see the GCLID being sent correctly in the tag API call (i.e., without any modification after being captured)?

Hi all, unusually all was solved when switching to Legacy API connector and tag template. To be honest, I can’t figure out why Data Manager API did not work with the equivalent setup!

I’m having the exact same issue. Getting a 200 OK response from Google but there’s no attribution in Google Ads.

If you are sending the conversion through an MCC account be sure that “Customer Data Terms” are accepted the MCC Goal Settings, in my case this was blocking the conversion from being propagated to the child account.

Also, it would be a cool if the Stape API supported the requestStatus:retrieve endpoint. Currently, the proxy only handles event:ingest.

Without the status check, we can’t tell if a conversion is actually successful, still PROCESSING, or denied because of an old GCLID. Having that route would let us finally see into the “black box” and fix the silent errors we’re all seeing.

documentation here: REST Resource: requestStatus  |  Data Manager API  |  Google for Developers

1 Like