We're using the Java-Client-API's v200909 CampaignService.mutate()
method, and we were trying to update the budgetAmount of a previously
exported Campaign. The previous Campaign hat a DAILY budgetAmount of
0.01$, which was way too low naturally. Long story short:
Using this request
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/
envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header>
<ns1:RequestHeader soapenv:actor="http://schemas.xmlsoap.org/soap/
actor/next" soapenv:mustUnderstand="0" xmlns:ns1="https://
adwords.google.com/api/adwords/cm/v200909">
<ns1:applicationToken>***</ns1:applicationToken>
<ns1:authToken xmlns:ns1="https://adwords.google.com/api/adwords/cm/
v200909">******</ns1:authToken>
<ns1:clientEmail>***</ns1:clientEmail>
<ns1:developerToken>***</ns1:developerToken>
<ns1:userAgent>***</ns1:userAgent>
<ns1:validateOnly>false</ns1:validateOnly>
</ns1:RequestHeader>
</soapenv:Header>
<soapenv:Body>
<mutate xmlns="https://adwords.google.com/api/adwords/cm/v200909">
<operations>
<operator>SET</operator>
<operand>
<id>someId</id>
<name>someName</name>
<budget>
<amount><microAmount>100000000</microAmount></amount>
</budget>
<biddingStrategy xsi:type="ns2:ManualCPC" xmlns:ns2="https://
adwords.google.com/api/adwords/cm/v200909"/>
</operand>
</operations>
</mutate>
</soapenv:Body>
</soapenv:Envelope>
We were getting this fault:
<?xml version="1.0" encoding="UTF-8"?><soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>InternalApiError.UNEXPECTED_INTERNAL_API_ERROR @ </
faultstring>
<detail>
<ApiExceptionFault xmlns="https://adwords.google.com/api/adwords/
cm/v200909">
<message>InternalApiError.UNEXPECTED_INTERNAL_API_ERROR @ </
message>
<ApplicationException.Type>ApiException</
ApplicationException.Type>
<errors xsi:type="InternalApiError" xmlns:xsi="http://www.w3.org/
2001/XMLSchema-instance">
<fieldPath/>
<trigger/>
<ApiError.Type>InternalApiError</ApiError.Type>
<reason>UNEXPECTED_INTERNAL_API_ERROR</reason>
</errors>
</ApiExceptionFault>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>
To remedy this situation we tried to set the budgetAmount of the
Campaign manually, which somehow, magically worked.
Why is that ? We even have some automated tests using real accounts
and real dollars to test the export of a Campaign and subsequent
changes to its budget... as in _exactly_ this situation. The soap
messages differ only in clientEmail used. (which I can provide via
email, if you need them)
Slightly worried & confused,
rainer
Thanks for reporting this error. The cause was that the campaign was
previously set up with a monthly budget, a beta feature that has been
sunset. When you were setting the budget you didn't specify the
budget period as DAILY, so it was trying to set a monthly budget,
leading to an error. The same request succeeded for other accounts
and campaigns because the campaigns were already set up as daily.
I'll work with the core engineering team to return a more user-
friendly error message in this case.
Best,
- Eric Koleda, AdWords API Team
I checked the Adwords API Blog and the group (with "sunset 200906")
again but could not find any hints regarding the cause of our error.
However, checking this group for "monthly",
I found this
http://groups.google.com/group/adwords-api/browse_thread/thread/39add342414edc69/2ece289e4e1950af?lnk=gst&q=monthly#2ece289e4e1950af
(shame on me :)
(Sticky posts maybe, for common issues ? A 'pastebin' for soap-
envelopes to find similar posts/error-messages/causes/fixes ?)
Cheers, rainer