Google Ads 400 Bad request

Hi,

We are getting a 400 Bad Request on our Google Ads Conversion Tracking tags in our sGTM server container. The tag fires successfully (“Succeeded”) in preview, and we can see an outgoing HTTP request from the server to googleadservices.com — but it returns 400.

Setup:

  • PrestaShop storefront
  • Web GTM → Stape server container
  • Custom Loader installed via Stape
  • GA4 as data source for sGTM
  • Google Ads Conversion Tracking tags in sGTM
  • All Google Ads tags paused in the web container

The problem:

The outgoing request URL is extremely long and contains a data= parameter with the full event data encoded, plus gclaw, tag_exp, sg_ecv and bttype=purchase&ec_mode=a parameters. We believe the URL length or one of these parameters is causing the 400.

Tag configuration:

  • Conversion ID and Label: correct (verified in Google Ads)
  • Value and Currency: Event Data variables
  • “Fournir des données sur les ventes au niveau des produits”: disabled
  • “Fournir des données sur les nouveaux clients”: disabled

Questions:

  1. What is generating the data= parameter with the full event payload in the URL? Is this coming from Enhanced Conversions being active at the Google Ads account level?
  2. Is the URL length the cause of the 400, and if so, how can we reduce it?
  3. Should we disable “Activer l’association des conversions” to remove the gclaw parameter?

Thank you!

Hi Andrea,
Based on your description, the issue is most likely related to the payload being sent to Google Ads rather than the server-side container itself.

A 400 Bad Request response typically indicates that one or more parameters do not meet Google’s requirements or contain invalid values. We recommend reviewing the payload and verifying that all parameters being sent comply with the Google Ads Conversion Tracking specification.

Hi @Andrea.

Adding to Roman’s answer.

  1. What is generating the data= parameter with the full event payload in the URL? Is this coming from Enhanced Conversions being active at the Google Ads account level?

Any event parameter that is present in the GA4 event that triggers this Google Ads conversion tag is also sent in the Ads conversion request under the data= parameter.

  1. Is the URL length the cause of the 400, and if so, how can we reduce it?

It’s possible. You can reduce it by either:

  • if the GA4 event only triggers the Google Ads tag and nothing else, send only the parameters you’re going to use.
  • if the GA4 event triggers other tags, use a Transformation to remove some of the parameters that are not being used in the Google Ads tags (please, only modify the parameters that you’re sending with the GA4 event. Do not modify other parameters because they can affect how the tags behave).

If possible, please you can DM me the full request URL that is returning 400. I can take a look and see if there’s anything that is causing the 400.

  1. Should we disable “Activer l’association des conversions” to remove the gclaw parameter?

No, as it would drastically negatively impact you conversion attribution.