Optional request headers

  • When using optional fields in Google Ads API requests, construct the request message separately and pass it as a single parameter to the method.

  • Optional request headers like validate_only are set directly on the request message, not as keyword parameters in the method signature.

  • You can identify required or optional request fields by checking the protobuf definitions and looking for the [(google.api.field_behavior) = REQUIRED] annotation.

  • To use optional fields, create an instance of the request message type, populate its fields including the optional ones, and then pass it to the API method.

When using any optional fields on a request method, the request message must be constructed outside of the method and passed in as a single parameter.

Optional request headers, for example the validate_only header in the GoogleAdsService.Search method, are not present in the method signature as keyword parameters, so they must be set on the request message directly.

To determine if a request object field is required or optional, you can reference the protobuf definitions for services and look for fields that contain the annotation [(google.api.field_behavior) = REQUIRED].

Here's an example that sets the optional validate_only field on a GoogleAdsService.Search request:

request = client.get_type("SearchGoogleAdsRequest") request.customer_id = customer_id request.query = query request.validate_only = True response = googleads_service.search(request=request)