I initialy reported this with the Google Ads PHP SDK repository 
<https://github.com/googleads/google-ads-php/issues/495>.

When sending updates with partial failure enabled, general failures trigger 
partial failures for every operation instead.

For example, when calling *AdGroupCriterionService/MutateAdGroupCriteria*  to 
update keyword bids, the request might fail, with every individual 
operation marked with an error *"Too many requests. Retry in 30 seconds."*.

This is a change from the behavior in the former AdWords PHP SDK (where the 
request throws an exception when exceeding a rate limit), and also seems 
undocumented. The documentation on partial failures 
<https://developers.google.com/google-ads/api/docs/best-practices/partial-failures>
 and 
the accompanying PHP SDK example HandlePartialFailure 
<https://github.com/googleads/google-ads-php/blob/master/examples/ErrorHandling/HandlePartialFailure.php>
 indicate 
that a request with partial failure enabled might still 
throw GoogleAdsException or ApiException to be handled, which does not seem 
to be the case.

In practice, this makes using partial failure for these requests (almost) 
impossible, because potentially any one of the partial failures could 
indicate that the entire request should be retried.

*Actions taken*

Send a request with partial failure enabled.

*Expected result*

The request succeeds, with only the operations with errors triggering a 
partial failure. If the request cannot or will not be handled, the service 
call throws an exception.

*Actual result*

A request that cannot/will not be handled succeeds, with every operation 
marked as partial failure.

Here's two examples of requests with this behavior:


*Request ID CxAuL1wYANmyuc5FDaFAkw*

All operations failed with:

*Multiple requests were attempting to modify the same resource at once. 
Please retry the request.*

Logged the following:

*Request made: Host: "googleads.googleapis.com", Method: 
"/google.ads.googleads.v5.services.AdGroupCriterionService/MutateAdGroupCriteria",
 
CustomerId: <REDACTED>, RequestId: "CxAuL1wYANmyuc5FDaFAkw", IsFault: 0, 
FaultMessage: "None"*


*Request ID `HIQegSZ_HGq8hNs_8NQkUQ`*

All operations failed with:

*Too many requests. Retry in 30 seconds.*

Logged the following:

*Request made: Host: "googleads.googleapis.com", Method: 
"/google.ads.googleads.v5.services.AdGroupCriterionService/MutateAdGroupCriteria",
 
CustomerId: <REDACTED>, RequestId: "HIQegSZ_HGq8hNs_8NQkUQ", IsFault: 0, 
FaultMessage: "None"*


Is this behavior of partial failure intended, or is this a bug?

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog:
https://googleadsdeveloper.blogspot.com/
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

You received this message because you are subscribed to the Google
Groups "AdWords API and Google Ads API Forum" group.
To post to this group, send email to adwords-api@googlegroups.com
To unsubscribe from this group, send email to
adwords-api+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/adwords-api?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"AdWords API and Google Ads API Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to adwords-api+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/adwords-api/f435547a-b565-4aa5-b63f-69caf796786an%40googlegroups.com.

Reply via email to