When doing a campaign update requests (`mutate` with `CampaignOperator.SET`) which has shoppingSettings (with `merchantId`) we observe a `com.google.api.ads.adwords.axis.v201806.cm.ApiException` see [1]
In this request we set all mandatory properties (`merchantId`, `salesCountry`, `campaignPriority`)
Leaving out the merchantId however makes the request succeed, request and response see [2] [3].
I can't find documentation why these parameters shouldn't be set in this case:
We are using com.google.api-ads:adwords-axis:3.15.1
[2]
2018-11-21 16:11:47 [INFO] c.g.a.a.a.l.c.A.soapXmlLogger SOAP request:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<soapenv:Header>
<ns1:clientCustomerId>XXX</ns1:clientCustomerId>
<ns1:developerToken>REDACTED</ns1:developerToken>
<ns1:userAgent>smeco (AwApi-Java, AdWords-Axis/3.15.1, Common-Java/3.15.1, Axis/1.4, Java/1.8.0_152, maven)</ns1:userAgent>
<ns1:validateOnly>false</ns1:validateOnly>
<ns1:partialFailure>false</ns1:partialFailure>
</ns1:RequestHeader>
</soapenv:Header>
<soapenv:Body>
<operations>
<operator>SET</operator>
<operand>
<id>999999</id>
<name>(AT:Whoop!) Indoor</name>
<ns2:merchantId>XXX</ns2:merchantId>
<ns2:salesCountry>AT</ns2:salesCountry>
<ns2:campaignPriority>0</ns2:campaignPriority>
</settings>
</operand>
</operations>
</mutate>
</soapenv:Body>
</soapenv:Envelope>
[3]
2018-11-21 16:11:47 [INFO] c.g.a.a.a.l.c.A.soapXmlLogger SOAP response:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<soap:Header>
<requestId>00057b2e2b2a07410a373303cb0f5a91</requestId>
<serviceName>CampaignService</serviceName>
<methodName>mutate</methodName>
<operations>1</operations>
<responseTime>269</responseTime>
</ResponseHeader>
</soap:Header>
<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>[InternalApiError.UNEXPECTED_INTERNAL_API_ERROR @ com.google.ads.api.services.common.error.InternalApiError.<init>(InternalApiErro]</faultstring>
<detail>
<message>[InternalApiError.UNEXPECTED_INTERNAL_API_ERROR @ com.google.ads.api.services.common.error.InternalApiError.<init>(InternalApiErro]</message>
<ApplicationException.Type>ApiException</ApplicationException.Type>
<fieldPath/>
<trigger/>
<errorString>InternalApiError.UNEXPECTED_INTERNAL_API_ERROR</errorString>
<ApiError.Type>InternalApiError</ApiError.Type>
<reason>UNEXPECTED_INTERNAL_API_ERROR</reason>
</errors>
</ApiExceptionFault>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>
[1]
2018-11-21 16:11:47 [WARN] c.g.a.a.a.l.c.A.requestInfoLogger Request made: Service: CampaignService Method: mutate clientCustomerId: XXX URL:
https://adwords.google.com/api/adwords/cm/v201806/CampaignService Request ID: 00057b2e2b2a07410a373303cb0f5a91 ResponseTime(ms): 269 OperationsCount: 1 IsFault: true FaultMessage: ApiException{applicationExceptionType=ApiException, errors=[InternalApiError{apiErrorType=InternalApiError, errorString=InternalApiError.UNEXPECTED_INTERNAL_API_ERROR, fieldPath=, reason=UNEXPECTED_INTERNAL_API_ERROR, trigger=}]}