Hi, Here's an example of how the Java client library would format such a request:
<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 xmlns:ns1="https://adwords.google.com/api/adwords/cm/v201209" soapenv:mustUnderstand="0"> <ns1:authToken>***</ns1:authToken> <ns1:clientCustomerId>***</ns1:clientCustomerId> <ns1:developerToken>***</ns1:developerToken> <ns1:userAgent>FooBar (AwApi-Java, AdWords-Axis/internal, Common-Java/1.12.1, Axis/1.4, Java/1.7.0-google-v5, internal)</ns1:userAgent> <ns1:validateOnly>false</ns1:validateOnly> <ns1:partialFailure>false</ns1:partialFailure> </ns1:RequestHeader> </soapenv:Header> <soapenv:Body> <mutate xmlns="https://adwords.google.com/api/adwords/cm/v201209"> <operations> <operator>ADD</operator> <operand> <name>Interplanetary Cruise banner #1357578390298</name> <status>PAUSED</status> <budget> <budgetId>116580888</budgetId> </budget> <biddingStrategy xmlns:ns6="https://adwords.google.com/api/adwords/cm/v201209" xsi:type="ns6:ManualCPM"/> <settings xmlns:ns7="https://adwords.google.com/api/adwords/cm/v201209" xsi:type="ns7:KeywordMatchSetting"> <ns7:optIn>false</ns7:optIn> </settings> <networkSetting> <targetGoogleSearch>false</targetGoogleSearch> <targetSearchNetwork>false</targetSearchNetwork> <targetContentNetwork>true</targetContentNetwork> <targetPartnerSearchNetwork>false</targetPartnerSearchNetwork> </networkSetting> </operand> </operations> </mutate> </soapenv:Body> </soapenv:Envelope> Multiple settings would be specified like this: <settings xmlns:ns3="https://adwords.google.com/api/adwords/cm/v201209" xsi:type="ns3:GeoTargetTypeSetting"> <ns3:positiveGeoTargetType>DONT_CARE</ns3:positiveGeoTargetType> </settings> <settings xmlns:ns4="https://adwords.google.com/api/adwords/cm/v201209" xsi:type="ns4:KeywordMatchSetting"> <ns4:optIn>false</ns4:optIn> </settings> <settings xmlns:ns5="https://adwords.google.com/api/adwords/cm/v201209" xsi:type="ns5:TargetRestrictSetting"> <ns5:useAdGroup>true</ns5:useAdGroup> </settings> A list is just a repeated element, i.e. maxOccurs="unbounded" minOccurs="0" - Kevin Winter AdWords API Team On Friday, January 4, 2013 10:21:13 AM UTC-5, Noah wrote: > > Kevin, > > We may very well decide to use the API for final production code. > However, to fully understand the underlying communication process and > options, we'd like to start with some raw SOAP calls and work our way up. > > This shouldn't be too difficult as SOAP is a fairly well defined protocol, > and Google has very thorough online documentation of every object, call, > and option. Our main issue is that we don't understand some of the > "notation" that Google uses to describe SOAP options. (While SOAP follows > standards, the documentation has no standard.) > > For example, with this setting, the documentation is here: > > https://developers.google.com/adwords/api/docs/reference/latest/CampaignService.KeywordMatchSetting > > Apparently it is a "setting" of "Campaign", which is documented here: > > https://developers.google.com/adwords/api/docs/reference/latest/CampaignService.Campaign > > The documentation says that "Setting" is a "list", but doesn't really > explain how to use that in the XML > > Is there an actual example of XML (SOAP) that uses this setting? > > As it stands, the example, which is SOAP, is broken. > > Thank You > > > On Jan 4, 2013, at 7:04 AM, Kevin Winter (AdWords API Team) < > adwordsapia...@google.com <javascript:>> wrote: > > Thanks for pointing this out, I'll get the docs updated. > > We strongly encourage you to use a client library to make SOAP calls, very > few developers take this route. Making raw requests like this will result > in numerous headaches (such as this) trying to craft the appropriate SOAP. > We have plenty of code examples showing how to do numerous actions with > the API. For example, adding campaigns in java: > https://code.google.com/p/google-api-ads-java/source/browse/examples/adwords_axis/src/main/java/adwords/axis/v201209/basicoperations/AddCampaigns.java > > - Kevin Winter > AdWords API Team > > On Thursday, January 3, 2013 1:01:37 AM UTC-5, Noah wrote: >> >> Still stuck on this. >> >> 1) Has anyone resolved how that keyword_match_settings became mandatory? >> Should the documentation examples be updated? >> >> 2) I can't figure out, from the online SOAP documentation, the correct >> way to set this variable. Can someone provide me with an example SOAP >> request that includes this parameter? >> >> Thanks >> >> >> On Sunday, December 30, 2012 7:34:42 PM UTC-8, Noah wrote: >>> >>> Hello, >>> >>> I'm following, step-by-step, the documentation at: >>> https://developers.google.com/adwords/api/docs/ >>> >>> 1) Get an auth token using CURL. Works fine >>> >>> 2) Send manual SOAP request with supplied auth, client id, etc. FAILS >>> >>> I get an error back from google that says (from the SOAP response): >>> >>> MUST_SPECIFY_KEYWORD_MATCH_SETTINGS >>> >>> However, the example in the docs doesn't say anything about keyword >>> match settings. My guess is that Google updated some rules for creating >>> campaigns, but failed to update the documentation. >>> >>> Suggestions? >>> >>> >>> >>> <?xml version="1.0" encoding="UTF-8"?><soap:Envelope >>> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> >>> <soap:Header> >>> <ResponseHeader >>> xmlns="https://adwords.google.com/api/adwords/cm/v201209"> >>> <requestId>0004d21d2c0c80800a42b6a8000037e3</requestId> >>> <serviceName>CampaignService</serviceName> >>> <methodName>mutate</methodName> >>> <operations>0</operations> >>> <responseTime>698</responseTime> >>> <units>0</units> >>> </ResponseHeader> >>> </soap:Header> >>> <soap:Body> >>> <soap:Fault> >>> <faultcode>soap:Server</faultcode> >>> <faultstring>[CampaignError.MUST_SPECIFY_KEYWORD_MATCH_SETTINGS @ >>> operations[0].operand.settings]</faultstring> >>> <detail> >>> <ApiExceptionFault >>> xmlns="https://adwords.google.com/api/adwords/cm/v201209"> >>> <message>[CampaignError.MUST_SPECIFY_KEYWORD_MATCH_SETTINGS >>> @ operations[0].operand.settings]</message> >>> >>> <ApplicationException.Type>ApiException</ApplicationException.Type> >>> <errors >>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >>> xsi:type="CampaignError"> >>> <fieldPath>operations[0].operand.settings</fieldPath> >>> <trigger /> >>> >>> <errorString>CampaignError.MUST_SPECIFY_KEYWORD_MATCH_SETTINGS</errorString> >>> <ApiError.Type>CampaignError</ApiError.Type> >>> <reason>MUST_SPECIFY_KEYWORD_MATCH_SETTINGS</reason> >>> </errors> >>> </ApiExceptionFault> >>> </detail> >>> </soap:Fault> >>> </soap:Body></soap:Envelope> >>> >>> > -- > -- > =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ > Also find us on our blog and discussion group: > http://adwordsapi.blogspot.com > http://groups.google.com/group/adwords-api > =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ > > You received this message because you are subscribed to the Google > Groups "AdWords API Forum" group. > To post to this group, send email to adwor...@googlegroups.com<javascript:> > To unsubscribe from this group, send email to > adwords-api...@googlegroups.com <javascript:> > For more options, visit this group at > http://groups.google.com/group/adwords-api?hl=en > > > > > > -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups "AdWords 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