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



Reply via email to