RE: sending conversion with gad_* parameters fails with gclid required error

65 views
Skip to first unread message
Message has been deleted

Google Ads API Forum Advisor

unread,
Jul 25, 2025, 6:29:45 PM7/25/25
to varun...@gmail.com, adwor...@googlegroups.com
Hi,

Thank you for reaching out to the Google Ads API support team. 

Please be informed that I have removed your response from the forums as it contains the PII information.

Based on the information provided, I understand that you're including the 'session_attributes' field when uploading conversions via the Google Ads API, but encountering a REQUIRED field error specifically related to the missing 'GCLID' field. According to the help center article, when importing offline conversions, if a 'gclid' is not available, session attributes can be used as an alternative. However, it's also clearly stated that OCI users must include either hashed user-provided data with wbraid/gbraid or with session_attributes when 'GCLID' is not present. In your request payload, it's evident that no user-provided data is being passed, which is the primary reason for this error.

I would recommend you to refer to this API documentation for more detailed information. This code example describes you on how to pass the user identifiers along with the session attributes field. However, I am providing you the sample request body on how to pass the user identifiers along with the session attributes: 
Request Body:
==============
POST https://googleads.googleapis.com/v20/customers/{customerId}:uploadClickConversions?key=[YOUR_API_KEY] HTTP/1.1

developer-token: **********************
Authorization: Bearer [YOUR_ACCESS_TOKEN]
Accept: application/json
Content-Type: application/json

{
  "conversions": [
    {
      "sessionAttributesEncoded": "sessionAttributesEncoded",
      "conversionAction": "customers/{customerId}/conversionActions/{conversionActionId}",
      "conversionDateTime": "2025-05-22 19:40:17-04:00", //random conversion date time has been passed
      "conversionValue": 0,
      "currencyCode": "USD",
      "orderId": "1234566",
      "userIdentifiers": [
        {
          "hashedEmail": "hashedEmailId"
        }
      ]
    }
  ],
  "partialFailure": true
}
I would request you to pass the userIdentifier object and try to make the API call and let us know how it works from your end. If you still encounter any issues even after following the provided suggestion, I would request you to share the complete updated API logs (request and response logs with request-id and request header) generated at your end to further assist you better. 

You can send the details via Reply privately to the author option, or direct private reply to this email.
 

Thanks,
 
Google Logo Google Ads API Team

Feedback
How was our support today?

rating1    rating2    rating3    rating4    rating5
[2025-07-25 22:28:59Z GMT] This message is in relation to case "ref:!00D1U01174p.!500Ht01swpTI:ref" (ADR-00320287)



Google Ads API Forum Advisor

unread,
Jul 28, 2025, 12:52:06 PM7/28/25
to varun...@gmail.com, adwor...@googlegroups.com

Hi,

I understand that you have noticed a slight difference in context between the Google Ads Help Center article and Google Ads API documentation. I’d like to clarify that the behavior of the Google Ads UI and Google Ads API remains consistent. I will ensure that such differences are addressed and reflected accurately in our documentation.

Thanks,
 
Google Logo Google Ads API Team

Feedback
How was our support today?

rating1    rating2    rating3    rating4    rating5

[2025-07-28 16:50:51Z GMT] This message is in relation to case "ref:!00D1U01174p.!500Ht01swpTI:ref" (ADR-00320287)



varun d

unread,
Jul 28, 2025, 1:22:06 PM7/28/25
to ads...@forumsupport.google, adwor...@googlegroups.com
Thanks for the clarification.


 This is particularly important when individual identifiers like gclid and user-provided data are not available. "
contracting.png
This got me confused that only with gad_* params, conversion can be attributed without gclid or user's personal data.
The above text probably needs to be updated / better explained , as it contradicts with API behaviour explained at other places in your answer reference links. 

Reply all
Reply to author
Forward
0 new messages