Error API First Call

3,618 views
Skip to first unread message

santiag...@gmail.com

unread,
Feb 8, 2018, 7:54:00 AM2/8/18
to AdWords API Forum
Hello, I am using the AdWords API and I am having a problem making the first call to test the API. I attach all the errors that the Python console shows me.
Thanks in advance

WARNING:googleads.common:Your default encoding, cp1252, is not UTF-8. Please run this script with UTF-8 encoding to avoid errors.
INFO:oauth2client.client:Refreshing access_token
INFO:googleads.common:Request summary - {'methodName': get}
DEBUG:suds.transport.http:sending:
HEADERS: {'Content-Type': 'text/xml; charset=utf-8', 'SOAPAction': b'""', 'Authorization': 'REDACTED', 'Content-type': 'text/xml; charset=utf-8', 'Soapaction': b'""'}
MESSAGE:
<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="https://adwords.google.com/api/adwords/cm/v201710" xmlns:ns0="https://adwords.google.com/api/adwords/cm/v201710" xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header><tns:RequestHeader><tns:developerToken>REDACTED</tns:developerToken><tns:userAgent>unknown (AwApi-Python, googleads/9.0.0, Python/3.6.2)</tns:userAgent><tns:validateOnly>false</tns:validateOnly><tns:partialFailure>false</tns:partialFailure></tns:RequestHeader></SOAP-ENV:Header><ns1:Body><ns0:get><ns0:serviceSelector><ns0:fields>Id</ns0:fields><ns0:fields>Name</ns0:fields><ns0:fields>Status</ns0:fields><ns0:paging><ns0:startIndex>0</ns0:startIndex><ns0:numberResults>100</ns0:numberResults></ns0:paging></ns0:serviceSelector></ns0:get></ns1:Body></SOAP-ENV:Envelope>
INFO:googleads.common:Response summary - {'requestId': 000564b2ccae23910a371b93d20004e5, 'responseTime': 32, 'serviceName': CampaignService, 'methodName': get, 'operations': 1, 'isFault': True, 'faultMessage': "[AuthenticationError.CLIENT_CUSTOMER_ID_IS_REQUIRED @ ; trigger:'<null>']"}
ERROR:suds.client:<suds.sax.document.Document object at 0x065FEA70>
WARNING:googleads.common:Response summary - {'requestId': 000564b2ccae23910a371b93d20004e5, 'responseTime': 32, 'serviceName': CampaignService, 'methodName': get, 'operations': 1, 'isFault': True, 'faultMessage': "[AuthenticationError.CLIENT_CUSTOMER_ID_IS_REQUIRED @ ; trigger:'<null>']"}
INFO:googleads.common:SOAP response:
<?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/v201710">
         <requestId>000564b2ccae23910a371b93d20004e5</requestId>
         <serviceName>CampaignService</serviceName>
         <methodName>get</methodName>
         <operations>1</operations>
         <responseTime>32</responseTime>
      </ResponseHeader>
   </soap:Header>
   <soap:Body>
      <soap:Fault>
         <faultcode>soap:Client</faultcode>
         <faultstring>[AuthenticationError.CLIENT_CUSTOMER_ID_IS_REQUIRED @ ; trigger:&apos;&lt;null&gt;&apos;]</faultstring>
         <detail>
            <ApiExceptionFault xmlns="https://adwords.google.com/api/adwords/cm/v201710">
               <message>[AuthenticationError.CLIENT_CUSTOMER_ID_IS_REQUIRED @ ; trigger:&apos;&lt;null&gt;&apos;]</message>
               <ApplicationException.Type>ApiException</ApplicationException.Type>
               <errors xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="AuthenticationError">
                  <fieldPath/>
                  <trigger>&lt;null&gt;</trigger>
                  <errorString>AuthenticationError.CLIENT_CUSTOMER_ID_IS_REQUIRED</errorString>
                  <ApiError.Type>AuthenticationError</ApiError.Type>
                  <reason>CLIENT_CUSTOMER_ID_IS_REQUIRED</reason>
               </errors>
            </ApiExceptionFault>
         </detail>
      </soap:Fault>
   </soap:Body>
</soap:Envelope>
Traceback (most recent call last):
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\site-packages\googleads\util.py", line 123, in PatchedHttpTransportSend
    fp = self.u2open(u2request)
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\site-packages\suds\transport\http.py", line 132, in u2open
    return url.open(u2request, timeout=tm)
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 532, in open
    response = meth(req, response)
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 642, in http_response
    'http', request, response, code, msg, hdrs)
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 570, in error
    return self._call_chain(*args)
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 504, in _call_chain
    result = func(*args)
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 650, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 500: Internal Server Error

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\site-packages\suds\client.py", line 613, in send
    reply = self.options.transport.send(request)
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\site-packages\googleads\util.py", line 134, in PatchedHttpTransportSend
    raise suds.transport.TransportError(e.msg, e.code, e.fp)
suds.transport.TransportError: Internal Server Error

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:/Users/Lucia/AdWords API/get_campaign.py", line 71, in <module>
    main(adwords_client)
  File "C:/Users/Lucia/AdWords API/get_campaign.py", line 53, in main
    page = campaign_service.get(selector)
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\site-packages\googleads\common.py", line 767, in MakeSoapRequest
    self._packer) for arg in args])
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\site-packages\suds\client.py", line 521, in __call__
    return client.invoke(args, kwargs)
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\site-packages\suds\client.py", line 581, in invoke
    result = self.send(soapenv)
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\site-packages\suds\client.py", line 619, in send
    description=tostr(e), original_soapenv=original_soapenv)
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\site-packages\suds\client.py", line 670, in process_reply
    raise WebFault(fault, replyroot)
suds.WebFault: Server raised fault: '[AuthenticationError.CLIENT_CUSTOMER_ID_IS_REQUIRED @ ; trigger:'<null>']'

Process finished with exit code 1


Dhanya Sundararaju (AdWords API Team)

unread,
Feb 8, 2018, 2:32:59 PM2/8/18
to AdWords API Forum
Hi,

The error that you are receiving is because the client customer id has not been specified. You will need to specify the client customer id for which you want the CampaignService run, in the googleads.yaml file or you may change client customerid at runtimeThis guide may be handy to get all your setup done. Please let me know if you have further questions.

Regards,
Dhanya, AdWords API Team

santiag...@gmail.com

unread,
Feb 9, 2018, 7:18:09 AM2/9/18
to AdWords API Forum
What would the client customer id be? Because try to paste several numbers that they suppose they are, but none worked. Thank you

Dhanya Sundararaju (AdWords API Team)

unread,
Feb 9, 2018, 2:29:38 PM2/9/18
to AdWords API Forum
Hi ,

You can find the Customer ID above your email address in the top right corner of any page after you sign into your AdWords account. Please refer this guide for better clarity.

santiag...@gmail.com

unread,
Feb 14, 2018, 8:46:09 AM2/14/18
to AdWords API Forum
Hello! Try to paste the Client ID, but it did not work. Just to corroborate, that data I have to paste in the file "googleads.yaml", right? Thank you

Dhanya Sundararaju (AdWords API Team)

unread,
Feb 14, 2018, 3:39:09 PM2/14/18
to AdWords API Forum
Hi ,

Yes, please enter the client customer id in the googleads.yaml file, sample given below :

client_customer_id: 123-456-7890 

If you still get errors, could you reply back with the following details?
  1. A screenshot of your Customer ID above your email address in the top right corner of any page after you sign into your AdWords account.
  2. The emailid that you use to make API calls.
  3. Copy of your googleads.yaml file.
You may opt to reply privately to author.

Dhanya Sundararaju (AdWords API Team)

unread,
Feb 15, 2018, 3:27:42 PM2/15/18
to AdWords API Forum
Hi ,

From your googleads.yaml file, it looks like your client customer id was commented out. Could you please uncomment it as below and retry?

#############################################################################
# Optional Fields #
#############################################################################
client_customer_id: 737-186-2754
# user_agent: INSERT_USER_AGENT_HERE
# partial_failure: True

santiag...@gmail.com

unread,
Feb 16, 2018, 10:28:27 AM2/16/18
to AdWords API Forum
Hello! I was able to solve this problem, but now I find another ... It seems there was no solution ...

C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\python.exe C:/Users/Lucia/adwords_python3_examples_10.0.0/v201710/basic_operations/get_campaigns.py
WARNING:googleads.common:Your default encoding, cp1252, is not UTF-8. Please run this script with UTF-8 encoding to avoid errors.
INFO:oauth2client.client:Refreshing access_token
INFO:oauth2client.client:Failed to retrieve access token: {
  "error" : "invalid_client",
  "error_description" : "The OAuth client was not found."
}
Traceback (most recent call last):
  File "C:/Users/Lucia/adwords_python3_examples_10.0.0/v201710/basic_operations/get_campaigns.py", line 72, in <module>
    main(adwords_client)
  File "C:/Users/Lucia/adwords_python3_examples_10.0.0/v201710/basic_operations/get_campaigns.py", line 55, in main
    page = campaign_service.get(selector)
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\site-packages\googleads\common.py", line 762, in MakeSoapRequest
    self._header_handler.SetHeaders(self.suds_client)
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\site-packages\googleads\adwords.py", line 561, in SetHeaders
    http_headers = self._adwords_client.oauth2_client.CreateHttpHeader()
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\site-packages\googleads\oauth2.py", line 211, in CreateHttpHeader
    self.Refresh()
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\site-packages\googleads\oauth2.py", line 226, in Refresh
    self.proxy_config.disable_certificate_validation)))
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\site-packages\oauth2client\client.py", line 545, in refresh
    self._refresh(http)
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\site-packages\oauth2client\client.py", line 749, in _refresh
    self._do_refresh_request(http)
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\site-packages\oauth2client\client.py", line 819, in _do_refresh_request
    raise HttpAccessTokenRefreshError(error_msg, status=resp.status)
oauth2client.client.HttpAccessTokenRefreshError: invalid_client: The OAuth client was not found.

Process finished with exit code 1

Dhanya Sundararaju (AdWords API Team)

unread,
Feb 16, 2018, 5:15:23 PM2/16/18
to AdWords API Forum
Hi,

Could you confirm that the client_id field in your googleads.yaml is the same as the one in your project within Google API Console Credentials page? Please refer this guide for better clarity and let me know if you have further questions.
Message has been deleted

santiag...@gmail.com

unread,
Feb 19, 2018, 7:38:28 AM2/19/18
to AdWords API Forum
Hello! I just created all the credentials again, and reconfigured all the API files again, to avoid any inconvenience.
I just came across another problem, which tells me that the developer token was not approved.
However, it is a test account, and I read that the developer token does not need to be validated in a DEMO account.
What can be the way to test my API without having to wait for the application to be approved?
Thank you.

C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\python.exe C:/Users/Lucia/adwords_python3_examples_10.0.0/v201710/basic_operations/get_campaigns.py
WARNING:googleads.common:Your default encoding, cp1252, is not UTF-8. Please run this script with UTF-8 encoding to avoid errors.
INFO:oauth2client.client:Refreshing access_token
INFO:googleads.common:Request summary - {'methodName': get, 'clientCustomerId': 737-186-2754}
DEBUG:suds.transport.http:sending:
HEADERS: {'Content-Type': 'text/xml; charset=utf-8', 'SOAPAction': b'""', 'Authorization': 'REDACTED', 'Content-type': 'text/xml; charset=utf-8', 'Soapaction': b'""'}
MESSAGE:
<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="https://adwords.google.com/api/adwords/cm/v201710" xmlns:ns0="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://adwords.google.com/api/adwords/cm/v201710"><SOAP-ENV:Header><tns:RequestHeader><tns:clientCustomerId>737-186-2754</tns:clientCustomerId><tns:developerToken>REDACTED</tns:developerToken><tns:userAgent>unknown (AwApi-Python, googleads/9.0.0, Python/3.6.2)</tns:userAgent><tns:validateOnly>false</tns:validateOnly><tns:partialFailure>false</tns:partialFailure></tns:RequestHeader></SOAP-ENV:Header><ns0:Body><ns1:get><ns1:serviceSelector><ns1:fields>Id</ns1:fields><ns1:fields>Name</ns1:fields><ns1:fields>Status</ns1:fields><ns1:paging><ns1:startIndex>0</ns1:startIndex><ns1:numberResults>100</ns1:numberResults></ns1:paging></ns1:serviceSelector></ns1:get></ns0:Body></SOAP-ENV:Envelope>
INFO:googleads.common:Response summary - {'requestId': 0005658febd10ca10a37ab13ce01ab0c, 'responseTime': 167, 'serviceName': CampaignService, 'methodName': get, 'operations': 1, 'isFault': True, 'faultMessage': "[QuotaCheckError.DEVELOPER_TOKEN_NOT_APPROVED @ ; trigger:'<null>']"}
ERROR:suds.client:<suds.sax.document.Document object at 0x063F5890>
WARNING:googleads.common:Response summary - {'requestId': 0005658febd10ca10a37ab13ce01ab0c, 'responseTime': 167, 'serviceName': CampaignService, 'methodName': get, 'operations': 1, 'isFault': True, 'faultMessage': "[QuotaCheckError.DEVELOPER_TOKEN_NOT_APPROVED @ ; trigger:'<null>']"}
INFO:googleads.common:SOAP response:
<?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/v201710">
         <requestId>0005658febd10ca10a37ab13ce01ab0c</requestId>
         <serviceName>CampaignService</serviceName>
         <methodName>get</methodName>
         <operations>1</operations>
         <responseTime>167</responseTime>
      </ResponseHeader>
   </soap:Header>
   <soap:Body>
      <soap:Fault>
         <faultcode>soap:Client</faultcode>
         <faultstring>[QuotaCheckError.DEVELOPER_TOKEN_NOT_APPROVED @ ; trigger:&apos;&lt;null&gt;&apos;]</faultstring>
         <detail>
            <ApiExceptionFault xmlns="https://adwords.google.com/api/adwords/cm/v201710">
               <message>[QuotaCheckError.DEVELOPER_TOKEN_NOT_APPROVED @ ; trigger:&apos;&lt;null&gt;&apos;]</message>
               <ApplicationException.Type>ApiException</ApplicationException.Type>
               <errors xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="QuotaCheckError">
                  <fieldPath/>
                  <trigger>&lt;null&gt;</trigger>
                  <errorString>QuotaCheckError.DEVELOPER_TOKEN_NOT_APPROVED</errorString>
                  <ApiError.Type>QuotaCheckError</ApiError.Type>
                  <reason>DEVELOPER_TOKEN_NOT_APPROVED</reason>
               </errors>
            </ApiExceptionFault>
         </detail>
      </soap:Fault>
   </soap:Body>
</soap:Envelope>
Traceback (most recent call last):
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\site-packages\googleads\util.py", line 123, in PatchedHttpTransportSend
    fp = self.u2open(u2request)
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\site-packages\suds\transport\http.py", line 132, in u2open
    return url.open(u2request, timeout=tm)
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 532, in open
    response = meth(req, response)
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 642, in http_response
    'http', request, response, code, msg, hdrs)
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 570, in error
    return self._call_chain(*args)
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 504, in _call_chain
    result = func(*args)
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 650, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 500: Internal Server Error

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\site-packages\suds\client.py", line 613, in send
    reply = self.options.transport.send(request)
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\site-packages\googleads\util.py", line 134, in PatchedHttpTransportSend
    raise suds.transport.TransportError(e.msg, e.code, e.fp)
suds.transport.TransportError: Internal Server Error

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:/Users/Lucia/adwords_python3_examples_10.0.0/v201710/basic_operations/get_campaigns.py", line 72, in <module>
    main(adwords_client)
  File "C:/Users/Lucia/adwords_python3_examples_10.0.0/v201710/basic_operations/get_campaigns.py", line 55, in main
    page = campaign_service.get(selector)
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\site-packages\googleads\common.py", line 767, in MakeSoapRequest
    self._packer) for arg in args])
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\site-packages\suds\client.py", line 521, in __call__
    return client.invoke(args, kwargs)
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\site-packages\suds\client.py", line 581, in invoke
    result = self.send(soapenv)
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\site-packages\suds\client.py", line 619, in send
    description=tostr(e), original_soapenv=original_soapenv)
  File "C:\Users\Lucia\AppData\Local\Programs\Python\Python36-32\lib\site-packages\suds\client.py", line 670, in process_reply
    raise WebFault(fault, replyroot)
suds.WebFault: Server raised fault: '[QuotaCheckError.DEVELOPER_TOKEN_NOT_APPROVED @ ; trigger:'<null>']'

Process finished with exit code 1

Dhanya Sundararaju (AdWords API Team)

unread,
Feb 19, 2018, 11:45:21 AM2/19/18
to AdWords API Forum
Hi,

I was able to pull up your account 737-186-2754. Looks like it is not a test account. You also would need a test manager account to use the API until your Production Developer Token is approved. Please refer this guide for steps on how to create test accounts. Also, could you let me know the MCC id of the Developer token used in your googleads.yaml file? Please let me know if you have further questions.

santiag...@gmail.com

unread,
Feb 21, 2018, 7:14:42 AM2/21/18
to AdWords API Forum
Hello! I had not noticed that it was necessary to have a test account to use the API. Now create a test account, and I was able to connect perfectly. Thank you very much for the help!

olek.t...@gmail.com

unread,
Feb 22, 2018, 5:29:35 AM2/22/18
to AdWords API Forum
Hi Dhanya,

I'm having similar issue as Santiago. Please see summary of things I've already accomplished for my first API Call:

(I'm using Python 3.6 version for API calls.) 

AdWords
1) I've obtained developer token for test account
2) I've created a test MCC account
3) I've created adowrds account within my test MCC account 
4) I've also created campaign, ad groups and keywords within adwords account 

API Console
1) I've got up client ID
2) I've got client secret

Refresh Token
1) I've successfully obtained refresh token. 

Yaml file:

1) I've filled the following orange fields (I've starred out my real info though):

developer_token: **************

#############################################################################
# Optional Fields #
#############################################################################
client_customer_id: ************

# user_agent: INSERT_USER_AGENT_HERE
# partial_failure: True
# validate_only: True
#############################################################################
# OAuth2 Configuration #
# Below you may provide credentials for either the installed application or #
# service account flows. Remove or comment the lines for the flow you're #
# not using. #
#############################################################################
# The following values configure the client for the installed application
# flow.
client_id: 93**************
client_secret: U*********
refresh_token: U*********
 
Get Campaigns

- I'm trying to run get_campaigns.py for my first API call. But I always receive this error:

charmProjects\Project_1_Test\venv\Scripts\python.exe C:/Users/OYarse01/PycharmProjects/Project_1_Test/get_campaign.py
WARNING
:googleads.common:Your default encoding, cp1252, is not UTF-8. Please run this script with UTF-8 encoding to avoid errors.

DEBUG
:suds.transport.http:opening (https://adwords.google.com/api/adwords/cm/v201710/CampaignService?wsdl)
INFO
:oauth2client.client:Refreshing access_token
INFO
:googleads.common:Request summary - {'methodName': get}
Traceback (most recent call last):

 
File "C:/Users/OYarse01/PycharmProjects/Project_1_Test/get_campaign.py", line 69, in <module>
    main
(adwords_client)
 
File "C:/Users/OYarse01/PycharmProjects/Project_1_Test/get_campaign.py", line 52, in main
    page
= campaign_service.get(selector)
 
File "C:\Users\OYarse01\PycharmProjects\Project_1_Test\venv\lib\site-packages\googleads\common.py", line 779, in MakeSoapRequest

   
self._packer) for arg in args])

 
File "C:\Users\OYarse01\PycharmProjects\Project_1_Test\venv\lib\site-packages\suds\client.py", line 521, in __call__
   
return client.invoke(args, kwargs)
 
File "C:\Users\OYarse01\PycharmProjects\Project_1_Test\venv\lib\site-packages\suds\client.py", line 581, in invoke
    result
= self.send(soapenv)
 
File "C:\Users\OYarse01\PycharmProjects\Project_1_Test\venv\lib\site-packages\suds\client.py", line 613, in send
    reply
= self.options.transport.send(request)
 
File "C:\Users\OYarse01\PycharmProjects\Project_1_Test\venv\lib\site-packages\googleads\util.py", line 121, in PatchedHttpTransportSend
    suds
.transport.http.log.debug('sending:\n%s', request)
 
File "C:\ProgramData\Anaconda3\Lib\logging\__init__.py", line 1289, in debug
   
self._log(DEBUG, msg, args, **kwargs)
 
File "C:\ProgramData\Anaconda3\Lib\logging\__init__.py", line 1437, in _log
   
self.handle(record)
 
File "C:\ProgramData\Anaconda3\Lib\logging\__init__.py", line 1446, in handle
   
if (not self.disabled) and self.filter(record):
 
File "C:\ProgramData\Anaconda3\Lib\logging\__init__.py", line 713, in filter
    result
= f.filter(record)
 
File "C:\Users\OYarse01\PycharmProjects\Project_1_Test\venv\lib\site-packages\googleads\util.py", line 302, in filter
   
self._REDACTED, msg)
TypeError: cannot use a string pattern on a bytes-like object





Process finished with exit code 1



I would appreciate your help on this.

Thanks,

Olek

Dhanya Sundararaju (AdWords API Team)

unread,
Feb 22, 2018, 3:11:10 PM2/22/18
to AdWords API Forum
Hi Olek,

Your summary of steps look fine to me. However, in your output, 
INFO:googleads.common:Request summary - {'methodName': get} should have been
INFO:googleads.common:Request summary - {'clientCustomerId': ***-***-****, 'methodName': get} where ***-***-**** refers to your client customer id which means the client customer id is not being read properly from your googleads.yaml file. In order to confirm that your issue not environment related, could you run get_campaigns.py from the googleads library and send back the complete SOAP request and response?

olek.t...@gmail.com

unread,
Feb 23, 2018, 11:08:43 AM2/23/18
to AdWords API Forum
Hi Dhanya,

If I'm not wrong SOAP request and response is something I get from the
following this link (https:
//adwords.google.com/api/adwords/cm/v201710/CampaignService?wsdl) in DEBUG
part of error message:

WARNING:googleads.common:Your default encoding, cp1252, is not UTF-8. Please
run this script with UTF-8 encoding to avoid errors.
DEBUG:suds.transport.http:opening (https:
//adwords.google.com/api/adwords/cm/v201710/CampaignService?wsdl)
INFO:oauth2client.client:Refreshing access_token

INFO:googleads.common:Request summary - {'methodName': get}

Traceback (most recent call last):

If this is wrong please let me know how to get SOAP request and response.

This XML file does not appear to have any style information associated with
it. The document tree is shown below.

<!-- Generated file, do not edit -->
<!-- Copyright 2018 Google Inc. All Rights Reserved -->
<wsdl:definitions xmlns:tns=
"https://adwords.google.com/api/adwords/cm/v201710" xmlns:wsdl=
"http://schemas.xmlsoap.org/wsdl/"xmlns:wsdlsoap=
"http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd=
"http://www.w3.org/2001/XMLSchema" targetNamespace=
"https://adwords.google.com/api/adwords/cm/v201710">

<wsdl:types>

<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:jaxb=
"http://java.sun.com/xml/ns/jaxb" xmlns:tns=
"https://adwords.google.com/api/adwords/cm/v201710"elementFormDefault=
"qualified" jaxb:version="1.0" targetNamespace=
"https://adwords.google.com/api/adwords/cm/v201710">

<annotation>

<appinfo>

<jaxb:globalBindings typesafeEnumMaxMembers="999999"/>
</appinfo>
</annotation>
<complexType name="AdxError">

<annotation>

<documentation>
Errors that are thrown when a non-AdX feature is accessed by an AdX customer
.
</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason" type=
"tns:AdxError.Reason">

<annotation>

<documentation>The error reason represented by an enum.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType abstract="true" name="ApiError">

<annotation>

<documentation>
The API error base class that provides details about an error that occurred
while processing a service request. <p>The OGNL field path is provided for
parsers to identify the request data element that may have caused the error
.</p>
</documentation>
</annotation>
<sequence>

<element maxOccurs="1" minOccurs="0" name="fieldPath" type="xsd:string">

<annotation>

<documentation>The OGNL field path to identify cause of error.</
documentation>
</annotation>
</element>
<element maxOccurs="unbounded" minOccurs="0" name="fieldPathElements" type=
"tns:FieldPathElement">

<annotation>

<documentation>
A parsed copy of the field path. For example, the field path
"operations[1].operand" corresponds to this list: {FieldPathElement(field =
"operations", index = 1), FieldPathElement(field = "operand", index = null
)}.
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="trigger" type="xsd:string">

<annotation>

<documentation>The data that caused the error.</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="errorString" type="xsd:string">

<annotation>

<documentation>
A simple string representation of the error and reason.
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="ApiError.Type" type="xsd:string">

<annotation>

<documentation>
Indicates that this instance is a subtype of ApiError. Although this field
is returned in the response, it is ignored on input and cannot be selected.
Specify xsi:type instead.
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="ApiException">

<annotation>

<documentation>
Exception class for holding a list of service errors.
</documentation>
</annotation>
<complexContent>

<extension base="tns:ApplicationException">

<sequence>

<element maxOccurs="unbounded" minOccurs="0" name="errors" type=
"tns:ApiError">

<annotation>

<documentation>List of errors.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="ApplicationException">

<annotation>

<documentation>Base class for exceptions.</documentation>
</annotation>
<sequence>

<element maxOccurs="1" minOccurs="0" name="message" type="xsd:string">

<annotation>

<documentation>Error message.</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="ApplicationException.Type" type=
"xsd:string">

<annotation>

<documentation>
Indicates that this instance is a subtype of ApplicationException. Although
this field is returned in the response, it is ignored on input and cannot
be selected. Specify xsi:type instead.
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="LabelAttribute">

<annotation>

<documentation>Base type for AdWords label attributes.</documentation>
</annotation>
<sequence>

<element maxOccurs="1" minOccurs="0" name="LabelAttribute.Type"
type="xsd:string">

<annotation>

<documentation>
Indicates that this instance is a subtype of LabelAttribute. Although this
field is returned in the response, it is ignored on input and cannot be
selected. Specify xsi:type instead.
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="AuthenticationError">

<annotation>

<documentation>Errors returned when Authentication failed.</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason"
type="tns:AuthenticationError.Reason">

<annotation>

<documentation>The error reason represented by an enum.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="AuthorizationError">

<annotation>

<documentation>
Errors encountered when trying to authorize a user.
</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason" type=
"tns:AuthorizationError.Reason">

<annotation>

<documentation>The error reason represented by an enum.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="BiddingErrors">

<annotation>

<documentation>
Represents error codes for bidding strategy entities.
</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason" type=
"tns:BiddingErrors.Reason">

<annotation>

<documentation>The error reason represented by an enum.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType abstract="true" name="BiddingScheme">

<annotation>

<documentation>
Base class for all bidding schemes. <span class="constraint AdxEnabled">This
is disabled for AdX.</span>
</documentation>
</annotation>
<sequence>

<element maxOccurs="1" minOccurs="0" name="BiddingScheme.Type" type=
"xsd:string">

<annotation>

<documentation>
Indicates that this instance is a subtype of BiddingScheme. Although this
field is returned in the response, it is ignored on input and cannot be
selected. Specify xsi:type instead.
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="BiddingStrategyConfiguration">

<annotation>

<documentation>
Encapsulates the information about bids and bidding strategies. <p
class="note"><b>Note:</b> Starting with v201705, bidding strategies can
only be set on campaigns. In earlier versions, bidding strategies can be set
on campaigns, ad groups and ad group criteria. <p>A bidding strategy can be
set using one of the following: <ul> <li>{@linkplain
BiddingStrategyConfiguration#biddingScheme bidding scheme}</li>
<li>{@linkplain BiddingStrategyConfiguration#biddingStrategyType bidding
strategy type}</li> <li>{@linkplain
BiddingStrategyConfiguration#biddingStrategyId bidding strategy ID} for
flexible bid strategies.</li> </ul> <p>If the bidding strategy type is
used, then schemes are created using default values. <p>Bids can be set
only on ad groups and ad group criteria. They cannot be set on campaigns.
Multiple bids can be set at the same time. Only the bids that apply to the
effective bidding strategy will be used. Effective bidding strategy is
considered to be the directly attached strategy or inherited strategy from
above level(s) when there is no directly attached strategy. <p>For more
information on flexible bidding, visit the <a
href="https://support.google.com/adwords/answer/2979071">Help Center</a>.
</documentation>
</annotation>
<sequence>

<element maxOccurs="1" minOccurs="0" name="biddingStrategyId" type=
"xsd:long">

<annotation>

<documentation>
Id of the bidding strategy to be associated with the campaign, ad group or
ad group criteria. A bidding strategy is created using the
BiddingStrategyService ADD operation and is assigned a BiddingStrategyId.
The BiddingStrategyId can be shared across campaigns, ad groups and ad group
criteria. <p>Starting with v201705, this field cannot be set at the ad group
or ad group criterion level. <span class="constraint Selectable">This field
can be selected using the value "BiddingStrategyId".</span><span class="constraint
Filterable">This field can be filtered on.</span> <span class="constraint
AdxEnabled">This is disabled for AdX.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="biddingStrategyName"
type="xsd:string">

<annotation>

<documentation>
Name of the bidding strategy. This is applicable only for flexible bidding
strategies. <span class="constraint Selectable">This field can be selected
using the value "BiddingStrategyName".</span><span class="constraint
Filterable">This field can be filtered on.</span> <span class="constraint
ReadOnly">This field is read only and will be ignored when sent to the API
.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="biddingStrategyType"
type="tns:BiddingStrategyType">

<annotation>

<documentation>
The type of the bidding strategy to be attached. <p>For details on
portfolio vs. standard availability, see the <a href="https://developers.
google.com/adwords/api/docs/guides/bidding">bidding guide</a>. <p>Starting
with v201705, this field cannot be set at the ad group or ad group
criterion level to any value other than {@code BiddingStrategyType.NONE}.
<span class="constraint Selectable">This field can be selected using the
value "BiddingStrategyType".</span><span class="constraint Filterable">This
field can be filtered on.</span> <span class="constraint CampaignType">This
field may only be set to the values: MANUAL_CPC, ENHANCED_CPC, TARGET_ROAS,
TARGET_SPEND for campaign channel type SHOPPING.</span> <span class="constraint
CampaignType">This field may only be set to the values: MANUAL_CPC,
MANUAL_CPM, TARGET_SPEND, ENHANCED_CPC, TARGET_CPA, TARGET_ROAS,
MAXIMIZE_CONVERSIONS for campaign channel type DISPLAY.</span> <span class="constraint
CampaignType">This field may only be set to the values: MANUAL_CPC,
TARGET_CPA for campaign channel type DISPLAY with campaign channel subtype
DISPLAY_MOBILE_APP.</span> <span class="constraint CampaignType">This field
may only be set to the values: MANUAL_CPC, MAXIMIZE_CONVERSIONS, NONE,
PAGE_ONE_PROMOTED, TARGET_CPA, TARGET_OUTRANK_SHARE, TARGET_ROAS,
TARGET_SPEND for campaign channel subtype SEARCH_MOBILE_APP.</span> <span
class="constraint CampaignType">This field may only be set to the values:
TARGET_CPA, TARGET_ROAS for campaign channel type MULTI_CHANNEL.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="biddingStrategySource" type="tns:
BiddingStrategySource">

<annotation>

<documentation>
Indicates where the bidding strategy is associated i.e. campaign, ad group
or ad group criterion. <span class="constraint ReadOnly">This field is read
only and will be ignored when sent to the API.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="biddingScheme" type="tns:
BiddingScheme">

<annotation>

<documentation>
The bidding strategy metadata. Bidding strategy can be associated using the
{@linkplain BiddingStrategyConfiguration#biddingStrategyType} or the
bidding scheme. <p>For details on portfolio vs. standard availability, see
the <a href="https://developers.google.com/adwords/api/docs/guides/bidding">bidding
guide</a>. <p>Starting with v201705, this field cannot be set at the ad
group or ad group criterion level.
</documentation>
</annotation>
</element>
<element maxOccurs="unbounded" minOccurs="0" name="bids" type="tns:Bids">

<annotation>

<documentation>
Specifies the bids. Bids can be set only on ad groups and ad group
criteria. Bids cannot be set on campaign. Default CPC and CPM bid values
will be set if they are not provided during {@linkplain AdGroup} creation.
Default CPC and CPM values are minimal billable amounts in local
currencies. For example, for US Dollars CPC and CPM default values are
$0.01 and $0.01, respectively.
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="targetRoasOverride" type=
"xsd:double">

<annotation>

<documentation>
The target return on average spend (ROAS). This target can only be set on
ad groups. If this ad group's effective bidding strategy is a standard
{@code TARGET_ROAS} strategy attached to the campaign, then the target
overrides the target roas specified in the campaign's bidding strategy.
Otherwise, this value is ignored. <span class="constraint CampaignType">This
field may not be set.</span> <span class="constraint InRange">This field
must be between 0.01 and 1000.0, inclusive.</span>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType abstract="true" name="Bids">

<annotation>

<documentation>Base class for all bids.</documentation>
</annotation>
<sequence>

<element maxOccurs="1" minOccurs="0" name="Bids.Type" type="xsd:string">

<annotation>

<documentation>
Indicates that this instance is a subtype of Bids. Although this field is
returned in the response, it is ignored on input and cannot be selected.
Specify xsi:type instead.
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="Budget">

<annotation>

<documentation>
Budgets are used for managing the amount of money spent on AdWords.
</documentation>
</annotation>
<sequence>

<element maxOccurs="1" minOccurs="0" name="budgetId" type="xsd:long">

<annotation>

<documentation>
A Budget is created using the BudgetService ADD operation and is assigned a
BudgetId. The BudgetId is used when modifying the Budget with BudgetService,
or associating the Budget to a Campaign with CampaignService. A BudgetId
can be shared across different campaigns--the system will then allocate the
Budget among the Campaigns to get the optimum result. <span class="constraint
Selectable">This field can be selected using the value "BudgetId".</span><span
class="constraint Filterable">This field can be filtered on.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="name" type="xsd:string">

<annotation>

<documentation>
Name of the Budget. When creating a Budget through BudgetService, every
explicitly shared Budget must have a non-null non-empty name. In addition,
all explicitly shared Budget names owned by an account must be distinct.
Budgets that are not explicitly shared derive their name from the attached
Campaign's name. <span class="constraint Selectable">This field can be
selected using the value "BudgetName".</span> <span class="constraint
ReadOnly">This field is read only and will be ignored when sent to the API
for the following {@link Operator}s: REMOVE.</span> <span class="constraint
StringLength">The length of this string should be between 1 and 255,
inclusive, in UTF-8 bytes, (trimmed).</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="amount" type="tns:Money">

<annotation>

<documentation>
Amount of budget in the local currency for the account. This value
represents an average daily budget amount; the actual daily costs might
vary. See <a href="https://support.google.com/adwords/answer/1704443">Charges
and your daily budget</a>. <span class="constraint Selectable">This field
can be selected using the value "Amount".</span><span class="constraint
Filterable">This field can be filtered on.</span> <span class="constraint
InRange">This field must be greater than or equal to 1.</span> <span class="constraint
ReadOnly">This field is read only and will be ignored when sent to the API
for the following {@link Operator}s: REMOVE.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="deliveryMethod" type="tns:Budget.
BudgetDeliveryMethod">

<annotation>

<documentation>
Delivery method for the Budget which determines the rate at which the
Budget is spent. Defaults to STANDARD and can be changed through
BudgetService ADD or SET operations. <span class="constraint Selectable">This
field can be selected using the value "DeliveryMethod".</span> <span class="constraint
ReadOnly">This field is read only and will be ignored when sent to the API
for the following {@link Operator}s: REMOVE.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="referenceCount" type="xsd:int">

<annotation>

<documentation>
Number of campaigns actively using this budget. This field is only
populated for Get operations. <span class="constraint Selectable">This
field can be selected using the value "BudgetReferenceCount".</span><span
class="constraint Filterable">This field can be filtered on.</span> <span
class="constraint ReadOnly">This field is read only and will be ignored
when sent to the API.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="isExplicitlyShared" type="xsd:
boolean">

<annotation>

<documentation>
If true, this budget was created with the purpose of sharing this budget
across one or more campaigns. <p>If false, this budget was created with the
intention to be dedicatedly used with a single campaign, and the Budget's
name and status will stay in the sync with the associated Campaign's name
and status. Attempting to share this budget with a second Campaign will
result in an error.</p> <span class="constraint Selectable">This field can
be selected using the value "IsBudgetExplicitlyShared".</span> <span class="constraint
ReadOnly">This field is read only and will be ignored when sent to the API
for the following {@link Operator}s: REMOVE.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="status" type="tns:Budget.
BudgetStatus">

<annotation>

<documentation>
<span class="constraint Selectable">This field can be selected using the
value "BudgetStatus".</span><span class="constraint Filterable">This field
can be filtered on.</span> <span class="constraint ReadOnly">This field is
read only and will be ignored when sent to the API.</span>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="BudgetError">

<annotation>

<documentation>
A list of all the error codes being used by the common budget domain
package.
</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason" type="tns:BudgetError.
Reason">

<annotation>

<documentation>The error reason represented by an enum.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="Campaign">

<annotation>

<documentation>Data representing an AdWords campaign.</documentation>
</annotation>
<sequence>

<element maxOccurs="1" minOccurs="0" name="id" type="xsd:long">

<annotation>

<documentation>
ID of this campaign. <span class="constraint Selectable">This field can be
selected using the value "Id".</span><span class="constraint Filterable">This
field can be filtered on.</span> <span class="constraint ReadOnly">This
field is read only and will be ignored when sent to the API for the
following {@link Operator}s: ADD.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="campaignGroupId" type="xsd:long">

<annotation>

<documentation>
Id of the campaign group this campaign belongs to. <span class="constraint
Selectable">This field can be selected using the value "CampaignGroupId".</span><span
class="constraint Filterable">This field can be filtered on.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="name" type="xsd:string">

<annotation>

<documentation>
Name of this campaign. This field is required and should not be {@code
null} for ADD operations. For SET and REMOVE operations, this can be used
to address the campaign by name when the campaign is ENABLED or PAUSED.
Removed campaigns cannot be addressed by name. If you wish to rename a
campaign, you must provide the ID. <span class="constraint Selectable">This
field can be selected using the value "Name".</span><span class="constraint
Filterable">This field can be filtered on.</span> <span class="constraint
MatchesRegex">Campaign names must not contain any null (code point 0x0), NL
line feed (code point 0xA) or carriage return (code point 0xD) characters.
This is checked by the regular expression '[^\x00\x0A\x0D]*'.</span> <span
class="constraint StringLength">This string must not be empty.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="status" type="tns:CampaignStatus
">

<annotation>

<documentation>
Status of this campaign. On add, defaults to {@code ENABLED}. <span class="constraint
Selectable">This field can be selected using the value "Status".</span><span
class="constraint Filterable">This field can be filtered on.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="servingStatus" type="tns:
ServingStatus">

<annotation>

<documentation>
Serving status. <span class="constraint Selectable">This field can be
selected using the value "ServingStatus".</span><span class="constraint
Filterable">This field can be filtered on.</span> <span class="constraint
ReadOnly">This field is read only and will be ignored when sent to the
API.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="startDate" type="xsd:string">

<annotation>

<documentation>
Date the campaign begins. On add, defaults to the current day in the parent
account's local timezone. The date's format should be YYYYMMDD. <span
class="constraint Selectable">This field can be selected using the value "
StartDate".</span><span class="constraint Filterable">This field can be
filtered on.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="endDate" type="xsd:string">

<annotation>

<documentation>
Date the campaign ends. On add, defaults to <code>20371230</code>, which
means the campaign will run indefinitely. To set an existing campaign to
run indefinitely, set this field to <code>203712<b>30</b></code>. The
date's format should be YYYYMMDD. <span class="constraint Selectable">This
field can be selected using the value "EndDate".</span><span class="constraint
Filterable">This field can be filtered on.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="budget" type="tns:Budget">

<annotation>

<documentation>
Current base budget of campaign; default if no custom budgets are enabled.
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="conversionOptimizerEligibility"
type="tns:ConversionOptimizerEligibility">

<annotation>

<documentation>
<span class="constraint ReadOnly">This field is read only and will be
ignored when sent to the API.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="adServingOptimizationStatus"
type="tns:AdServingOptimizationStatus">

<annotation>

<documentation>
Ad serving optimization status. <span class="constraint Selectable">This
field can be selected using the value "AdServingOptimizationStatus".</span>
<span class="constraint CampaignType">This field may only be set to
CONVERSION_OPTIMIZE for campaign channel subtype
UNIVERSAL_APP_CAMPAIGN.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="frequencyCap" type="tns:
FrequencyCap">

<annotation>

<documentation>
Frequency cap for this campaign. <span class="constraint CampaignType">This
field may not be set for campaign channel subtypes: UNIVERSAL_APP_CAMPAIGN,
SEARCH_MOBILE_APP.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="unbounded" minOccurs="0" name="settings" type="tns:
Setting">

<annotation>

<documentation>
List of settings for the campaign. <span class="constraint Selectable">This
field can be selected using the value "Settings".</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="advertisingChannelType" type="tns
:AdvertisingChannelType">

<annotation>

<documentation>
The primary serving target for ads within this campaign. The targeting
options can be refined in NetworkSetting. May only be set for new
campaigns. This field is required and should not be {@code null} when it is
contained within {@link Operator}s : ADD <span class="constraint Selectable">This
field can be selected using the value "AdvertisingChannelType".</span><span
class="constraint Filterable">This field can be filtered on.</span> <span
class="constraint ReadOnly">This field is read only and will be ignored
when sent to the API for the following {@link Operator}s: SET.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="advertisingChannelSubType" type="
tns:AdvertisingChannelSubType">

<annotation>

<documentation>
Optional refinement of advertisingChannelType. Must be a valid sub-type of
the parent channel type. May only be set for new campaigns and cannot be
changed once set. <span class="constraint Selectable">This field can be
selected using the value "AdvertisingChannelSubType".</span><span class="constraint
Filterable">This field can be filtered on.</span> <span class="constraint
ReadOnly">This field is read only and will be ignored when sent to the API
for the following {@link Operator}s: SET.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="networkSetting" type="tns:
NetworkSetting">

<annotation>

<documentation>
Network settings for the campaign indicating where the campaign will serve.
</documentation>
</annotation>
</element>
<element maxOccurs="unbounded" minOccurs="0" name="labels" type="tns:Label">

<annotation>

<documentation>
Labels that are attached to the campaign. To associate an existing {@link
Label} to an existing {@link Campaign}, use {@link
CampaignService#mutateLabel} with the ADD operator. To remove an associated
{@link Label} from the {@link Campaign}, use {@link
CampaignService#mutateLabel} with the REMOVE operator. To filter on {@link
Label}s, use one of {@link Predicate.Operator#CONTAINS_ALL}, {@link
Predicate.Operator#CONTAINS_ANY}, {@link Predicate.Operator#CONTAINS_NONE}
operators with a list of {@link Label} ids. <span class="constraint
Selectable">This field can be selected using the value "Labels".</span><span
class="constraint Filterable">This field can be filtered on.</span> <span
class="constraint ReadOnly">This field is read only and will be ignored
when sent to the API for the following {@link Operator}s: REMOVE and
SET.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="biddingStrategyConfiguration"
type="tns:BiddingStrategyConfiguration">

<annotation>

<documentation>
Bidding configuration for this campaign. To change an existing campaign's
bidding strategy, set the {@link
BiddingStrategyConfiguration#biddingStrategyType} or {@link
BiddingStrategyConfiguration#biddingScheme}. This field is required and
should not be {@code null} when it is contained within {@link Operator}s :
ADD
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="campaignTrialType" type="tns:
CampaignTrialType">

<annotation>

<documentation>
Indicates if this campaign is a normal campaign, a draft campaign, or a
trial campaign. <span class="constraint Selectable">This field can be
selected using the value "CampaignTrialType".</span><span class="constraint
Filterable">This field can be filtered on.</span> <span class="constraint
ReadOnly">This field is read only and will be ignored when sent to the
API.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="baseCampaignId" type="xsd:long">

<annotation>

<documentation>
ID of the base campaign of the draft or trial campaign. For base campaigns,
this is equal to the campaign ID. This field is only returned on get
requests. <span class="constraint Selectable">This field can be selected
using the value "BaseCampaignId".</span><span class="constraint Filterable">This
field can be filtered on.</span> <span class="constraint ReadOnly">This
field is read only and will be ignored when sent to the API.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="unbounded" minOccurs="0" name="forwardCompatibilityMap"
type="tns:String_StringMapEntry">

<annotation>

<documentation>
This Map provides a place to put new features and settings in older
versions of the AdWords API in the rare instance we need to introduce a new
feature in an older version. It is presently unused. Do not set a value.
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="trackingUrlTemplate" type="xsd:
string">

<annotation>

<documentation>
URL template for constructing a tracking URL. <p>On update, empty string
("") indicates to clear the field. <span class="constraint Selectable">This
field can be selected using the value "TrackingUrlTemplate".</span><span
class="constraint Filterable">This field can be filtered on.</span> <span
class="constraint CampaignType">This field may not be set for campaign
channel subtype UNIVERSAL_APP_CAMPAIGN.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="urlCustomParameters" type="tns:
CustomParameters">

<annotation>

<documentation>
A list of mappings to be used for substituting URL custom parameter tags in
the trackingUrlTemplate, finalUrls, and/or finalMobileUrls. <span class="constraint
Selectable">This field can be selected using the value "UrlCustomParameters".</span>
<span class="constraint CampaignType">This field may not be set for
campaign channel subtype UNIVERSAL_APP_CAMPAIGN.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="vanityPharma" type="tns:
VanityPharma">

<annotation>

<documentation>
Describes how unbranded pharma ads will be displayed. <span class="constraint
CampaignType">This field may not be set for campaign channel subtype
UNIVERSAL_APP_CAMPAIGN.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="selectiveOptimization" type="tns:
SelectiveOptimization">

<annotation>

<documentation>
Selective optimization setting for this campaign, which includes a set of
conversion types to optimize this campaign towards. <span class="constraint
Selectable">This field can be selected using the value "
SelectiveOptimization".</span> <span class="constraint CampaignType">This
field may only be set for campaign channel type MULTI_CHANNEL.</span> <span
class="constraint CampaignType">This field may not be set.</span>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="CampaignError">

<annotation>

<documentation>Base error class for Campaign Service.</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason" type="tns:CampaignError.
Reason">

<annotation>

<documentation>The error reason represented by an enum.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="CampaignLabel">

<annotation>

<documentation>Manages the labels associated with a
campaign.</documentation>
</annotation>
<sequence>

<element maxOccurs="1" minOccurs="0" name="campaignId" type="xsd:long">

<annotation>

<documentation>
The id of the campaign that the label is applied to. <span class="constraint
Required">This field is required and should not be {@code null} when it is
contained within {@link Operator}s : ADD, REMOVE.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="labelId" type="xsd:long">

<annotation>

<documentation>
The id of an existing label to be applied to the campaign. <span class="constraint
Required">This field is required and should not be {@code null} when it is
contained within {@link Operator}s : ADD, REMOVE.</span>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="CampaignLabelOperation">

<annotation>

<documentation>
Operations for adding/removing labels from Campaign.
</documentation>
</annotation>
<complexContent>

<extension base="tns:Operation">

<sequence>

<element maxOccurs="1" minOccurs="0" name="operand" type="tns:CampaignLabel
">

<annotation>

<documentation>
CampaignLabel to operate on. <span class="constraint Required">This field
is required and should not be {@code null}.</span>
</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="CampaignLabelReturnValue">

<annotation>

<documentation>
A container for return values from the {@link CampaignService#mutateLabel}
call.
</documentation>
</annotation>
<complexContent>

<extension base="tns:ListReturnValue">

<sequence>

<element maxOccurs="unbounded" minOccurs="0" name="value" type="tns:
CampaignLabel"/>
<element maxOccurs="unbounded" minOccurs="0" name="partialFailureErrors"
type="tns:ApiError"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="TextLabel">

<annotation>

<documentation>Represent a display label entry.</documentation>
</annotation>
<complexContent>

<extension base="tns:Label">

<sequence/>
</extension>
</complexContent>
</complexType>
<complexType name="DisplayAttribute">

<annotation>

<documentation>Attributes for Text Labels.</documentation>
</annotation>
<complexContent>

<extension base="tns:LabelAttribute">

<sequence>

<element maxOccurs="1" minOccurs="0" name="backgroundColor" type="xsd:string
">

<annotation>

<documentation>
Background color of the label in RGB format. <span class="constraint
MatchesRegex">A background color string must begin with a '#' character
followed by either 6 or 3 hexadecimal characters (24 vs. 12 bits). This is
checked by the regular expression
'^\#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$'.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="description" type="xsd:string">

<annotation>

<documentation>
A short description of the label. <span class="constraint StringLength">The
length of this string should be between 0 and 200, inclusive.</span>
</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="CampaignOperation">

<annotation>

<documentation>
An operation on an AdWords campaign. <p class="note"><b>Note:</b> The
<code>REMOVE</code> operator is not supported. To remove a campaign, set
its {@link Campaign#status status} to {@code REMOVED}.</p>
</documentation>
</annotation>
<complexContent>

<extension base="tns:Operation">

<sequence>

<element maxOccurs="1" minOccurs="0" name="operand" type="tns:Campaign">

<annotation>

<documentation>
<span class="constraint Required">This field is required and should not be
{@code null}.</span>
</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="CampaignPage">

<annotation>

<documentation>
Contains a set of campaigns resulting from the filtering and paging of the
{@link CampaignService#get} call.
</documentation>
</annotation>
<complexContent>

<extension base="tns:Page">

<sequence>

<element maxOccurs="unbounded" minOccurs="0" name="entries" type="tns:
Campaign">

<annotation>

<documentation>The result entries in this page.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="CampaignReturnValue">

<annotation>

<documentation>
A container for return values from the CampaignService.
</documentation>
</annotation>
<complexContent>

<extension base="tns:ListReturnValue">

<sequence>

<element maxOccurs="unbounded" minOccurs="0" name="value" type="tns:Campaign
"/>
<element maxOccurs="unbounded" minOccurs="0" name="partialFailureErrors"
type="tns:ApiError">

<annotation>

<documentation>List of partial failure errors.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="ClientTermsError">

<annotation>

<documentation>
Error due to user not accepting the AdWords terms of service.
</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason" type="tns:
ClientTermsError.Reason"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType abstract="true" name="ComparableValue">

<annotation>

<documentation>Comparable types for constructing ranges
with.</documentation>
</annotation>
<sequence>

<element maxOccurs="1" minOccurs="0" name="ComparableValue.Type" type="xsd:
string">

<annotation>

<documentation>
Indicates that this instance is a subtype of ComparableValue. Although this
field is returned in the response, it is ignored on input and cannot be
selected. Specify xsi:type instead.
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="ConversionOptimizerEligibility">

<annotation>

<documentation>
Eligibility data for Campaign to transition to Conversion Optimizer
</documentation>
</annotation>
<sequence>

<element maxOccurs="1" minOccurs="0" name="eligible" type="xsd:boolean">

<annotation>

<documentation>
If the campaign is eligible to enter conversion optimizer. <span class="constraint
Selectable">This field can be selected using the value "Eligible".</span>
<span class="constraint ReadOnly">This field is read only and will be
ignored when sent to the API.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="unbounded" minOccurs="0" name="rejectionReasons" type="
tns:ConversionOptimizerEligibility.RejectionReason">

<annotation>

<documentation>
Reason why a campaign would be rejected for conversion optimizer. <span
class="constraint Selectable">This field can be selected using the value "
RejectionReasons".</span> <span class="constraint ReadOnly">This field is
read only and will be ignored when sent to the API.</span>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="CountryConstraint">

<annotation>

<documentation>
Information about countries that were targeted that caused a policy
finding. If a CountryConstraint has 0 targeted countries and an empty list
of constrained countries, it means that the constraint applies globally.
</documentation>
</annotation>
<complexContent>

<extension base="tns:PolicyTopicConstraint">

<sequence>

<element maxOccurs="unbounded" minOccurs="0" name="constrainedCountries"
type="xsd:long">

<annotation>

<documentation>
The set of targeted country criterion IDs to which a policy topic entry
applies.
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="totalTargetedCountries" type="xsd
:int">

<annotation>

<documentation>The total number of targeted countries.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="CpaBid">

<annotation>

<documentation>CPA Bids.</documentation>
</annotation>
<complexContent>

<extension base="tns:Bids">

<sequence>

<element maxOccurs="1" minOccurs="0" name="bid" type="tns:Money">

<annotation>

<documentation>
Target cost per acquisition (CPA). This is applicable only at the ad group
level. <p>If an ad group-level target is not set and the strategy type is
TARGET_CPA, the strategy level target will be used. To set the
strategy-level target, set the {@linkplain
TargetCpaBiddingScheme#targetCpa} on the strategy's {@linkplain
BiddingStrategyConfiguration#biddingScheme}.
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="bidSource" type="tns:BidSource">

<annotation>

<documentation>
The level (ad group, ad group strategy, or campaign strategy) at which the
bid was set. This is applicable only at the ad group level. <span class="constraint
ReadOnly">This field is read only and will be ignored when sent to the
API.</span>
</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="CpcBid">

<annotation>

<documentation>Manual click based bids.</documentation>
</annotation>
<complexContent>

<extension base="tns:Bids">

<sequence>

<element maxOccurs="1" minOccurs="0" name="bid" type="tns:Money">

<annotation>

<documentation>
Max CPC (cost per click) bid. At the ad group level, this represents the
default bid applicable for <ul><li>keyword targeting on search
network.</li> <li>keywords & placements for content targeting.</li></ul> At
the ad group criteria level, this is the max cpc bid.
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="cpcBidSource" type="tns:BidSource
">

<annotation>

<documentation>
The level (ad group or criterion) at which the bid was set. This is
applicable only at the criteria level. <span class="constraint ReadOnly">This
field is read only and will be ignored when sent to the API.</span>
</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="CpmBid">

<annotation>

<documentation>Manual impression based bids.</documentation>
</annotation>
<complexContent>

<extension base="tns:Bids">

<sequence>

<element maxOccurs="1" minOccurs="0" name="bid" type="tns:Money">

<annotation>

<documentation>Max CPM (cost per thousand impressions) bid.</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="cpmBidSource" type="tns:BidSource
">

<annotation>

<documentation>
The level (ad group or criterion) at which the bid was set. This is
applicable only at the criteria level. <span class="constraint ReadOnly">This
field is read only and will be ignored when sent to the API.</span>
</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="CustomParameter">

<annotation>

<documentation>
CustomParameter is used to map a custom parameter key to its value.
</documentation>
</annotation>
<sequence>

<element maxOccurs="1" minOccurs="0" name="key" type="xsd:string">

<annotation>

<documentation>
The parameter key to be mapped. <span class="constraint Required">This
field is required and should not be {@code null}.</span> <span class="constraint
StringLength">The length of this string should be between 1 and 16,
inclusive, in UTF-8 bytes, (trimmed).</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="value" type="xsd:string">

<annotation>

<documentation>
The value this parameter should be mapped to. It should be null if isRemove
is true. <span class="constraint StringLength">The length of this string
should be between 0 and 200, inclusive, in UTF-8 bytes, (trimmed).</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="isRemove" type="xsd:boolean">

<annotation>

<documentation>
On SET operation, indicates that the parameter should be removed from the
existing parameters. If set to true, the value field must be null.
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="CustomParameters">

<annotation>

<documentation>
CustomParameters holds a list of CustomParameters to be treated as a map.
It has a special field used to indicate that the current map should be
cleared and replaced with this new map.
</documentation>
</annotation>
<sequence>

<element maxOccurs="unbounded" minOccurs="0" name="parameters" type="tns:
CustomParameter">

<annotation>

<documentation>
The list of custom parameters. <p>On update, all parameters can be cleared
by providing an empty or null list and setting doReplace to true.
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="doReplace" type="xsd:boolean">

<annotation>

<documentation>
On SET operation, indicates that the current parameters should be cleared
and replaced with these parameters.
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="DatabaseError">

<annotation>

<documentation>
Errors that are thrown due to a database access problem.
</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason" type="tns:DatabaseError.
Reason">

<annotation>

<documentation>The error reason represented by an enum.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="DateError">

<annotation>

<documentation>
Errors associated with invalid dates and date ranges.
</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason" type="tns:DateError.
Reason">

<annotation>

<documentation>The error reason represented by an enum.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="DateRange">

<annotation>

<documentation>
Represents a range of dates that has either an upper or a lower bound. The
format for the date is YYYYMMDD.
</documentation>
</annotation>
<sequence>

<element maxOccurs="1" minOccurs="0" name="min" type="xsd:string">

<annotation>

<documentation>the lower bound of this date range,
inclusive.</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="max" type="xsd:string">

<annotation>

<documentation>the upper bound of this date range,
inclusive.</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="DateRangeError">

<annotation>

<documentation>
A list of all the error codes being used for date range error.
</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason" type="tns:DateRangeError.
Reason">

<annotation>

<documentation>The error reason represented by an enum.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="DistinctError">

<annotation>

<documentation>Errors related to distinct ids or content.</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason" type="tns:DistinctError.
Reason">

<annotation>

<documentation>The error reason represented by an enum.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="DoubleValue">

<annotation>

<documentation>
Number value type for constructing double valued ranges.
</documentation>
</annotation>
<complexContent>

<extension base="tns:NumberValue">

<sequence>

<element maxOccurs="1" minOccurs="0" name="number" type="xsd:double">

<annotation>

<documentation>the underlying double value.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="DynamicSearchAdsSetting">

<annotation>

<documentation>
Setting for controlling Dynamic Search Ads (DSA). Contains the domain name
and the language used by the DSA system to automatically generate landing
pages and keywords for a campaign.
</documentation>
</annotation>
<complexContent>

<extension base="tns:Setting">

<sequence>

<element maxOccurs="1" minOccurs="0" name="domainName" type="xsd:string">

<annotation>

<documentation>
The Internet domain name that this setting represents. E.g. "google.com" or
"www.google.com". <span class="constraint Required">This field is required
and should not be {@code null}.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="languageCode" type="xsd:string">

<annotation>

<documentation>
A language code that indicates what language the contents of the domain is
in. E.g. "en" <span class="constraint Required">This field is required and
should not be {@code null}.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="useSuppliedUrlsOnly" type="xsd:
boolean">

<annotation>

<documentation>
A toggle for the advertiser to decide if they want this campaign to use the
advertiser supplied URLs only.
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="pageFeed" type="tns:PageFeed">

<annotation>

<documentation>Page feeds associated with this campaign.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="EnhancedCpcBiddingScheme">

<annotation>

<documentation>
Enhanced CPC is a bidding strategy that raises your bids for clicks that
seem more likely to lead to a conversion and lowers them for clicks where
they seem less likely. This bidding scheme does not support criteria level
bidding strategy overrides. <span class="constraint AdxEnabled">This is
disabled for AdX.</span>
</documentation>
</annotation>
<complexContent>

<extension base="tns:BiddingScheme">

<sequence/>
</extension>
</complexContent>
</complexType>
<complexType name="EntityAccessDenied">

<annotation>

<documentation>
Reports permission problems trying to access an entity.
</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason" type="tns:
EntityAccessDenied.Reason">

<annotation>

<documentation>Reason for this error.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="EntityCountLimitExceeded">

<annotation>

<documentation>
Signals that an entity count limit was exceeded for some level. For
example, too many criteria for a campaign.
</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason" type="tns:
EntityCountLimitExceeded.Reason">

<annotation>

<documentation>Specifies which level's limit was exceeded.</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="enclosingId" type="xsd:string">

<annotation>

<documentation>Id of the entity whose limit was exceeded.</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="limit" type="xsd:int">

<annotation>

<documentation>The limit which was exceeded.</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="accountLimitType" type="xsd:
string">

<annotation>

<documentation>The account limit type which was exceeded.</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="existingCount" type="xsd:int">

<annotation>

<documentation>The count of existing entities.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="EntityNotFound">

<annotation>

<documentation>
An id did not correspond to an entity, or it referred to an entity which
does not belong to the customer.
</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason" type="tns:EntityNotFound.
Reason">

<annotation>

<documentation>Reason for this error.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="FieldPathElement">

<annotation>

<documentation>
A segment of a field path. Each dot in a field path defines a new segment.
</documentation>
</annotation>
<sequence>

<element maxOccurs="1" minOccurs="0" name="field" type="xsd:string">

<annotation>

<documentation>
The name of a field in lower camelcase. (e.g. "biddingStrategy")
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="index" type="xsd:int">

<annotation>

<documentation>
For list fields, this is a 0-indexed position in the list. Null for
non-list fields.
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="ForwardCompatibilityError">

<annotation>

<documentation>
A ForwardComptibilityError represents possible errors when using the
forwardCompatibilityMap in some of the common services.
</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason" type="tns:
ForwardCompatibilityError.Reason">

<annotation>

<documentation>The error reason represented by an enum.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="FrequencyCap">

<annotation>

<documentation>
A frequency cap is the maximum number of times an ad (or some set of ads)
can be shown to a user over a particular time period.
</documentation>
</annotation>
<sequence>

<element maxOccurs="1" minOccurs="0" name="impressions" type="xsd:long">

<annotation>

<documentation>
Maximum number of impressions allowed during the time range by this cap. To
remove the frequency cap on a campaign, set this field to {@code 0}. <span
class="constraint Selectable">This field can be selected using the value "
FrequencyCapMaxImpressions".</span><span class="constraint Filterable">This
field can be filtered on.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="timeUnit" type="tns:TimeUnit">

<annotation>

<documentation>
Unit of time the cap is defined at. Only the Day, Week and Month time units
are supported. <span class="constraint Selectable">This field can be
selected using the value "TimeUnit".</span><span class="constraint
Filterable">This field can be filtered on.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="level" type="tns:Level">

<annotation>

<documentation>
The level on which the cap is to be applied (creative/adgroup). Cap is
applied to all the entities of this level in the campaign. <span class="constraint
Selectable">This field can be selected using the value "Level".</span><span
class="constraint Filterable">This field can be filtered on.</span>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="GeoTargetTypeSetting">

<annotation>

<documentation>
Represents a collection of settings related to ads geotargeting. <p>AdWords
ads can be geotargeted using <b>Location of Presence</b> (<b>LOP</b>),
<b>Area of Interest</b> (<b>AOI</b>), or both. LOP is the physical location
of the user performing the search; AOI is the geographical region in which
the searcher is interested. For example, if a user in New York City
performs a search "hotels california", their LOP is New York City and their
AOI is California. <p>Additionally, ads can be <b>positively</b> or
<b>negatively</b> geotargeted. An ad that is positively geotargeted to New
York City only appears to users whose location is related (via AOI or LOP)
to New York City. An ad that is negatively geotargeted to New York City
appears for <i>all</i> users <i>except</i> those whose location is related
to New York City. Ads can only be negatively geotargeted if a positive
geotargeting is also supplied, and the negatively geotargeted region must
be contained within the positive region. <p>Geotargeting settings allow ads
to be targeted in the following way: <ul> <li> Positively geotargeted using
solely AOI, solely LOP, or either. <li> Negatively geotargeted using solely
LOP, or both. </ul> <p>This setting applies only to ads shown on the search
network, and does not affect ads shown on the Google Display Network.
</documentation>
</annotation>
<complexContent>

<extension base="tns:Setting">

<sequence>

<element maxOccurs="1" minOccurs="0" name="positiveGeoTargetType" type="tns:
GeoTargetTypeSetting.PositiveGeoTargetType">

<annotation>

<documentation>
The setting used for positive geotargeting in this particular campaign.
<p>Again, the campaign can be positively targeted using solely LOP, solely
AOI, or either. Positive targeting triggers ads <i>only</i> for users whose
location is related to the given locations. <p>The default value is
DONT_CARE.
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="negativeGeoTargetType" type="tns:
GeoTargetTypeSetting.NegativeGeoTargetType">

<annotation>

<documentation>
The setting used for negative geotargeting in this particular campaign.
<p>Again, the campaign can be negatively targeted using solely LOP or both
AOI and LOP. Negative targeting triggers ads for <i>all</i> users
<i>except</i> those whose location is related to the given locations.
<p>The default value is DONT_CARE.
</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="IdError">

<annotation>

<documentation>Errors associated with the ids.</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason" type="tns:IdError.Reason
">

<annotation>

<documentation>The error reason represented by an enum.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="InternalApiError">

<annotation>

<documentation>
Indicates that a server-side error has occured. {@code InternalApiError}s
are generally not the result of an invalid request or message sent by the
client.
</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason" type="tns:
InternalApiError.Reason">

<annotation>

<documentation>The error reason represented by an enum.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="Label">

<annotation>

<documentation>
Represents a label that can be attached to entities such as campaign, ad
group, ads, criterion etc.
</documentation>
</annotation>
<sequence>

<element maxOccurs="1" minOccurs="0" name="id" type="xsd:long">

<annotation>

<documentation>
Id of label. <span class="constraint Required">This field is required and
should not be {@code null} when it is contained within {@link Operator}s :
SET, REMOVE.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="name" type="xsd:string">

<annotation>

<documentation>
Name of label. <span class="constraint StringLength">The length of this
string should be between 1 and 80, inclusive.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="status" type="tns:Label.Status">

<annotation>

<documentation>
Status of the label. <span class="constraint ReadOnly">This field is read
only and will be ignored when sent to the API.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="attribute" type="tns:
LabelAttribute">

<annotation>

<documentation>
Attributes of the label. <span class="constraint ReadOnly">This field is
read only and will be ignored when sent to the API for the following {@link
Operator}s: REMOVE.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="Label.Type" type="xsd:string">

<annotation>

<documentation>
Indicates that this instance is a subtype of Label. Although this field is
returned in the response, it is ignored on input and cannot be selected.
Specify xsi:type instead.
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="ListError">

<annotation>

<documentation>
Errors that can occur when making changes to a list using {@link
ListOperations}.
</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason" type="tns:ListError.
Reason">

<annotation>

<documentation>The error reason represented by an enum.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="ListOperations">

<annotation>

<documentation>
Describes the behavior of elements in a list. Instances of ListOperations
will always be defined alongside some list in an API POJO. The number of
operators in the ListOperations must be equal to the number of elements in
the POJO list. Each operator, together with its corresponding list element,
describe an intended change. <p>For example, if in a request
Campaign.selectiveOptimization contains 2 conversionTypeIds, and the
conversionTypeIdsOps is non-null, it must contain 2 operators. If those
operators are {PUT, REMOVE} then the API will add the first
conversionTypeId (if it doesn't already exist) and remove the second
conversionTypeId (if it exists).
</documentation>
</annotation>
<sequence>

<element maxOccurs="1" minOccurs="0" name="clear" type="xsd:boolean">

<annotation>

<documentation>
Indicates that all contents of the list should be deleted. If this is true,
the list will be cleared first, then proceed to the operators.
</documentation>
</annotation>
</element>
<element maxOccurs="unbounded" minOccurs="0" name="operators" type="tns:
ListOperations.ListOperator">

<annotation>

<documentation>
The desired behavior of each element in the POJO list that this
ListOperation corresponds to. This will contain the same number of elements
as the corresponding List<>.
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType abstract="true" name="ListReturnValue">

<annotation>

<documentation>Base list return value type.</documentation>
</annotation>
<sequence>

<element maxOccurs="1" minOccurs="0" name="ListReturnValue.Type" type="xsd:
string">

<annotation>

<documentation>
Indicates that this instance is a subtype of ListReturnValue. Although this
field is returned in the response, it is ignored on input and cannot be
selected. Specify xsi:type instead.
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="LongValue">

<annotation>

<documentation>
Number value type for constructing long valued ranges.
</documentation>
</annotation>
<complexContent>

<extension base="tns:NumberValue">

<sequence>

<element maxOccurs="1" minOccurs="0" name="number" type="xsd:long">

<annotation>

<documentation>the underlying long value.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="ManualCpcBiddingScheme">

<annotation>

<documentation>
Manual click based bidding where user pays per click. <span class="constraint
AdxEnabled">This is disabled for AdX.</span>
</documentation>
</annotation>
<complexContent>

<extension base="tns:BiddingScheme">

<sequence>

<element maxOccurs="1" minOccurs="0" name="enhancedCpcEnabled" type="xsd:
boolean">

<annotation>

<documentation>
The enhanced CPC bidding option for the campaign, which enables bids to be
enhanced based on conversion optimizer data. For more information about
enhanced CPC, see the <a href="//support.google.com/adwords/answer/2464964"
>AdWords Help Center</a>. <span class="constraint Selectable">This field
can be selected using the value "EnhancedCpcEnabled".</span><span
class="constraint Filterable">This field can be filtered on.</span>
</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="ManualCpmBiddingScheme">

<annotation>

<documentation>
Manual impression based bidding where user pays per thousand impressions.
<span class="constraint AdxEnabled">This is enabled for AdX.</span>
</documentation>
</annotation>
<complexContent>

<extension base="tns:BiddingScheme">

<sequence/>
</extension>
</complexContent>
</complexType>
<complexType name="MaximizeConversionsBiddingScheme">

<annotation>

<documentation>
Maximize conversions is an automated bidding strategy that automatically
sets bids to help get the most conversions for your campaign while spending
your budget. <span class="constraint AdxEnabled">This is disabled for AdX.</
span>
</documentation>
</annotation>
<complexContent>

<extension base="tns:BiddingScheme">

<sequence/>
</extension>
</complexContent>
</complexType>
<complexType name="Money">

<annotation>

<documentation>Represents a money amount.</documentation>
</annotation>
<complexContent>

<extension base="tns:ComparableValue">

<sequence>

<element maxOccurs="1" minOccurs="0" name="microAmount" type="xsd:long">

<annotation>

<documentation>
Amount in micros. One million is equivalent to one unit.
</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="UniversalAppCampaignSetting">

<annotation>

<documentation>
Setting for storing the mobile app to advertise and creative assets for
Universal app campaigns. This setting is required for Campaigns with
advertising channel subtype UNIVERSAL_APP_CAMPAIGN and can only be attached
to such Campaigns.
</documentation>
</annotation>
<complexContent>

<extension base="tns:Setting">

<sequence>

<element maxOccurs="1" minOccurs="0" name="appId" type="xsd:string">

<annotation>

<documentation>
A string that uniquely identifies a mobile application. The appId should be
the same as the vendor native id for the app. For example the Android
Application "Color Drips" (https://play.google.com/store/apps/details?id=com.labpixies.colordrips)
would have the appId - "com.labpixies.colordrips". <span class="constraint
Filterable">This field can be filtered on using the value
"UniversalAppCampaignSettingAppId".</span> <span class="constraint
ReadOnly">This field is read only and will be ignored when sent to the API
for the following {@link Operator}s: REMOVE.</span> <span class="constraint
Required">This field is required and should not be {@code null} when it is
contained within {@link Operator}s : ADD.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="description1" type="xsd:string">

<annotation>

<documentation>
A description line of your mobile application promotion ad(s). <span
class="constraint MatchesRegex">Description must not contain any '{' or '}'
characters. This is checked by the regular expression '[^\{\}]*'.</span> <span
class="constraint Required">This field is required and should not be {@code
null} when it is contained within {@link Operator}s : ADD.</span> <span
class="constraint StringLength">The length of this string should be between
1 and 25, inclusive, (trimmed).</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="description2" type="xsd:string">

<annotation>

<documentation>
A description line of your mobile application promotion ad(s). <span
class="constraint MatchesRegex">Description must not contain any '{' or '}'
characters. This is checked by the regular expression '[^\{\}]*'.</span> <span
class="constraint Required">This field is required and should not be {@code
null} when it is contained within {@link Operator}s : ADD.</span> <span
class="constraint StringLength">The length of this string should be between
1 and 25, inclusive, (trimmed).</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="description3" type="xsd:string">

<annotation>

<documentation>
A description line of your mobile application promotion ad(s). <span
class="constraint MatchesRegex">Description must not contain any '{' or '}'
characters. This is checked by the regular expression '[^\{\}]*'.</span> <span
class="constraint Required">This field is required and should not be {@code
null} when it is contained within {@link Operator}s : ADD.</span> <span
class="constraint StringLength">The length of this string should be between
1 and 25, inclusive, (trimmed).</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="description4" type="xsd:string">

<annotation>

<documentation>
A description line of your mobile application promotion ad(s). <span
class="constraint MatchesRegex">Description must not contain any '{' or '}'
characters. This is checked by the regular expression '[^\{\}]*'.</span> <span
class="constraint Required">This field is required and should not be {@code
null} when it is contained within {@link Operator}s : ADD.</span> <span
class="constraint StringLength">The length of this string should be between
1 and 25, inclusive, (trimmed).</span>
</documentation>
</annotation>
</element>
<element maxOccurs="unbounded" minOccurs="0" name="youtubeVideoMediaIds"
type="xsd:long">

<annotation>

<documentation>
MediaIds for YouTube videos to be shown to users when advertising on video
networks.
</documentation>
</annotation>
</element>
<element maxOccurs="unbounded" minOccurs="0" name="imageMediaIds" type=
"xsd:long">

<annotation>

<documentation>
MediaIds for landscape images to be used in creatives to be shown to users
when advertising on display networks.
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0"
name="universalAppBiddingStrategyGoalType"
type="tns:UniversalAppBiddingStrategyGoalType">

<annotation>

<documentation>
Represents the goal towards which the bidding strategy, of this universal
app campaign, should optimize for.
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="youtubeVideoMediaIdsOps" type=
"tns:ListOperations">

<annotation>

<documentation>Operations for YouTube Video MediaIds.</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="imageMediaIdsOps" type=
"tns:ListOperations">

<annotation>

<documentation>Operations for Image MediaIds.</documentation>
</annotation>
</element>
<element maxOccurs="unbounded" minOccurs="0" name="adsPolicyDecisions" type=
"tns:UniversalAppCampaignAdsPolicyDecisions">

<annotation>

<documentation>Ads policy decisions associated with asset(s).</documentation
>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="NetworkSetting">

<annotation>

<documentation>Network settings for a Campaign.</documentation>
</annotation>
<sequence>

<element maxOccurs="1" minOccurs="0" name="targetGoogleSearch"
type="xsd:boolean">

<annotation>

<documentation>
Ads will be served with Google.com search results. <span class="constraint
Selectable">This field can be selected using the value
"TargetGoogleSearch".</span><span class="constraint Filterable">This field
can be filtered on.</span> <span class="constraint AdxEnabled">This is
disabled for AdX.</span> <span class="constraint CampaignType">This field
may only be set to true for campaign channel type SEARCH.</span> <span class
="constraint CampaignType">This field may only be set to true for campaign
channel subtype UNIVERSAL_APP_CAMPAIGN.</span> <span class="constraint
CampaignType">This field may only be set to false for campaign channel type
DISPLAY.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="targetSearchNetwork"
type="xsd:boolean">

<annotation>

<documentation>
Ads will be served on partner sites in the Google Search Network (requires
{@code GOOGLE_SEARCH}). <span class="constraint Selectable">This field can
be selected using the value "TargetSearchNetwork".</span><span class="constraint
Filterable">This field can be filtered on.</span> <span class="constraint
AdxEnabled">This is disabled for AdX.</span> <span class="constraint
CampaignType">This field may only be set to true for campaign channel
subtype UNIVERSAL_APP_CAMPAIGN.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="targetContentNetwork"
type="xsd:boolean">

<annotation>

<documentation>
Ads will be served on specified placements in the Google Display Network.
Placements are specified using {@code Placement} criteria. <span
class="constraint Selectable">This field can be selected using the value
"TargetContentNetwork".</span><span class="constraint Filterable">This
field can be filtered on.</span> <span class="constraint CampaignType">This
field may only be set to true for campaign channel subtype
UNIVERSAL_APP_CAMPAIGN.</span> <span class="constraint CampaignType">This
field may only be set to false for campaign channel subtype
SEARCH_MOBILE_APP.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="targetPartnerSearchNetwork"
type="xsd:boolean">

<annotation>

<documentation>
Ads will be served on the Google Partner Network. This is available to only
some specific Google partner accounts. <span class="constraint
Selectable">This field can be selected using the value
"TargetPartnerSearchNetwork".</span><span class="constraint Filterable">This
field can be filtered on.</span> <span class="constraint AdxEnabled">This is
disabled for AdX.</span> <span class="constraint CampaignType">This field
may only be set to false for campaign channel subtype UNIVERSAL_APP_CAMPAIGN
.</span>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="NewEntityCreationError">

<annotation>

<documentation>Error associated with creation of new entities.</
documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason"
type="tns:NewEntityCreationError.Reason">

<annotation>

<documentation>The error reason represented by an enum.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="NotEmptyError">

<annotation>

<documentation>
Errors corresponding with violation of a NOT EMPTY check.
</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason" type=
"tns:NotEmptyError.Reason">

<annotation>

<documentation>The error reason represented by an enum.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="NullError">

<annotation>

<documentation>
Errors associated with violation of a NOT NULL check.
</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason" type=
"tns:NullError.Reason">

<annotation>

<documentation>The error reason represented by an enum.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType abstract="true" name="NumberValue">

<annotation>

<documentation>
Number value types for constructing number valued ranges.
</documentation>
</annotation>
<complexContent>

<extension base="tns:ComparableValue">

<sequence/>
</extension>
</complexContent>
</complexType>
<complexType abstract="true" name="Operation">

<annotation>

<documentation>
This represents an operation that includes an operator and an operand
specified type.
</documentation>
</annotation>
<sequence>

<element maxOccurs="1" minOccurs="0" name="operator" type="tns:Operator">

<annotation>

<documentation>
Operator. <span class="constraint Required">This field is required and
should not be {@code null}.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="Operation.Type"
type="xsd:string">

<annotation>

<documentation>
Indicates that this instance is a subtype of Operation. Although this field
is returned in the response, it is ignored on input and cannot be selected.
Specify xsi:type instead.
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="OperationAccessDenied">

<annotation>

<documentation>
Operation not permitted due to the invoked service's access policy.
</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason"
type="tns:OperationAccessDenied.Reason"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="OperatorError">

<annotation>

<documentation>Errors due to the use of unsupported
operations.</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason"
type="tns:OperatorError.Reason">

<annotation>

<documentation>The error reason represented by an enum.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="OrderBy">

<annotation>

<documentation>
Specifies how the resulting information should be sorted.
</documentation>
</annotation>
<sequence>

<element maxOccurs="1" minOccurs="0" name="field" type="xsd:string">

<annotation>

<documentation>
The field to sort the results on. <span class="constraint Required">This
field is required and should not be {@code null}.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="sortOrder" type="tns:SortOrder">

<annotation>

<documentation>
The order to sort the results on. The default sort order is {@link
SortOrder#ASCENDING}.
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType abstract="true" name="Page">

<annotation>

<documentation>Contains the results from a get call.</documentation>
</annotation>
<sequence>

<element maxOccurs="1" minOccurs="0" name="totalNumEntries" type="xsd:int">

<annotation>

<documentation>
Total number of entries in the result that this page is a part of.
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="Page.Type" type="xsd:string">

<annotation>

<documentation>
Indicates that this instance is a subtype of Page. Although this field is
returned in the response, it is ignored on input and cannot be selected.
Specify xsi:type instead.
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="PageFeed">

<annotation>

<documentation>
Page feeds associated with {@link DynamicSearchAdsSetting}.
</documentation>
</annotation>
<sequence>

<element maxOccurs="unbounded" minOccurs="0" name="feedIds" type="xsd:long">

<annotation>

<documentation>
A list of page feeds associated with this campaign's dynamic search ads
setting.
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="PageOnePromotedBiddingScheme">

<annotation>

<documentation>
Page-One Promoted bidding scheme, which sets max cpc bids to target
impressions on page one or page one promoted slots on google.com. <span
class="constraint AdxEnabled">This is disabled for AdX.</span>
</documentation>
</annotation>
<complexContent>

<extension base="tns:BiddingScheme">

<sequence>

<element maxOccurs="1" minOccurs="0" name="strategyGoal" type=
"tns:PageOnePromotedBiddingScheme.StrategyGoal">

<annotation>

<documentation>
Specifies the strategy goal: where impressions are desired to be shown on
search result pages.
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="bidCeiling" type="tns:Money">

<annotation>

<documentation>
Strategy maximum bid limit in advertiser local currency micro units. This
upper limit applies to all keywords managed by the strategy. <span
class="constraint InRange">This field must be greater than or equal to 0.</
span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="bidModifier" type="xsd:double">

<annotation>

<documentation>
Bid Multiplier to be applied to the relevant bid estimate (depending on the
strategyGoal) in determining a keyword's new max cpc bid. <span
class="constraint InRange">This field must be greater than or equal to 0.</
span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="bidChangesForRaisesOnly"
type="xsd:boolean">

<annotation>

<documentation>
Controls whether the strategy always follows bid estimate changes, or only
increases. If false, always set a keyword's new bid to the current bid
estimate. If true, only updates a keyword's bid if the current bid estimate
is greater than the current bid.
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="raiseBidWhenBudgetConstrained"
type="xsd:boolean">

<annotation>

<documentation>
Controls whether the strategy is allowed to raise bids when the throttling
rate of the budget it is serving out of rises above a threshold.
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="raiseBidWhenLowQualityScore"
type="xsd:boolean">

<annotation>

<documentation>
Controls whether the strategy is allowed to raise bids on keywords with
lower-range quality scores.
</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="Paging">

<annotation>

<documentation>
Specifies the page of results to return in the response. A page is
specified by the result position to start at and the maximum number of
results to return.
</documentation>
</annotation>
<sequence>

<element maxOccurs="1" minOccurs="0" name="startIndex" type="xsd:int">

<annotation>

<documentation>
Index of the first result to return in this page. <span class="constraint
InRange">This field must be greater than or equal to 0.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="numberResults" type="xsd:int">

<annotation>

<documentation>
Maximum number of results to return in this page. Set this to a reasonable
value to limit the number of results returned per page. <span class="constraint
InRange">This field must be greater than or equal to 0.</span>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType abstract="true" name="PolicyTopicConstraint">

<annotation>

<documentation>A target which caused a policy finding.</documentation>
</annotation>
<sequence>

<element maxOccurs="1" minOccurs="0" name="constraintType"
type="tns:PolicyTopicConstraint.PolicyTopicConstraintType"/>
<element maxOccurs="1" minOccurs="0" name="PolicyTopicConstraint.Type" type=
"xsd:string">

<annotation>

<documentation>
Indicates that this instance is a subtype of PolicyTopicConstraint. Although
this field is returned in the response, it is ignored on input and cannot
be selected. Specify xsi:type instead.
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="PolicyTopicEntry">

<annotation>

<documentation>Contains Ads Policy decisions.</documentation>
</annotation>
<sequence>

<element maxOccurs="1" minOccurs="0" name="policyTopicEntryType"
type="tns:PolicyTopicEntryType">

<annotation>

<documentation>The type of the policy topic entry.</documentation>
</annotation>
</element>
<element maxOccurs="unbounded" minOccurs="0" name="policyTopicEvidences"
type="tns:PolicyTopicEvidence">

<annotation>

<documentation>
The policy topic evidences associated with this policy topic entry.
</documentation>
</annotation>
</element>
<element maxOccurs="unbounded" minOccurs="0" name="policyTopicConstraints"
type="tns:PolicyTopicConstraint">

<annotation>

<documentation>
The targeting constraints to which this PolicyTopicEntry is related.
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="policyTopicId" type="xsd:string">

<annotation>

<documentation>
The policy topic id. <span class="constraint ReadOnly">This field is read
only and will be ignored when sent to the API.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="policyTopicName"
type="xsd:string">

<annotation>

<documentation>
The policy topic name (in English). <span class="constraint ReadOnly">This
field is read only and will be ignored when sent to the API.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="policyTopicHelpCenterUrl"
type="xsd:string">

<annotation>

<documentation>
URL of the help center article describing this policy topic entry. <span
class="constraint ReadOnly">This field is read only and will be ignored
when sent to the API.</span>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="PolicyTopicEvidence">

<annotation>

<documentation>
Evidence that caused this policy topic to be reported.
</documentation>
</annotation>
<sequence>

<element maxOccurs="1" minOccurs="0" name="policyTopicEvidenceType"
type="tns:PolicyTopicEvidenceType">

<annotation>

<documentation>The type of evidence for the policy topic.</documentation>
</annotation>
</element>
<element maxOccurs="unbounded" minOccurs="0" name="evidenceTextList" type=
"xsd:string">

<annotation>

<documentation>
The actual evidence that triggered this policy topic to be reported. This
field is associated with the policyTopicEvidenceType. So for example, when
policyTopicEvidenceType is AD_TEXT, the evidence is the texts associated
with the Ad.
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="Predicate">

<annotation>

<documentation>
Specifies how an entity (eg. adgroup, campaign, criterion, ad) should be
filtered.
</documentation>
</annotation>
<sequence>

<element maxOccurs="1" minOccurs="0" name="field" type="xsd:string">

<annotation>

<documentation>
The field by which to filter the returned data. Possible values are marked
Filterable on the entity's reference page. For example, for predicates for
the CampaignService {@link Selector selector}, refer to the filterable
fields from the {@link Campaign} reference page. <span class="constraint
Required">This field is required and should not be {@code null}.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="operator"
type="tns:Predicate.Operator">

<annotation>

<documentation>
The operator to use for filtering the data returned. <span
class="constraint Required">This field is required and should not be {@code
null}.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="unbounded" minOccurs="0" name="values"
type="xsd:string">

<annotation>

<documentation>
The values by which to filter the field. The {@link Operator#CONTAINS_ALL},
{@link Operator#CONTAINS_ANY}, {@link Operator#CONTAINS_NONE}, {@link
Operator#IN} and {@link Operator#NOT_IN} take multiple values. All others
take a single value. <span class="constraint ContentsNotNull">This field
must not contain {@code null} elements.</span> <span class="constraint
Required">This field is required and should not be {@code null}.</span>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="QueryError">

<annotation>

<documentation>
A QueryError represents possible errors for query parsing and execution.
</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason"
type="tns:QueryError.Reason"/>
<element maxOccurs="1" minOccurs="0" name="message" type="xsd:string"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="QuotaCheckError">

<annotation>

<documentation>
Encapsulates the errors thrown during developer quota checks.
</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason" type=
"tns:QuotaCheckError.Reason"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="RangeError">

<annotation>

<documentation>
A list of all errors associated with the Range constraint.
</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason" type=
"tns:RangeError.Reason">

<annotation>

<documentation>The error reason represented by an enum.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="RateExceededError">

<annotation>

<documentation>
Signals that a call failed because a measured rate exceeded.
</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason" type=
"tns:RateExceededError.Reason">

<annotation>

<documentation>The error reason represented by an enum.</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="rateName" type="xsd:string">

<annotation>

<documentation>Cause of the rate exceeded error.</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="rateScope" type="xsd:string">

<annotation>

<documentation>The scope of the rate (ACCOUNT/DEVELOPER).</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="retryAfterSeconds" type="xsd:int"
>

<annotation>

<documentation>
The amount of time (in seconds) the client should wait before retrying the
request.
</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="ReadOnlyError">

<annotation>

<documentation>
Errors from attempting to write to read-only fields.
</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason"
type="tns:ReadOnlyError.Reason">

<annotation>

<documentation>The error reason represented by an enum.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="RealTimeBiddingSetting">

<annotation>

<documentation>
Settings for Real-Time Bidding, a feature only available for campaigns
targeting the Ad Exchange network.
</documentation>
</annotation>
<complexContent>

<extension base="tns:Setting">

<sequence>

<element maxOccurs="1" minOccurs="0" name="optIn" type="xsd:boolean">

<annotation>

<documentation>
Whether the campaign is opted in to real-time bidding.
</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="RegionCodeError">

<annotation>

<documentation>
A list of all errors associated with the @RegionCode constraints.
</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason"
type="tns:RegionCodeError.Reason">

<annotation>

<documentation>The error reason represented by an enum.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="RejectedError">

<annotation>

<documentation>
Indicates that a field was rejected due to compatibility issues.
</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason" type=
"tns:RejectedError.Reason">

<annotation>

<documentation>The error reason represented by an enum.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="RequestError">

<annotation>

<documentation>
Encapsulates the generic errors thrown when there's an error with user
request.
</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason"
type="tns:RequestError.Reason"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="RequiredError">

<annotation>

<documentation>Errors due to missing required field.</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason"
type="tns:RequiredError.Reason">

<annotation>

<documentation>The error reason represented by an enum.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="SelectiveOptimization">

<annotation>

<documentation>
Selected set of conversion types for optimizing campaigns. For e.g. For
universal app campaigns, these are the set of in-app actions to optimize
the campaign towards.
</documentation>
</annotation>
<sequence>

<element maxOccurs="unbounded" minOccurs="0" name="conversionTypeIds"
type="xsd:long">

<annotation>

<documentation>
The selected conversion ids for selective optimization.
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="conversionTypeIdsOps"
type="tns:ListOperations">

<annotation>

<documentation>
The selected conversion ids ops for selective optimization.
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="Selector">

<annotation>

<documentation>
A generic selector to specify the type of information to return.
</documentation>
</annotation>
<sequence>

<element maxOccurs="unbounded" minOccurs="0" name="fields"
type="xsd:string">

<annotation>

<documentation>
List of fields to select. <a
href="/adwords/api/docs/appendix/selectorfields">Possible values</a> are
marked {@code Selectable} on the entity's reference page. For example, for
the {@code CampaignService} selector, refer to the selectable fields from
the {@link Campaign} reference page. <span class="constraint
ContentsDistinct">This field must contain distinct elements.</span> <span
class="constraint ContentsNotNull">This field must not contain {@code null}
elements.</span> <span class="constraint Required">This field is required
and should not be {@code null}.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="unbounded" minOccurs="0" name="predicates"
type="tns:Predicate">

<annotation>

<documentation>
Specifies how an entity (eg. adgroup, campaign, criterion, ad) should be
filtered. <span class="constraint ContentsNotNull">This field must not
contain {@code null} elements.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="dateRange" type="tns:DateRange">

<annotation>

<documentation>
Range of dates for which you want to include data. If this value is
omitted, results for all dates are returned. <p class="note"><b>Note:</b>
This field is only used by the report download service. For all other
services, it is ignored.</p> <span class="constraint DateRangeWithinRange">
This range must be contained within the range [19700101, 20380101].</span>
</documentation>
</annotation>
</element>
<element maxOccurs="unbounded" minOccurs="0" name="ordering"
type="tns:OrderBy">

<annotation>

<documentation>
The fields on which you want to sort, and the sort order. The order in the
list is significant: The first element in the list indicates the primary
sort order, the next specifies the secondary sort order and so on.
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="paging" type="tns:Paging">

<annotation>

<documentation>Pagination information.</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="SelectorError">

<annotation>

<documentation>
Represents possible error codes for {@link Selector}.
</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason" type=
"tns:SelectorError.Reason">

<annotation>

<documentation>The error reason represented by enum.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType abstract="true" name="Setting">

<annotation>

<documentation>Base type for AdWords campaign settings.</documentation>
</annotation>
<sequence>

<element maxOccurs="1" minOccurs="0" name="Setting.Type" type="xsd:string">

<annotation>

<documentation>
Indicates that this instance is a subtype of Setting. Although this field
is returned in the response, it is ignored on input and cannot be selected.
Specify xsi:type instead.
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="SettingError">

<annotation>

<documentation>Indicates a problem with campaign settings.</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason"
type="tns:SettingError.Reason">

<annotation>

<documentation>The setting error reason.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="ShoppingSetting">

<annotation>

<documentation>
Setting for shopping campaigns. Defines the universe of products covered by
the campaign. Encapsulates a merchant ID, sales country, and campaign
priority.
</documentation>
</annotation>
<complexContent>

<extension base="tns:Setting">

<sequence>

<element maxOccurs="1" minOccurs="0" name="merchantId" type="xsd:long">

<annotation>

<documentation>
ID of the Merchant Center account. <span class="constraint Required">This
field is required and should not be {@code null} when it is contained
within {@link Operator}s : ADD.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="salesCountry" type="xsd:string">

<annotation>

<documentation>
Sales country of products to include in the campaign. This must be set to
'ZZ' for Campaigns of types other than {@link
AdvertisingChannelType#SHOPPING} <span class="constraint Required">This
field is required and should not be {@code null} when it is contained
within {@link Operator}s : ADD.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="campaignPriority" type="xsd:int">

<annotation>

<documentation>
Priority of the campaign. Campaigns with numerically higher priorities take
precedence over those with lower priorities. <span class="constraint
InRange">This field must be between 0 and 2, inclusive.</span> <span class="constraint
Required">This field is required and should not be {@code null} when it is
contained within {@link Operator}s : ADD.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="enableLocal" type="xsd:boolean">

<annotation>

<documentation>Enable local inventory ads.</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="purchasePlatform" type=
"tns:ShoppingPurchasePlatform">

<annotation>

<documentation>
The platform on which a shopping product can be purchased. The merchantId
must also be provided if changing purchase platform to GOOGLE or
MERCHANT_AND_GOOGLE.
</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="SizeLimitError">

<annotation>

<documentation>
Indicates that the number of entries in the request or response exceeds the
system limit.
</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason"
type="tns:SizeLimitError.Reason">

<annotation>

<documentation>The error reason represented by an enum.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="SoapHeader">

<annotation>

<documentation>
Defines the required and optional elements within the header of a SOAP
request.
</documentation>
</annotation>
<sequence>

<element maxOccurs="1" minOccurs="0" name="clientCustomerId" type=
"xsd:string">

<annotation>

<documentation>
The header identifies the customer id of the client of the AdWords manager,
if an AdWords manager is acting on behalf of their client or the customer
id of the advertiser managing their own account.
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="developerToken"
type="xsd:string">

<annotation>

<documentation>
Developer token to identify that the person making the call has enough
quota.
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="userAgent" type="xsd:string">

<annotation>

<documentation>
UserAgent is used to track distribution of API client programs and
application usage. The client is responsible for putting in a meaningful
value for tracking purposes. To be clear this is not the same as an HTTP
user agent.
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="validateOnly" type="xsd:boolean">

<annotation>

<documentation>Used to validate the request without executing it.</
documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="partialFailure" type=
"xsd:boolean">

<annotation>

<documentation>
If true, API will try to commit as many error free operations as possible
and report the other operations' errors. <p>Ignored for non-mutate calls.
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="SoapResponseHeader">

<annotation>

<documentation>
Defines the elements within the header of a SOAP response.
</documentation>
</annotation>
<sequence>

<element maxOccurs="1" minOccurs="0" name="requestId" type="xsd:string">

<annotation>

<documentation>
Unique id that identifies this request. If developers have any support
issues, sending us this id will enable us to find their request more easily.
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="serviceName" type="xsd:string">

<annotation>

<documentation>The name of the service being invoked.</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="methodName" type="xsd:string">

<annotation>

<documentation>The name of the method being invoked.</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="operations" type="xsd:long">

<annotation>

<documentation>
Number of operations performed for this SOAP request.
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="responseTime" type="xsd:long">

<annotation>

<documentation>
Elapsed time in milliseconds between the AdWords API receiving the request
and sending the response.
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="StatsQueryError">

<annotation>

<documentation>
Represents possible error codes when querying for stats.
</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason"
type="tns:StatsQueryError.Reason">

<annotation>

<documentation>The error reason represented by an enum.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="StringFormatError">

<annotation>

<documentation>
A list of error code for reporting invalid content of input strings.
</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason"
type="tns:StringFormatError.Reason"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="StringLengthError">

<annotation>

<documentation>
Errors associated with the length of the given string being out of bounds.
</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason"
type="tns:StringLengthError.Reason">

<annotation>

<documentation>The error reason represented by an enum.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="String_StringMapEntry">

<annotation>

<documentation>
This represents an entry in a map with a key of type String and value of
type String.
</documentation>
</annotation>
<sequence>

<element maxOccurs="1" minOccurs="0" name="key" type="xsd:string"/>
<element maxOccurs="1" minOccurs="0" name="value" type="xsd:string"/>
</sequence>
</complexType>
<complexType name="TargetCpaBiddingScheme">

<annotation>

<documentation>
<a href="https://support.google.com/adwords/answer/6268632">Target CPA</a>
is an automated bid strategy that sets bids to help get as many conversions
as possible at the target cost per acquisition (CPA) you set. <p>A
{@linkplain #targetCpa target CPA} must be set for the strategy, but can
also be optionally set for individual ad groups in the strategy. Ad group
targets, if set, will override strategy targets. <p>Note that campaigns
must meet <a
href="https://support.google.com/adwords/answer/2471188">specific
eligibility requirements</a> before they can use the Target CPA bid
strategy. <span class="constraint AdxEnabled">This is disabled for
AdX.</span>
</documentation>
</annotation>
<complexContent>

<extension base="tns:BiddingScheme">

<sequence>

<element maxOccurs="1" minOccurs="0" name="targetCpa" type="tns:Money">

<annotation>

<documentation>
Average cost per acquisition (CPA) target. This target should be greater
than or equal to minimum billable unit based on the currency for the
account. <span class="constraint Selectable">This field can be selected
using the value "TargetCpa".</span> <span class="constraint Required">This
field is required and should not be {@code null}.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="maxCpcBidCeiling"
type="tns:Money">

<annotation>

<documentation>
Maximum cpc bid limit that applies to all keywords managed by the strategy.
<span class="constraint Selectable">This field can be selected using the
value "TargetCpaMaxCpcBidCeiling".</span><span class="constraint
Filterable">This field can be filtered on.</span> <span class="constraint
InRange">This field must be greater than or equal to 0.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="maxCpcBidFloor" type="tns:Money">

<annotation>

<documentation>
Minimum cpc bid limit that applies to all keywords managed by the strategy.
<span class="constraint Selectable">This field can be selected using the
value "TargetCpaMaxCpcBidFloor".</span><span class="constraint
Filterable">This field can be filtered on.</span> <span class="constraint
InRange">This field must be greater than or equal to 0.</span>
</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="TargetOutrankShareBiddingScheme">

<annotation>

<documentation>
Target Outrank Share bidding strategy is an automated bidding strategy
which automatically sets bids so that the customer's ads appear above a
specified competitors' ads for a specified target fraction of the
advertiser's eligible impressions on Google.com. <span class="constraint
AdxEnabled">This is disabled for AdX.</span>
</documentation>
</annotation>
<complexContent>

<extension base="tns:BiddingScheme">

<sequence>

<element maxOccurs="1" minOccurs="0" name="targetOutrankShare" type=
"xsd:int">

<annotation>

<documentation>
Specifies the target fraction (in micros) of auctions where the advertiser
should outrank the competitor. The advertiser outranks the competitor in an
auction if either the advertiser appears above the competitor in the search
results, or appears in the search results when the competitor does not. <span
class="constraint InRange">This field must be between 1 and 1000000,
inclusive.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="competitorDomain"
type="xsd:string">

<annotation>

<documentation>Competitor's visible domain URL.</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="maxCpcBidCeiling" type=
"tns:Money">

<annotation>

<documentation>Ceiling on max CPC bids.</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="bidChangesForRaisesOnly" type=
"xsd:boolean">

<annotation>

<documentation>
Controls whether the strategy always follows bid estimate changes, or only
increases. If false, always sets a keyword's new bid to the estimate that
will meet the target. If true, only updates a keyword's bid if the current
bid estimate is greater than the current bid.
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="raiseBidWhenLowQualityScore"
type="xsd:boolean">

<annotation>

<documentation>
Controls whether the strategy is allowed to raise bids on keywords with
lower-range quality scores.
</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="TargetingSettingDetail">

<annotation>

<documentation>
Specifies if criteria of this type group should be used to restrict
targeting, or if ads can serve anywhere and criteria are only used in
determining the bid. <p>For more information, see <a href=
"https://support.google.com/adwords/answer/6056342">Targeting Settings<
/a>.</p>
</documentation>
</annotation>
<sequence>

<element maxOccurs="1" minOccurs="0" name="criterionTypeGroup" type=
"tns:CriterionTypeGroup">

<annotation>

<documentation>
The criterion type group that these settings apply to. <span class="constraint
Required">This field is required and should not be {@code null}.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="targetAll" type="xsd:boolean">

<annotation>

<documentation>
If true, criteria of this type can be used to modify bidding but will not
restrict targeting of ads. This is equivalent to "Bid only" in the AdWords
user interface. If false, restricts your ads to showing only for the
criteria you have selected for this CriterionTypeGroup. This is equivalent
to "Target and Bid" in the AdWords user interface. The default setting for
a CriterionTypeGroup is false ("Target and Bid"). <span class="constraint
Required">This field is required and should not be {@code null}.</span>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="TargetRoasBiddingScheme">

<annotation>

<documentation>
Target Roas bidding strategy helps you maximize revenue while averaging a
specific target return on average spend (ROAS). <p>For example: If
TargetRoas is 1.5, the strategy will create as much revenue as possible
while ensuring that every $1.00 of clicks provides $1.50 in conversion
value. <p>Note that campaigns must meet <a href="//support.google.com/
adwords/answer/6268637">specific eligibility requirements</a> before they
can use the <code>TargetRoasBiddingScheme</code> bidding strategy. <span
class="constraint AdxEnabled">This is disabled for AdX.</span>
</documentation>
</annotation>
<complexContent>

<extension base="tns:BiddingScheme">

<sequence>

<element maxOccurs="1" minOccurs="0" name="targetRoas" type="xsd:double">

<annotation>

<documentation>
The target return on average spend (ROAS). <span class="constraint
Selectable">This field can be selected using the value "TargetRoas".</span>
<span class="constraint InRange">This field must be between 0.01 and
1000.0, inclusive.</span> <span class="constraint Required">This field is
required and should not be {@code null}.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="bidCeiling" type="tns:Money">

<annotation>

<documentation>
Maximum bid limit that applies to all keywords managed by the strategy.
<span class="constraint Selectable">This field can be selected using the
value "TargetRoasBidCeiling".</span> <span class="constraint InRange">This
field must be greater than or equal to 0.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="bidFloor" type="tns:Money">

<annotation>

<documentation>
Minimum bid limit that applies to all keywords managed by the strategy.
<span class="constraint Selectable">This field can be selected using the
value "TargetRoasBidFloor".</span> <span class="constraint InRange">This
field must be greater than or equal to 0.</span>
</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="TargetSpendBiddingScheme">

<annotation>

<documentation>
<a href="https://support.google.com/adwords/answer/6268626">Target
Spend</a> is an automated bid strategy that sets your bids to help get as
many clicks as possible within your budget. <span class="constraint
AdxEnabled">This is disabled for AdX.</span>
</documentation>
</annotation>
<complexContent>

<extension base="tns:BiddingScheme">

<sequence>

<element maxOccurs="1" minOccurs="0" name="bidCeiling" type="tns:Money">

<annotation>

<documentation>
The largest max CPC bid that can be set by the TargetSpend bidder. <span
class="constraint Selectable">This field can be selected using the value
"TargetSpendBidCeiling".</span> <span class="constraint InRange">This field
must be greater than or equal to 0.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="spendTarget" type="tns:Money">

<annotation>

<documentation>
A spend target under which to maximize clicks. The TargetSpend bidder will
attempt to spend the smaller of this value or the natural throttling spend
amount. If not specified, the budget is used as the spend target. <span
class="constraint Selectable">This field can be selected using the value
"TargetSpendSpendTarget".</span> <span class="constraint InRange">This
field must be greater than or equal to 0.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="enhancedCpcEnabled" type=
"xsd:boolean">

<annotation>

<documentation>
The enhanced CPC bidding option for the campaign, which enables CPC bids to
be enhanced based on conversion optimizer data. For more information about
enhanced CPC, see the <a href="//support.google.com/adwords/answer/2464964">
AdWords Help Center</a>. <p class="special">This attribute can only be set
on a <em>standard</em> bidding strategy. Attempting to set this attribute
on a portfolio bidding strategy will result in an error. <span class="constraint
Selectable">This field can be selected using the value
"TargetSpendEnhancedCpcEnabled".</span><span class="constraint Filterable">
This field can be filtered on.</span> <span class="constraint CampaignType">
This field may not be set for campaign channel subtype SEARCH_MOBILE_APP.</
span>
</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="TargetingSetting">

<annotation>

<documentation>
Setting for targeting related features. This is applicable at Campaign and
AdGroup level.
</documentation>
</annotation>
<complexContent>

<extension base="tns:Setting">

<sequence>

<element maxOccurs="unbounded" minOccurs="0" name="details"
type="tns:TargetingSettingDetail">

<annotation>

<documentation>
The list of per-criterion-type-group targeting settings.
</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="TrackingSetting">

<annotation>

<documentation>Campaign level settings for tracking information.</
documentation>
</annotation>
<complexContent>

<extension base="tns:Setting">

<sequence>

<element maxOccurs="1" minOccurs="0" name="trackingUrl" type="xsd:string">

<annotation>

<documentation>
The url used for dynamic tracking. For more information, see the article <a
href="https://support.google.com/adwords/answer/2549100"> Use dynamic
tracking URLs</a>. Specify "NONE" to clear existing url. <span class="constraint
StringLength">This string must not be empty.</span>
</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="UniversalAppCampaignAdsPolicyDecisions">

<annotation>

<documentation>
Contains Universal App Campaign Ads Policy decisions with asset identifier
information, where available.
</documentation>
</annotation>
<sequence>

<element maxOccurs="1" minOccurs="0" name="universalAppCampaignAsset" type="
tns:UniversalAppCampaignAsset">

<annotation>

<documentation>
Used to identify assets that are associated with the Ads Policy decisions.
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="assetId" type="xsd:string">

<annotation>

<documentation>
Unique identifier, which when combined with the UniversalAppCampaignAsset,
can be used to uniquely identify the exact asset. <p>For example, in the
case of {@link UniversalAppCampaignAsset}.VIDEO - the id could be used to
identify the individual video.
</documentation>
</annotation>
</element>
<element maxOccurs="unbounded" minOccurs="0" name="policyTopicEntries"
type="tns:PolicyTopicEntry">

<annotation>

<documentation>
List of policy decisions associated with the asset(s).
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="UrlError">

<annotation>

<documentation>Url Validation errors.</documentation>
</annotation>
<complexContent>

<extension base="tns:ApiError">

<sequence>

<element maxOccurs="1" minOccurs="0" name="reason" type="tns:UrlError.Reason
">

<annotation>

<documentation>The error reason represented by an enum.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="VanityPharma">

<annotation>

<documentation>
Describes how unbranded pharma ads will be displayed.
</documentation>
</annotation>
<sequence>

<element maxOccurs="1" minOccurs="0" name="vanityPharmaDisplayUrlMode"
type="tns:VanityPharmaDisplayUrlMode">

<annotation>

<documentation>
The display mode for vanity pharma URLs. <span class="constraint Selectable">This
field can be selected using the value "VanityPharmaDisplayUrlMode".</span><span
class="constraint Filterable">This field can be filtered on.</span>
</documentation>
</annotation>
</element>
<element maxOccurs="1" minOccurs="0" name="vanityPharmaText" type="tns:
VanityPharmaText">

<annotation>

<documentation>
The text that will be displayed in display URL of the text ad when website
description is the selected display mode for vanity pharma URLs. <span
class="constraint Selectable">This field can be selected using the value "
VanityPharmaText".</span><span class="constraint Filterable">This field can
be filtered on.</span>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<simpleType name="AdServingOptimizationStatus">

<annotation>

<documentation>Ad serving status of campaign.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="OPTIMIZE">

<annotation>

<documentation>
Ad serving is optimized based on CTR for the campaign.
</documentation>
</annotation>
</enumeration>
<enumeration value="CONVERSION_OPTIMIZE">

<annotation>

<documentation>
Ad serving is optimized based on CTR * Conversion for the campaign. If the
campaign is not in the conversion optimizer bidding strategy, it will
default to OPTIMIZED.
</documentation>
</annotation>
</enumeration>
<enumeration value="ROTATE">

<annotation>

<documentation>
Ads are rotated evenly for 90 days, then optimized for clicks.
</documentation>
</annotation>
</enumeration>
<enumeration value="ROTATE_INDEFINITELY">

<annotation>

<documentation>
Show lower performing ads more evenly with higher performing ads, and do
not optimize.
</documentation>
</annotation>
</enumeration>
<enumeration value="UNAVAILABLE">

<annotation>

<documentation>Ad serving optimization status is not
available.</documentation>
</annotation>
</enumeration>
<enumeration value="UNKNOWN">

<annotation>

<documentation>
<span class="constraint Rejected">Used for return value only. An
enumeration could not be processed, typically due to incompatibility with
your WSDL version.</span>
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="AdvertisingChannelSubType">

<annotation>

<documentation>
A non-mutable specialization of an Advertising Channel.
</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="UNKNOWN">

<annotation>

<documentation>
<span class="constraint Rejected">Used for return value only. An
enumeration could not be processed, typically due to incompatibility with
your WSDL version.</span>
</documentation>
</annotation>
</enumeration>
<enumeration value="SEARCH_MOBILE_APP">

<annotation>

<documentation>Mobile App Campaigns for Search</documentation>
</annotation>
</enumeration>
<enumeration value="DISPLAY_MOBILE_APP">

<annotation>

<documentation>Mobile App Campaigns for Display</documentation>
</annotation>
</enumeration>
<enumeration value="SEARCH_EXPRESS">

<annotation>

<documentation>AdWords Express campaigns for search.</documentation>
</annotation>
</enumeration>
<enumeration value="DISPLAY_EXPRESS">

<annotation>

<documentation>AdWords Express campaigns for display.</documentation>
</annotation>
</enumeration>
<enumeration value="UNIVERSAL_APP_CAMPAIGN">

<annotation>

<documentation>
Campaigns specialized for advertising mobile app installations, that
targets multiple advertising channels across search, display and youtube.
Google manages the keywords and ads for these campaigns.
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="AdvertisingChannelType">

<annotation>

<documentation>
The channel type a campaign may target to serve on.
</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="UNKNOWN">

<annotation>

<documentation>
<span class="constraint Rejected">Used for return value only. An
enumeration could not be processed, typically due to incompatibility with
your WSDL version.</span>
</documentation>
</annotation>
</enumeration>
<enumeration value="SEARCH">

<annotation>

<documentation>
Search Network. Includes display bundled, and Search+ campaigns.
</documentation>
</annotation>
</enumeration>
<enumeration value="DISPLAY">

<annotation>

<documentation>Google Display Network only.</documentation>
</annotation>
</enumeration>
<enumeration value="SHOPPING">

<annotation>

<documentation>
Shopping campaigns serve on the shopping property and on google.com search
results.
</documentation>
</annotation>
</enumeration>
<enumeration value="MULTI_CHANNEL">

<annotation>

<documentation>
Universal app campaigns that target multiple channels across search,
display, youtube, etc.
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="AdxError.Reason">

<annotation>

<documentation>The reasons for the AdX error.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="UNSUPPORTED_FEATURE">

<annotation>

<documentation>Attempt to use non-AdX feature by AdX
customer.</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="AuthenticationError.Reason">

<annotation>

<documentation>The single reason for the authentication
failure.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="AUTHENTICATION_FAILED">

<annotation>

<documentation>Authentication of the request failed.</documentation>
</annotation>
</enumeration>
<enumeration value="CLIENT_CUSTOMER_ID_IS_REQUIRED">

<annotation>

<documentation>
Client Customer Id is required if CustomerIdMode is set to
CLIENT_EXTERNAL_CUSTOMER_ID. Starting version V201409 ClientCustomerId will
be required for all requests except for {@link CustomerService#get}
</documentation>
</annotation>
</enumeration>
<enumeration value="CLIENT_EMAIL_REQUIRED">

<annotation>

<documentation>
Client Email is required if CustomerIdMode is set to
CLIENT_EXTERNAL_EMAIL_FIELD.
</documentation>
</annotation>
</enumeration>
<enumeration value="CLIENT_CUSTOMER_ID_INVALID">

<annotation>

<documentation>Client customer Id is not a number.</documentation>
</annotation>
</enumeration>
<enumeration value="CLIENT_EMAIL_INVALID">

<annotation>

<documentation>Client customer Id is not a number.</documentation>
</annotation>
</enumeration>
<enumeration value="CLIENT_EMAIL_FAILED_TO_AUTHENTICATE">

<annotation>

<documentation>Client email is not a valid customer email.</documentation>
</annotation>
</enumeration>
<enumeration value="CUSTOMER_NOT_FOUND">

<annotation>

<documentation>
No customer found for the customer id provided in the header.
</documentation>
</annotation>
</enumeration>
<enumeration value="GOOGLE_ACCOUNT_DELETED">

<annotation>

<documentation>Client's Google Account is deleted.</documentation>
</annotation>
</enumeration>
<enumeration value="GOOGLE_ACCOUNT_COOKIE_INVALID">

<annotation>

<documentation>
Google account login token in the cookie is invalid.
</documentation>
</annotation>
</enumeration>
<enumeration value="FAILED_TO_AUTHENTICATE_GOOGLE_ACCOUNT">

<annotation>

<documentation>
problem occurred during Google account authentication.
</documentation>
</annotation>
</enumeration>
<enumeration value="GOOGLE_ACCOUNT_USER_AND_ADS_USER_MISMATCH">

<annotation>

<documentation>
The user in the google account login token does not match the UserId in the
cookie.
</documentation>
</annotation>
</enumeration>
<enumeration value="LOGIN_COOKIE_REQUIRED">

<annotation>

<documentation>Login cookie is required for authentication.</documentation>
</annotation>
</enumeration>
<enumeration value="NOT_ADS_USER">

<annotation>

<documentation>User in the cookie is not a valid Ads user.</documentation>
</annotation>
</enumeration>
<enumeration value="OAUTH_TOKEN_INVALID">

<annotation>

<documentation>Oauth token in the header is not valid.</documentation>
</annotation>
</enumeration>
<enumeration value="OAUTH_TOKEN_EXPIRED">

<annotation>

<documentation>Oauth token in the header has expired.</documentation>
</annotation>
</enumeration>
<enumeration value="OAUTH_TOKEN_DISABLED">

<annotation>

<documentation>Oauth token in the header has been disabled.</documentation>
</annotation>
</enumeration>
<enumeration value="OAUTH_TOKEN_REVOKED">

<annotation>

<documentation>Oauth token in the header has been revoked.</documentation>
</annotation>
</enumeration>
<enumeration value="OAUTH_TOKEN_HEADER_INVALID">

<annotation>

<documentation>Oauth token HTTP header is malformed.</documentation>
</annotation>
</enumeration>
<enumeration value="LOGIN_COOKIE_INVALID">

<annotation>

<documentation>Login cookie is not valid.</documentation>
</annotation>
</enumeration>
<enumeration value="FAILED_TO_RETRIEVE_LOGIN_COOKIE">

<annotation>

<documentation>Failed to decrypt the login cookie.</documentation>
</annotation>
</enumeration>
<enumeration value="USER_ID_INVALID">

<annotation>

<documentation>User Id in the header is not a valid id.</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="AuthorizationError.Reason">

<annotation>

<documentation>The reasons for the authorization error.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="UNABLE_TO_AUTHORIZE">

<annotation>

<documentation>
Could not complete authorization due to an internal problem.
</documentation>
</annotation>
</enumeration>
<enumeration value="NO_ADWORDS_ACCOUNT_FOR_CUSTOMER">

<annotation>

<documentation>Customer has no AdWords account.</documentation>
</annotation>
</enumeration>
<enumeration value="USER_PERMISSION_DENIED">

<annotation>

<documentation>User doesn't have permission to access
customer.</documentation>
</annotation>
</enumeration>
<enumeration value="EFFECTIVE_USER_PERMISSION_DENIED">

<annotation>

<documentation>
Effective user doesn't have permission to access this customer.
</documentation>
</annotation>
</enumeration>
<enumeration value="USER_HAS_READONLY_PERMISSION">

<annotation>

<documentation>User has read-only permission cannot mutate.</documentation>
</annotation>
</enumeration>
<enumeration value="NO_CUSTOMER_FOUND">

<annotation>

<documentation>No customer found.</documentation>
</annotation>
</enumeration>
<enumeration value="SERVICE_ACCESS_DENIED">

<annotation>

<documentation>
Developer doesn't have permission to access service.
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="BidSource">

<annotation>

<documentation>
Indicate where a criterion's bid came from: criterion or the adgroup it
belongs to.
</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="ADGROUP">

<annotation>

<documentation>Effective Bid is Adgroup level bid</documentation>
</annotation>
</enumeration>
<enumeration value="CRITERION">

<annotation>

<documentation>Effective Bid is Keyword level bid</documentation>
</annotation>
</enumeration>
<enumeration value="ADGROUP_BIDDING_STRATEGY">

<annotation>

<documentation>
Effective Bid is inherited from Adgroup Bidding Strategy
</documentation>
</annotation>
</enumeration>
<enumeration value="CAMPAIGN_BIDDING_STRATEGY">

<annotation>

<documentation>
Effective Bid is inherited from Campaign Bidding Strategy
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="BiddingErrors.Reason">

<restriction base="xsd:string">

<enumeration value="BIDDING_STRATEGY_TRANSITION_NOT_ALLOWED">

<annotation>

<documentation>Cannot transition to new bidding strategy.</documentation>
</annotation>
</enumeration>
<enumeration value="BIDDING_STRATEGY_NOT_COMPATIBLE_WITH_ADGROUP_OVERRIDES">

<annotation>

<documentation>
Bidding strategy cannot be overridden by current ad group bidding strategy.
</documentation>
</annotation>
</enumeration>
<enumeration value="
BIDDING_STRATEGY_NOT_COMPATIBLE_WITH_ADGROUP_CRITERIA_OVERRIDES">

<annotation>

<documentation>
Bidding strategy cannot be overridden by current criteria bidding strategy.
</documentation>
</annotation>
</enumeration>
<enumeration value="CAMPAIGN_BIDDING_STRATEGY_CANNOT_BE_OVERRIDDEN">

<annotation>

<documentation>Cannot override campaign bidding strategy.</documentation>
</annotation>
</enumeration>
<enumeration value="ADGROUP_BIDDING_STRATEGY_CANNOT_BE_OVERRIDDEN">

<annotation>

<documentation>Cannot override ad group bidding strategy.</documentation>
</annotation>
</enumeration>
<enumeration value="CANNOT_ATTACH_BIDDING_STRATEGY_TO_CAMPAIGN">

<annotation>

<documentation>Cannot attach bidding strategy to campaign.</documentation>
</annotation>
</enumeration>
<enumeration value="CANNOT_ATTACH_BIDDING_STRATEGY_TO_ADGROUP">

<annotation>

<documentation>Cannot attach bidding strategy to ad group.</documentation>
</annotation>
</enumeration>
<enumeration value="CANNOT_ATTACH_BIDDING_STRATEGY_TO_ADGROUP_CRITERIA">

<annotation>

<documentation>Cannot attach bidding strategy to criteria.</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_ANONYMOUS_BIDDING_STRATEGY_TYPE">

<annotation>

<documentation>
Bidding strategy is not supported or cannot be used as anonymous.
</documentation>
</annotation>
</enumeration>
<enumeration value="BIDS_NOT_ALLLOWED">

<annotation>

<documentation>
No bids may be set. The bid list must be null or empty.
</documentation>
</annotation>
</enumeration>
<enumeration value="DUPLICATE_BIDS">

<annotation>

<documentation>
The bid list contains two or more bids of the same type.
</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_BIDDING_SCHEME">

<annotation>

<documentation>
The bidding scheme does not match the bidding strategy type.
</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_BIDDING_STRATEGY_TYPE">

<annotation>

<documentation>The type does not match the named strategy's
type.</documentation>
</annotation>
</enumeration>
<enumeration value="MISSING_BIDDING_STRATEGY_TYPE">

<annotation>

<documentation>The bidding strategy type is missing.</documentation>
</annotation>
</enumeration>
<enumeration value="NULL_BID">

<annotation>

<documentation>The bid list contains a null entry.</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_BID">

<annotation>

<documentation>The bid is invalid.</documentation>
</annotation>
</enumeration>
<enumeration value="BIDDING_STRATEGY_NOT_AVAILABLE_FOR_ACCOUNT_TYPE">

<annotation>

<documentation>
Bidding strategy is not available for the account type.
</documentation>
</annotation>
</enumeration>
<enumeration value="CONVERSION_TRACKING_NOT_ENABLED">

<annotation>

<documentation>
Conversion tracking is not enabled for the campaign for VBB transition.
</documentation>
</annotation>
</enumeration>
<enumeration value="NOT_ENOUGH_CONVERSIONS">

<annotation>

<documentation>
Not enough conversions tracked for VBB transitions.
</documentation>
</annotation>
</enumeration>
<enumeration value="CANNOT_CREATE_CAMPAIGN_WITH_BIDDING_STRATEGY">

<annotation>

<documentation>
Campaign can not be created with given bidding strategy. It can be
transitioned to the strategy, once eligible.
</documentation>
</annotation>
</enumeration>
<enumeration value="
CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_AD_GROUP_LEVEL_POP_BIDDING_STRATEGY
">

<annotation>

<documentation>
Cannot target content network only as ad group uses Page One Promoted
bidding strategy.
</documentation>
</annotation>
</enumeration>
<enumeration value="
CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CAMPAIGN_LEVEL_POP_BIDDING_STRATEGY
">

<annotation>

<documentation>
Cannot target content network only as campaign uses Page One Promoted
bidding strategy.
</documentation>
</annotation>
</enumeration>
<enumeration value="BIDDING_STRATEGY_NOT_SUPPORTED_WITH_AD_SCHEDULE">

<annotation>

<documentation>
Budget Optimizer and Target Spend bidding strategies are not supported for
campaigns with AdSchedule targeting.
</documentation>
</annotation>
</enumeration>
<enumeration value="PAY_PER_CONVERSION_NOT_AVAILABLE_FOR_CUSTOMER">

<annotation>

<documentation>
Pay per conversion is not available to all the customer, only few
whitelisted customers can use this.
</documentation>
</annotation>
</enumeration>
<enumeration value="PAY_PER_CONVERSION_NOT_ALLOWED_WITH_TARGET_CPA">

<annotation>

<documentation>Pay per conversion is not allowed with Target
CPA.</documentation>
</annotation>
</enumeration>
<enumeration value="BIDDING_STRATEGY_NOT_ALLOWED_FOR_SEARCH_ONLY_CAMPAIGNS">

<annotation>

<documentation>
Cannot set bidding strategy to Manual CPM for search network only campaigns.
</documentation>
</annotation>
</enumeration>
<enumeration value="BIDDING_STRATEGY_NOT_SUPPORTED_IN_DRAFTS_OR_EXPERIMENTS
">

<annotation>

<documentation>
The bidding strategy is not supported for use in drafts or experiments.
</documentation>
</annotation>
</enumeration>
<enumeration value="
BIDDING_STRATEGY_TYPE_DOES_NOT_SUPPORT_PRODUCT_TYPE_ADGROUP_CRITERION">

<annotation>

<documentation>
Bidding strategy type does not support product type ad group criterion.
</documentation>
</annotation>
</enumeration>
<enumeration value="BID_TOO_SMALL">

<annotation>

<documentation>Bid amount is too small.</documentation>
</annotation>
</enumeration>
<enumeration value="BID_TOO_BIG">

<annotation>

<documentation>Bid amount is too big.</documentation>
</annotation>
</enumeration>
<enumeration value="BID_TOO_MANY_FRACTIONAL_DIGITS">

<annotation>

<documentation>Bid has too many fractional digit precision.</documentation>
</annotation>
</enumeration>
<enumeration value="
ENHANCED_CPC_ENABLED_NOT_SUPPORTED_ON_PORTFOLIO_TARGET_SPEND_STRATEGY">

<annotation>

<documentation>
EnhancedCpcEnabled cannot be set on <em>portfolio</em> Target Spend
strategies.
</documentation>
</annotation>
</enumeration>
<enumeration value="UNKNOWN"/>
</restriction>
</simpleType>
<simpleType name="BiddingStrategySource">

<annotation>

<documentation>
Indicates where bidding strategy came from: campaign, adgroup or criterion.
</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="CAMPAIGN">

<annotation>

<documentation>Bidding strategy is defined on campaign
level.</documentation>
</annotation>
</enumeration>
<enumeration value="ADGROUP">

<annotation>

<documentation>Bidding strategy is defined on adgroup level.</documentation>
</annotation>
</enumeration>
<enumeration value="CRITERION">

<annotation>

<documentation>Bidding strategy is defined on criterion
level.</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="BiddingStrategyType">

<annotation>

<documentation>
The bidding strategy type. See {@linkplain BiddingStrategyConfiguration}
for additional information.
</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="MANUAL_CPC">

<annotation>

<documentation>
Manual click based bidding where user pays per click. See {@linkplain
ManualCpcBiddingScheme} for more details.
</documentation>
</annotation>
</enumeration>
<enumeration value="MANUAL_CPM">

<annotation>

<documentation>
Manual impression based bidding where user pays per thousand impressions.
See {@linkplain ManualCpmBiddingScheme} for more details.
</documentation>
</annotation>
</enumeration>
<enumeration value="PAGE_ONE_PROMOTED">

<annotation>

<documentation>
Page-One Promoted is an automated bid strategy that sets max CPC bids to
target impressions on page one or page one promoted slots on google.com.
See {@linkplain PageOnePromotedBiddingScheme} for more details.
</documentation>
</annotation>
</enumeration>
<enumeration value="TARGET_SPEND">

<annotation>

<documentation>
Target Spend (Maximize Clicks) is an automated bid strategy that sets your
bids to help get as many clicks as possible within your budget. See
{@linkplain TargetSpendBiddingScheme} for more details.
</documentation>
</annotation>
</enumeration>
<enumeration value="ENHANCED_CPC">

<annotation>

<documentation>
Enhanced CPC is a bidding strategy that raises your bids for clicks that
seem more likely to lead to a conversion and lowers them for clicks where
they seem less likely. See {@linkplain EnhancedCpcBiddingScheme} for more
details.
</documentation>
</annotation>
</enumeration>
<enumeration value="TARGET_CPA">

<annotation>

<documentation>
Target CPA is an automated bid strategy that sets bids to help get as many
conversions as possible at the target cost per acquisition (CPA) you set.
See {@linkplain TargetCpaBiddingScheme} for more details.
</documentation>
</annotation>
</enumeration>
<enumeration value="TARGET_ROAS">

<annotation>

<documentation>
Target ROAS is an automated bidding strategy that helps you maximize
revenue while averaging a specific target return on average spend (ROAS).
See {@linkplain TargetRoasBiddingScheme} for more details.
</documentation>
</annotation>
</enumeration>
<enumeration value="MAXIMIZE_CONVERSIONS">

<annotation>

<documentation>
Maximize conversions is an automated bidding strategy that automatically
sets bids to help get the most conversions for your campaign while spending
your budget. See {@linkplain MaximizeConversionsBiddingScheme} for more
details.
</documentation>
</annotation>
</enumeration>
<enumeration value="TARGET_OUTRANK_SHARE">

<annotation>

<documentation>
Target Outrank Share is an automated bidding strategy that sets bids based
on the target fraction of auctions where the advertiser should outrank a
specific competitor. See {@linkplain TargetOutrankShareBiddingScheme} for
more details.
</documentation>
</annotation>
</enumeration>
<enumeration value="NONE">

<annotation>

<documentation>
Special bidding strategy type used to reset the bidding strategy at AdGroup
and AdGroupCriterion.
</documentation>
</annotation>
</enumeration>
<enumeration value="UNKNOWN">

<annotation>

<documentation>
<span class="constraint Rejected">Used for return value only. An
enumeration could not be processed, typically due to incompatibility with
your WSDL version.</span>
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="Budget.BudgetDeliveryMethod">

<annotation>

<documentation>Budget delivery methods.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="STANDARD">

<annotation>

<documentation>
The budget server will throttle serving evenly across the entire time
period.
</documentation>
</annotation>
</enumeration>
<enumeration value="ACCELERATED">

<annotation>

<documentation>
The budget server will not throttle serving, and ads will serve as fast as
possible.
</documentation>
</annotation>
</enumeration>
<enumeration value="UNKNOWN"/>
</restriction>
</simpleType>
<simpleType name="Budget.BudgetStatus">

<restriction base="xsd:string">

<enumeration value="ENABLED"/>
<enumeration value="REMOVED"/>
<enumeration value="UNKNOWN"/>
</restriction>
</simpleType>
<simpleType name="BudgetError.Reason">

<annotation>

<documentation>The reasons for the budget error.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="BUDGET_REMOVED">

<annotation>

<documentation>The requested budget no longer exists.</documentation>
</annotation>
</enumeration>
<enumeration value="BUDGET_ERROR">

<annotation>

<documentation>Default budget error.</documentation>
</annotation>
</enumeration>
<enumeration value="BUDGET_IN_USE">

<annotation>

<documentation>
The budget is associated with at least one campaign, and so the budget
cannot be removed.
</documentation>
</annotation>
</enumeration>
<enumeration value="BUDGET_PERIOD_NOT_AVAILABLE">

<annotation>

<documentation>
Customer is not whitelisted for this budget period.
</documentation>
</annotation>
</enumeration>
<enumeration value="CANNOT_EDIT_SHARED_BUDGET">

<annotation>

<documentation>
Customer cannot use CampaignService to edit a shared budget.
</documentation>
</annotation>
</enumeration>
<enumeration value="CANNOT_MODIFY_FIELD_OF_IMPLICITLY_SHARED_BUDGET">

<annotation>

<documentation>
This field is not mutable on implicitly shared budgets
</documentation>
</annotation>
</enumeration>
<enumeration value="CANNOT_UPDATE_BUDGET_TO_IMPLICITLY_SHARED">

<annotation>

<documentation>
Cannot change explicitly shared budgets back to implicitly shared ones.
</documentation>
</annotation>
</enumeration>
<enumeration value="CANNOT_UPDATE_BUDGET_TO_EXPLICITLY_SHARED_WITHOUT_NAME">

<annotation>

<documentation>
An implicit budget without a name cannot be changed to explicitly shared
budget.
</documentation>
</annotation>
</enumeration>
<enumeration value="CANNOT_UPDATE_BUDGET_TO_EXPLICITLY_SHARED">

<annotation>

<documentation>
Cannot change an implicitly shared budget to an explicitly shared one.
</documentation>
</annotation>
</enumeration>
<enumeration value="
CANNOT_USE_IMPLICITLY_SHARED_BUDGET_WITH_MULTIPLE_CAMPAIGNS">

<annotation>

<documentation>
Only explicitly shared budgets can be used with multiple campaigns.
</documentation>
</annotation>
</enumeration>
<enumeration value="DUPLICATE_NAME">

<annotation>

<documentation>A budget with this name already exists.</documentation>
</annotation>
</enumeration>
<enumeration value="MONEY_AMOUNT_IN_WRONG_CURRENCY">

<annotation>

<documentation>A money amount was not in the expected
currency.</documentation>
</annotation>
</enumeration>
<enumeration value="MONEY_AMOUNT_LESS_THAN_CURRENCY_MINIMUM_CPC">

<annotation>

<documentation>
A money amount was less than the minimum CPC for currency.
</documentation>
</annotation>
</enumeration>
<enumeration value="MONEY_AMOUNT_TOO_LARGE">

<annotation>

<documentation>
A money amount was greater than the maximum allowed.
</documentation>
</annotation>
</enumeration>
<enumeration value="NEGATIVE_MONEY_AMOUNT">

<annotation>

<documentation>A money amount was negative.</documentation>
</annotation>
</enumeration>
<enumeration value="NON_MULTIPLE_OF_MINIMUM_CURRENCY_UNIT">

<annotation>

<documentation>
A money amount was not a multiple of a minimum unit.
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="CampaignError.Reason">

<annotation>

<documentation>The reasons for the target error.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="CANNOT_GO_BACK_TO_INCOMPLETE">

<annotation>

<documentation>
A complete campaign cannot go back to being incomplete
</documentation>
</annotation>
</enumeration>
<enumeration value="CANNOT_TARGET_CONTENT_NETWORK">

<annotation>

<documentation>Cannot target content network.</documentation>
</annotation>
</enumeration>
<enumeration value="CANNOT_TARGET_SEARCH_NETWORK">

<annotation>

<documentation>Cannot target search network.</documentation>
</annotation>
</enumeration>
<enumeration value="CANNOT_TARGET_SEARCH_NETWORK_WITHOUT_GOOGLE_SEARCH">

<annotation>

<documentation>
Cannot cover search network without google search network.
</documentation>
</annotation>
</enumeration>
<enumeration value="CANNOT_TARGET_GOOGLE_SEARCH_FOR_CPM_CAMPAIGN">

<annotation>

<documentation>
Cannot target Google Search network for a CPM campaign.
</documentation>
</annotation>
</enumeration>
<enumeration value="CAMPAIGN_MUST_TARGET_AT_LEAST_ONE_NETWORK">

<annotation>

<documentation>Must target at least one network.</documentation>
</annotation>
</enumeration>
<enumeration value="CANNOT_TARGET_PARTNER_SEARCH_NETWORK">

<annotation>

<documentation>
Only some Google partners are allowed to target partner search network.
</documentation>
</annotation>
</enumeration>
<enumeration value="
CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CRITERIA_LEVEL_BIDDING_STRATEGY">

<annotation>

<documentation>
Cannot target content network only as campaign has criteria-level bidding
strategy.
</documentation>
</annotation>
</enumeration>
<enumeration value="CAMPAIGN_DURATION_MUST_CONTAIN_ALL_RUNNABLE_TRIALS">

<annotation>

<documentation>
Cannot modify the start or end date such that the campaign duration would
not contain the durations of all runnable trials.
</documentation>
</annotation>
</enumeration>
<enumeration value="CANNOT_MODIFY_FOR_TRIAL_CAMPAIGN">

<annotation>

<documentation>
Cannot modify dates, budget or campaign name of a trial campaign.
</documentation>
</annotation>
</enumeration>
<enumeration value="DUPLICATE_CAMPAIGN_NAME">

<annotation>

<documentation>
Trying to modify the name of an active or paused campaign, where the name
is already assigned to another active or paused campaign.
</documentation>
</annotation>
</enumeration>
<enumeration value="INCOMPATIBLE_CAMPAIGN_FIELD">

<annotation>

<documentation>Two fields are in conflicting modes.</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_CAMPAIGN_NAME">

<annotation>

<documentation>Campaign name cannot be used.</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_AD_SERVING_OPTIMIZATION_STATUS">

<annotation>

<documentation>Given status is invalid.</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_TRACKING_URL">

<annotation>

<documentation>Error in the campaign level tracking url.</documentation>
</annotation>
</enumeration>
<enumeration value="
CANNOT_SET_BOTH_TRACKING_URL_TEMPLATE_AND_TRACKING_SETTING">

<annotation>

<documentation>
Cannot set both tracking url template and tracking setting. An user has to
clear legacy tracking setting in order to add tracking url template.
</documentation>
</annotation>
</enumeration>
<enumeration value="MAX_IMPRESSIONS_NOT_IN_RANGE">

<annotation>

<documentation>
The maximum number of impressions for Frequency Cap should be an integer
greater than 0.
</documentation>
</annotation>
</enumeration>
<enumeration value="TIME_UNIT_NOT_SUPPORTED">

<annotation>

<documentation>
Only the Day, Week and Month time units are supported.
</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_OPERATION_IF_SERVING_STATUS_HAS_ENDED">

<annotation>

<documentation>
Operation not allowed on a campaign whose serving status has ended
</documentation>
</annotation>
</enumeration>
<enumeration value="BUDGET_CANNOT_BE_SHARED">

<annotation>

<documentation>
This budget is exclusively linked to a Campaign that is using
@link{Experiment}s so it cannot be shared.
</documentation>
</annotation>
</enumeration>
<enumeration value="CAMPAIGN_CANNOT_USE_SHARED_BUDGET">

<annotation>

<documentation>
Campaigns using @link{Experiment}s cannot use a shared budget.
</documentation>
</annotation>
</enumeration>
<enumeration value="CANNOT_CHANGE_BUDGET_ON_CAMPAIGN_WITH_TRIALS">

<annotation>

<documentation>
A different budget cannot be assigned to a campaign when there are running
or scheduled trials.
</documentation>
</annotation>
</enumeration>
<enumeration value="CAMPAIGN_LABEL_DOES_NOT_EXIST">

<annotation>

<documentation>No link found between the campaign and the
label.</documentation>
</annotation>
</enumeration>
<enumeration value="CAMPAIGN_LABEL_ALREADY_EXISTS">

<annotation>

<documentation>
The label has already been attached to the campaign.
</documentation>
</annotation>
</enumeration>
<enumeration value="MISSING_SHOPPING_SETTING">

<annotation>

<documentation>
A ShoppingSetting was not found when creating a shopping campaign.
</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_SHOPPING_SALES_COUNTRY">

<annotation>

<documentation>
The country in shopping setting is not an allowed country.
</documentation>
</annotation>
</enumeration>
<enumeration value="SHOPPING_MERCHANT_NOT_ALLOWED_FOR_PURCHASES_ON_GOOGLE">

<annotation>

<documentation>
Shopping merchant is not enabled for Purchases on Google.
</documentation>
</annotation>
</enumeration>
<enumeration value="
PURCHASES_ON_GOOGLE_NOT_SUPPORTED_FOR_SHOPPING_SALES_COUNTRY">

<annotation>

<documentation>
Purchases on Google not enabled for the shopping campaign's sales country.
</documentation>
</annotation>
</enumeration>
<enumeration value="MISSING_UNIVERSAL_APP_CAMPAIGN_SETTING">

<annotation>

<documentation>
A Campaign with channel sub type UNIVERSAL_APP_CAMPAIGN must have a
UniversalAppCampaignSetting specified.
</documentation>
</annotation>
</enumeration>
<enumeration value="ADVERTISING_CHANNEL_TYPE_NOT_AVAILABLE_FOR_ACCOUNT_TYPE
">

<annotation>

<documentation>
The requested channel type is not available according to the customer's
account setting.
</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_ADVERTISING_CHANNEL_SUB_TYPE">

<annotation>

<documentation>
The AdvertisingChannelSubType is not a valid subtype of the primary channel
type.
</documentation>
</annotation>
</enumeration>
<enumeration value="AT_LEAST_ONE_CONVERSION_MUST_BE_SELECTED">

<annotation>

<documentation>At least one conversion must be selected.</documentation>
</annotation>
</enumeration>
<enumeration value="CANNOT_SET_AD_ROTATION_MODE">

<annotation>

<documentation>
Setting ad rotation mode for a campaign is not allowed. Ad rotation mode at
campaign is deprecated.
</documentation>
</annotation>
</enumeration>
<enumeration value="UNKNOWN">

<annotation>

<documentation>
Default error <span class="constraint Rejected">Used for return value only.
An enumeration could not be processed, typically due to incompatibility
with your WSDL version.</span>
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="CampaignStatus">

<annotation>

<documentation>Campaign status.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="UNKNOWN">

<annotation>

<documentation>
<span class="constraint Rejected">Used for return value only. An
enumeration could not be processed, typically due to incompatibility with
your WSDL version.</span>
</documentation>
</annotation>
</enumeration>
<enumeration value="ENABLED">

<annotation>

<documentation>
Campaign is currently serving ads depending on budget information.
</documentation>
</annotation>
</enumeration>
<enumeration value="PAUSED">

<annotation>

<documentation>Campaign has been paused by the user.</documentation>
</annotation>
</enumeration>
<enumeration value="REMOVED">

<annotation>

<documentation>Campaign has been removed.</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="CampaignTrialType">

<annotation>

<documentation>
This enum is used to indicate if this campaign is a normal campaign, a
draft campaign, or a trial campaign.
</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="UNKNOWN">

<annotation>

<documentation>
Invalid type. Should not be used except for detecting values that are
incorrect, or values that are not yet known to the user. <span class="constraint
Rejected">Used for return value only. An enumeration could not be
processed, typically due to incompatibility with your WSDL version.</span>
</documentation>
</annotation>
</enumeration>
<enumeration value="BASE">

<annotation>

<documentation>
This is a regular campaign created by the advertiser.
</documentation>
</annotation>
</enumeration>
<enumeration value="DRAFT">

<annotation>

<documentation>
This is a draft version of a campaign. It has some modifications from a
base campaign, but it does not serve or accrue stats.
</documentation>
</annotation>
</enumeration>
<enumeration value="TRIAL">

<annotation>

<documentation>
This is a trial version of a campaign. It has some modifications from a
base campaign, and a percentage of traffic is being diverted from the BASE
campaign to this trial campaign.
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="ClientTermsError.Reason">

<annotation>

<documentation>
Enums for the various reasons an error can be thrown as a result of
ClientTerms violation.
</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="INCOMPLETE_SIGNUP_CURRENT_ADWORDS_TNC_NOT_AGREED">

<annotation>

<documentation>
Customer has not agreed to the latest AdWords Terms & Conditions
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="ConversionOptimizerEligibility.RejectionReason">

<restriction base="xsd:string">

<enumeration value="CAMPAIGN_IS_NOT_ACTIVE">

<annotation>

<documentation>Campaign is not active</documentation>
</annotation>
</enumeration>
<enumeration value="NOT_CPC_CAMPAIGN">

<annotation>

<documentation>
Conversion optimizer is available to only Manual CPC campaign
</documentation>
</annotation>
</enumeration>
<enumeration value="CONVERSION_TRACKING_NOT_ENABLED">

<annotation>

<documentation>
Conversion tracking is not enabled for the Campaign
</documentation>
</annotation>
</enumeration>
<enumeration value="NOT_ENOUGH_CONVERSIONS">

<annotation>

<documentation>
The campaign does not meet the requirement to have a sufficient count of
conversions.
</documentation>
</annotation>
</enumeration>
<enumeration value="UNKNOWN"/>
</restriction>
</simpleType>
<simpleType name="CriterionTypeGroup">

<annotation>

<documentation>The list of groupings of criteria types.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="KEYWORD">

<annotation>

<documentation>
Criteria for targeting keywords. e.g. 'mars cruise' KEYWORD may be used as
a content bid dimension. Keywords are always a targeting dimension, so may
not be set as a target "ALL" dimension with {@link TargetRestriction}.
</documentation>
</annotation>
</enumeration>
<enumeration value="USER_INTEREST_AND_LIST">

<annotation>

<documentation>
Criteria for targeting lists of users. Lists may represent users with
particular interests, or they may represent users who have interacted with
an advertiser's site in particular ways.
</documentation>
</annotation>
</enumeration>
<enumeration value="VERTICAL">

<annotation>

<documentation>
Criteria for targeting similar categories of placements, e.g.
'category::Animals>Pets' Used only for content network targeting.
</documentation>
</annotation>
</enumeration>
<enumeration value="GENDER">

<annotation>

<documentation>Criteria for targeting gender.</documentation>
</annotation>
</enumeration>
<enumeration value="AGE_RANGE">

<annotation>

<documentation>Criteria for targeting age ranges.</documentation>
</annotation>
</enumeration>
<enumeration value="PLACEMENT">

<annotation>

<documentation>
Criteria for targeting placements. aka Website. e.g. 'www.flowers4sale.com'
This group also includes mobile applications and mobile app categories.
</documentation>
</annotation>
</enumeration>
<enumeration value="PARENT">

<annotation>

<documentation>Criteria for parental status targeting.</documentation>
</annotation>
</enumeration>
<enumeration value="NONE">

<annotation>

<documentation>
Special criteria type group used to reset the existing value of AdGroup's
contentBidCriterionTypeGroup.
</documentation>
</annotation>
</enumeration>
<enumeration value="UNKNOWN">

<annotation>

<documentation>
<span class="constraint Rejected">Used for return value only. An
enumeration could not be processed, typically due to incompatibility with
your WSDL version.</span>
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="DatabaseError.Reason">

<annotation>

<documentation>The reasons for the database error.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="CONCURRENT_MODIFICATION">

<annotation>

<documentation>
A concurrency problem occurred as two threads were attempting to modify
same object.
</documentation>
</annotation>
</enumeration>
<enumeration value="PERMISSION_DENIED">

<annotation>

<documentation>The permission was denied to access an
object.</documentation>
</annotation>
</enumeration>
<enumeration value="ACCESS_PROHIBITED">

<annotation>

<documentation>
The user's access to an object has been prohibited.
</documentation>
</annotation>
</enumeration>
<enumeration value="CAMPAIGN_PRODUCT_NOT_SUPPORTED">

<annotation>

<documentation>
Requested campaign belongs to a product that is not supported by the api.
</documentation>
</annotation>
</enumeration>
<enumeration value="DUPLICATE_KEY">

<annotation>

<documentation>a duplicate key was detected upon insertion</documentation>
</annotation>
</enumeration>
<enumeration value="DATABASE_ERROR">

<annotation>

<documentation>a database error has occurred</documentation>
</annotation>
</enumeration>
<enumeration value="UNKNOWN">

<annotation>

<documentation>an unknown error has occurred</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="DateError.Reason">

<annotation>

<documentation>The reasons for the target error.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="INVALID_FIELD_VALUES_IN_DATE">

<annotation>

<documentation>
Given field values do not correspond to a valid date.
</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_FIELD_VALUES_IN_DATE_TIME">

<annotation>

<documentation>
Given field values do not correspond to a valid date time.
</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_STRING_DATE">

<annotation>

<documentation>The string date's format should be yyyymmdd.</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_STRING_DATE_RANGE">

<annotation>

<documentation>
The string date range's format should be yyyymmdd yyyymmdd.
</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_STRING_DATE_TIME">

<annotation>

<documentation>
The string date time's format should be yyyymmdd hhmmss [tz].
</documentation>
</annotation>
</enumeration>
<enumeration value="EARLIER_THAN_MINIMUM_DATE">

<annotation>

<documentation>Date is before allowed minimum.</documentation>
</annotation>
</enumeration>
<enumeration value="LATER_THAN_MAXIMUM_DATE">

<annotation>

<documentation>Date is after allowed maximum.</documentation>
</annotation>
</enumeration>
<enumeration value="DATE_RANGE_MINIMUM_DATE_LATER_THAN_MAXIMUM_DATE">

<annotation>

<documentation>Date range bounds are not in order.</documentation>
</annotation>
</enumeration>
<enumeration value="DATE_RANGE_MINIMUM_AND_MAXIMUM_DATES_BOTH_NULL">

<annotation>

<documentation>Both dates in range are null.</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="DateRangeError.Reason">

<annotation>

<documentation>The reasons for the date range error.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="DATE_RANGE_ERROR"/>
<enumeration value="INVALID_DATE">

<annotation>

<documentation>Invalid date.</documentation>
</annotation>
</enumeration>
<enumeration value="START_DATE_AFTER_END_DATE">

<annotation>

<documentation>The start date was after the end date.</documentation>
</annotation>
</enumeration>
<enumeration value="CANNOT_SET_DATE_TO_PAST">

<annotation>

<documentation>Cannot set date to past time</documentation>
</annotation>
</enumeration>
<enumeration value="AFTER_MAXIMUM_ALLOWABLE_DATE">

<annotation>

<documentation>
A date was used that is past the system "last" date.
</documentation>
</annotation>
</enumeration>
<enumeration value="CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED">

<annotation>

<documentation>
Trying to change start date on a campaign that has started.
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="DistinctError.Reason">

<annotation>

<documentation>The reasons for the validation error.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="DUPLICATE_ELEMENT"/>
<enumeration value="DUPLICATE_TYPE"/>
</restriction>
</simpleType>
<simpleType name="EntityAccessDenied.Reason">

<restriction base="xsd:string">

<enumeration value="READ_ACCESS_DENIED">

<annotation>

<documentation>User did not have read access.</documentation>
</annotation>
</enumeration>
<enumeration value="WRITE_ACCESS_DENIED">

<annotation>

<documentation>User did not have write access.</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="EntityCountLimitExceeded.Reason">

<annotation>

<documentation>Limits at various levels of the account.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="ACCOUNT_LIMIT">

<annotation>

<documentation>
Indicates that this request would exceed the number of allowed entities for
the AdWords account. The exact entity type and limit being checked can be
inferred from {@link #accountLimitType}.
</documentation>
</annotation>
</enumeration>
<enumeration value="CAMPAIGN_LIMIT">

<annotation>

<documentation>
Indicates that this request would exceed the number of allowed entities in
a Campaign. The exact entity type and limit being checked can be inferred
from {@link #accountLimitType}, and the numeric id of the Campaign involved
is given by {@link #enclosingId}.
</documentation>
</annotation>
</enumeration>
<enumeration value="ADGROUP_LIMIT">

<annotation>

<documentation>
Indicates that this request would exceed the number of allowed entities in
an ad group. The exact entity type and limit being checked can be inferred
from {@link #accountLimitType}, and the numeric id of the ad group involved
is given by {@link #enclosingId}.
</documentation>
</annotation>
</enumeration>
<enumeration value="AD_GROUP_AD_LIMIT">

<annotation>

<documentation>
Indicates that this request would exceed the number of allowed entities in
an ad group ad. The exact entity type and limit being checked can be
inferred from {@link #accountLimitType}, and the {@link #enclosingId}
contains the ad group id followed by the ad id, separated by a single comma
(,).
</documentation>
</annotation>
</enumeration>
<enumeration value="AD_GROUP_CRITERION_LIMIT">

<annotation>

<documentation>
Indicates that this request would exceed the number of allowed entities in
an ad group criterion. The exact entity type and limit being checked can be
inferred from {@link #accountLimitType}, and the {@link #enclosingId}
contains the ad group id followed by the criterion id, separated by a
single comma (,).
</documentation>
</annotation>
</enumeration>
<enumeration value="SHARED_SET_LIMIT">

<annotation>

<documentation>
Indicates that this request would exceed the number of allowed entities in
this shared set. The exact entity type and limit being checked can be
inferred from {@link #accountLimitType}, and the numeric id of the shared
set involved is given by {@link #enclosingId}.
</documentation>
</annotation>
</enumeration>
<enumeration value="MATCHING_FUNCTION_LIMIT">

<annotation>

<documentation>Exceeds a limit related to a matching
function.</documentation>
</annotation>
</enumeration>
<enumeration value="UNKNOWN">

<annotation>

<documentation>
Specific limit that has been exceeded is unknown (the client may be of an
older version than the server).
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="EntityNotFound.Reason">

<restriction base="xsd:string">

<enumeration value="INVALID_ID">

<annotation>

<documentation>
The specified id refered to an entity which either doesn't exist or is not
accessible to the customer. e.g. campaign belongs to another customer.
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="ForwardCompatibilityError.Reason">

<annotation>

<documentation>The reason for the error.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="INVALID_FORWARD_COMPATIBILITY_MAP_VALUE">

<annotation>

<documentation>
Invalid value specified for a key in the forward compatibility map.
</documentation>
</annotation>
</enumeration>
<enumeration value="UNKNOWN"/>
</restriction>
</simpleType>
<simpleType name="GeoTargetTypeSetting.NegativeGeoTargetType">

<annotation>

<documentation>
The various signals a negative location target may use.
</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="DONT_CARE">

<annotation>

<documentation>
Specifies that a user is excluded from seeing the ad if either their AOI or
their LOP matches the geo target.
</documentation>
</annotation>
</enumeration>
<enumeration value="LOCATION_OF_PRESENCE">

<annotation>

<documentation>
Specifies that a user is excluded from seeing the ad only if their LOP
matches the geo target.
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="GeoTargetTypeSetting.PositiveGeoTargetType">

<annotation>

<documentation>
The various signals a positive location target may use.
</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="DONT_CARE">

<annotation>

<documentation>
Specifies that either AOI or LOP may trigger the ad.
</documentation>
</annotation>
</enumeration>
<enumeration value="AREA_OF_INTEREST">

<annotation>

<documentation>
Specifies that the ad is triggered only if the user's AOI matches.
</documentation>
</annotation>
</enumeration>
<enumeration value="LOCATION_OF_PRESENCE">

<annotation>

<documentation>
Specifies that the ad is triggered only if the user's LOP matches.
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="IdError.Reason">

<annotation>

<documentation>The reasons for the target error.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="NOT_FOUND">

<annotation>

<documentation>Id not found</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="InternalApiError.Reason">

<annotation>

<documentation>The single reason for the internal API error.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="UNEXPECTED_INTERNAL_API_ERROR">

<annotation>

<documentation>API encountered an unexpected internal error.</documentation>
</annotation>
</enumeration>
<enumeration value="TRANSIENT_ERROR">

<annotation>

<documentation>
A temporary error occurred during the request. Please retry.
</documentation>
</annotation>
</enumeration>
<enumeration value="UNKNOWN">

<annotation>

<documentation>
The cause of the error is not known or only defined in newer versions.
</documentation>
</annotation>
</enumeration>
<enumeration value="DOWNTIME">

<annotation>

<documentation>
The API is currently unavailable for a planned downtime.
</documentation>
</annotation>
</enumeration>
<enumeration value="ERROR_GENERATING_RESPONSE">

<annotation>

<documentation>
Mutate succeeded but server was unable to build response. Client should not
retry mutate.
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="Label.Status">

<restriction base="xsd:string">

<enumeration value="ENABLED">

<annotation>

<documentation>The label is enabled.</documentation>
</annotation>
</enumeration>
<enumeration value="REMOVED">

<annotation>

<documentation>The label has been removed.</documentation>
</annotation>
</enumeration>
<enumeration value="UNKNOWN">

<annotation>

<documentation>
<span class="constraint Rejected">Used for return value only. An
enumeration could not be processed, typically due to incompatibility with
your WSDL version.</span>
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="Level">

<annotation>

<documentation>The level on which the cap is to be applied.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="CREATIVE">

<annotation>

<documentation>The cap is applied at the creative level.</documentation>
</annotation>
</enumeration>
<enumeration value="ADGROUP">

<annotation>

<documentation>The cap is applied at the ad group level.</documentation>
</annotation>
</enumeration>
<enumeration value="CAMPAIGN">

<annotation>

<documentation>The cap is applied at the campaign level.</documentation>
</annotation>
</enumeration>
<enumeration value="UNKNOWN">

<annotation>

<documentation>
This value cannot be set by the user and sent to the AdWords API servers,
as it would generate a RejectedError. It can only be received by the user
from the AdWords API servers and it means that a new value available in a
newer API release version is not known in the current API release version.
If the user encounters this value, it means an upgrade is required in order
to take advantage of the latest AdWords API functionality. <span class="constraint
Rejected">Used for return value only. An enumeration could not be
processed, typically due to incompatibility with your WSDL version.</span>
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="ListError.Reason">

<annotation>

<documentation>The reason for the error.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="CLEAR_UNSUPPORTED">

<annotation>

<documentation>
A request attempted to clear a list that does not support being cleared.
</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_OPERATOR">

<annotation>

<documentation>
The operator is invalid for the list or list element the operator was
applied to.
</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_ELEMENT">

<annotation>

<documentation>
An UPDATE or REMOVE was requested for a list element that does not exist.
</documentation>
</annotation>
</enumeration>
<enumeration value="LIST_LENGTH_MISMATCH">

<annotation>

<documentation>
The operator list has different a size compared to the element list.
</documentation>
</annotation>
</enumeration>
<enumeration value="DUPLICATE_ELEMENT">

<annotation>

<documentation>Duplicate elements inside list.</documentation>
</annotation>
</enumeration>
<enumeration value="MUTATE_UNSUPPORTED">

<annotation>

<documentation>
The API operator of the mutate being performed on the entity containing
this list is not supported.
</documentation>
</annotation>
</enumeration>
<enumeration value="UNKNOWN"/>
</restriction>
</simpleType>
<simpleType name="ListOperations.ListOperator">

<annotation>

<documentation>
Specifies the intended behavior for a list element.
</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="PUT">

<annotation>

<documentation>
Adds to a list, or overrides an existing element if it exists.
</documentation>
</annotation>
</enumeration>
<enumeration value="REMOVE">

<annotation>

<documentation>Removes this element from the list.</documentation>
</annotation>
</enumeration>
<enumeration value="UPDATE">

<annotation>

<documentation>
Updates this element with the existing behavior of null fields inside the
list element being a no-op. If the element doesn't exist it is added.
</documentation>
</annotation>
</enumeration>
<enumeration value="UNKNOWN">

<annotation>

<documentation>
<span class="constraint Rejected">Used for return value only. An
enumeration could not be processed, typically due to incompatibility with
your WSDL version.</span>
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="NewEntityCreationError.Reason">

<restriction base="xsd:string">

<enumeration value="CANNOT_SET_ID_FOR_ADD">

<annotation>

<documentation>
Do not set the id field while creating new entities.
</documentation>
</annotation>
</enumeration>
<enumeration value="DUPLICATE_TEMP_IDS">

<annotation>

<documentation>
Creating more than one entity with the same temp ID is not allowed.
</documentation>
</annotation>
</enumeration>
<enumeration value="TEMP_ID_ENTITY_HAD_ERRORS">

<annotation>

<documentation>
Parent object with specified temp id failed validation, so no deep
validation will be done for this child entity.
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="NotEmptyError.Reason">

<annotation>

<documentation>The reasons for the validation error.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="EMPTY_LIST"/>
</restriction>
</simpleType>
<simpleType name="NullError.Reason">

<annotation>

<documentation>The reasons for the validation error.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="NULL_CONTENT">

<annotation>

<documentation>
Specified list/container must not contain any null elements
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="OperationAccessDenied.Reason">

<annotation>

<documentation>The reasons for the operation access error.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="ACTION_NOT_PERMITTED">

<annotation>

<documentation>
Unauthorized invocation of a service's method (get, mutate, etc.)
</documentation>
</annotation>
</enumeration>
<enumeration value="ADD_OPERATION_NOT_PERMITTED">

<annotation>

<documentation>
Unauthorized ADD operation in invoking a service's mutate method.
</documentation>
</annotation>
</enumeration>
<enumeration value="REMOVE_OPERATION_NOT_PERMITTED">

<annotation>

<documentation>
Unauthorized REMOVE operation in invoking a service's mutate method.
</documentation>
</annotation>
</enumeration>
<enumeration value="SET_OPERATION_NOT_PERMITTED">

<annotation>

<documentation>
Unauthorized SET operation in invoking a service's mutate method.
</documentation>
</annotation>
</enumeration>
<enumeration value="MUTATE_ACTION_NOT_PERMITTED_FOR_CLIENT">

<annotation>

<documentation>
A mutate action is not allowed on this campaign, from this client.
</documentation>
</annotation>
</enumeration>
<enumeration value="OPERATION_NOT_PERMITTED_FOR_CAMPAIGN_TYPE">

<annotation>

<documentation>
This operation is not permitted on this campaign type
</documentation>
</annotation>
</enumeration>
<enumeration value="ADD_AS_REMOVED_NOT_PERMITTED">

<annotation>

<documentation>An ADD operation may not set status to
REMOVED.</documentation>
</annotation>
</enumeration>
<enumeration value="OPERATION_NOT_PERMITTED_FOR_REMOVED_ENTITY">

<annotation>

<documentation>
This operation is not allowed because the campaign or adgroup is removed.
</documentation>
</annotation>
</enumeration>
<enumeration value="OPERATION_NOT_PERMITTED_FOR_AD_GROUP_TYPE">

<annotation>

<documentation>
This operation is not permitted on this ad group type.
</documentation>
</annotation>
</enumeration>
<enumeration value="UNKNOWN">

<annotation>

<documentation>
The reason the invoked method or operation is prohibited is not known (the
client may be of an older version than the server).
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="Operator">

<annotation>

<documentation>
This represents an operator that may be presented to an adsapi service.
</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="ADD">

<annotation>

<documentation>The ADD operator.</documentation>
</annotation>
</enumeration>
<enumeration value="REMOVE">

<annotation>

<documentation>The REMOVE operator.</documentation>
</annotation>
</enumeration>
<enumeration value="SET">

<annotation>

<documentation>The SET operator (used for updates).</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="OperatorError.Reason">

<annotation>

<documentation>The reasons for the validation error.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="OPERATOR_NOT_SUPPORTED"/>
</restriction>
</simpleType>
<simpleType name="PageOnePromotedBiddingScheme.StrategyGoal">

<restriction base="xsd:string">

<enumeration value="PAGE_ONE">

<annotation>

<documentation>First page on google.com.</documentation>
</annotation>
</enumeration>
<enumeration value="PAGE_ONE_PROMOTED">

<annotation>

<documentation>Top slots of the first page on google.com.</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="PolicyTopicConstraint.PolicyTopicConstraintType">

<annotation>

<documentation>Subtype of PolicyTopicConstraint.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="UNKNOWN"/>
<enumeration value="COUNTRY"/>
<enumeration value="RESELLER"/>
</restriction>
</simpleType>
<simpleType name="PolicyTopicEntryType">

<annotation>

<documentation>The summarized nature of a policy entry.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="UNKNOWN">

<annotation>

<documentation>
<span class="constraint Rejected">Used for return value only. An
enumeration could not be processed, typically due to incompatibility with
your WSDL version.</span>
</documentation>
</annotation>
</enumeration>
<enumeration value="PROHIBITED">

<annotation>

<documentation>Will never serve.</documentation>
</annotation>
</enumeration>
<enumeration value="LIMITED">

<annotation>

<documentation>Constrained for at least one value.</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="PolicyTopicEvidenceType">

<annotation>

<documentation>
Describes the type of evidence inside the policy topic evidence.
</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="UNKNOWN">

<annotation>

<documentation>
<span class="constraint Rejected">Used for return value only. An
enumeration could not be processed, typically due to incompatibility with
your WSDL version.</span>
</documentation>
</annotation>
</enumeration>
<enumeration value="AD_TEXT">

<annotation>

<documentation>Evidence found in the text of the ad.</documentation>
</annotation>
</enumeration>
<enumeration value="HTTP_CODE">

<annotation>

<documentation>HTTP code returned when the final URL was
crawled.</documentation>
</annotation>
</enumeration>
<enumeration value="WEBSITES">

<annotation>

<documentation>List of websites linked with this ad.</documentation>
</annotation>
</enumeration>
<enumeration value="LANGUAGE">

<annotation>

<documentation>The language the ad was detected to be written
in.</documentation>
</annotation>
</enumeration>
<enumeration value="DESTINATION_TEXT_LIST">

<annotation>

<documentation>
The text in the destination of the ad that is causing a policy violation.
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="Predicate.Operator">

<annotation>

<documentation>Defines the valid set of operators.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="EQUALS">

<annotation>

<documentation>
Checks if the field is equal to the given value. <p>This operator is used
with integers, dates, booleans, strings, enums, and sets.
</documentation>
</annotation>
</enumeration>
<enumeration value="NOT_EQUALS">

<annotation>

<documentation>
Checks if the field does not equal the given value. <p>This operator is
used with integers, booleans, strings, enums, and sets.
</documentation>
</annotation>
</enumeration>
<enumeration value="IN">

<annotation>

<documentation>
Checks if the field is equal to one of the given values. <p>This operator
accepts multiple operands and is used with integers, booleans, strings, and
enums.
</documentation>
</annotation>
</enumeration>
<enumeration value="NOT_IN">

<annotation>

<documentation>
Checks if the field does not equal any of the given values. <p>This
operator accepts multiple operands and is used with integers, booleans,
strings, and enums.
</documentation>
</annotation>
</enumeration>
<enumeration value="GREATER_THAN">

<annotation>

<documentation>
Checks if the field is greater than the given value. <p>This operator is
used with numbers and dates.
</documentation>
</annotation>
</enumeration>
<enumeration value="GREATER_THAN_EQUALS">

<annotation>

<documentation>
Checks if the field is greater or equal to the given value. <p>This
operator is used with numbers and dates.
</documentation>
</annotation>
</enumeration>
<enumeration value="LESS_THAN">

<annotation>

<documentation>
Checks if the field is less than the given value. <p>This operator is used
with numbers and dates.
</documentation>
</annotation>
</enumeration>
<enumeration value="LESS_THAN_EQUALS">

<annotation>

<documentation>
Checks if the field is less or equal to than the given value. <p>This
operator is used with numbers and dates.
</documentation>
</annotation>
</enumeration>
<enumeration value="STARTS_WITH">

<annotation>

<documentation>
Checks if the field starts with the given value. <p>This operator is used
with strings.
</documentation>
</annotation>
</enumeration>
<enumeration value="STARTS_WITH_IGNORE_CASE">

<annotation>

<documentation>
Checks if the field starts with the given value, ignoring case. <p>This
operator is used with strings.
</documentation>
</annotation>
</enumeration>
<enumeration value="CONTAINS">

<annotation>

<documentation>
Checks if the field contains the given value as a substring. <p>This
operator is used with strings.
</documentation>
</annotation>
</enumeration>
<enumeration value="CONTAINS_IGNORE_CASE">

<annotation>

<documentation>
Checks if the field contains the given value as a substring, ignoring case.
<p>This operator is used with strings.
</documentation>
</annotation>
</enumeration>
<enumeration value="DOES_NOT_CONTAIN">

<annotation>

<documentation>
Checks if the field does not contain the given value as a substring.
<p>This operator is used with strings.
</documentation>
</annotation>
</enumeration>
<enumeration value="DOES_NOT_CONTAIN_IGNORE_CASE">

<annotation>

<documentation>
Checks if the field does not contain the given value as a substring,
ignoring case. <p>This operator is used with strings.
</documentation>
</annotation>
</enumeration>
<enumeration value="CONTAINS_ANY">

<annotation>

<documentation>
Checks if the field contains <em>any</em> of the given values. <p>This
operator accepts multiple values and is used on sets of numbers or strings.
</documentation>
</annotation>
</enumeration>
<enumeration value="CONTAINS_ALL">

<annotation>

<documentation>
Checks if the field contains <em>all</em> of the given values. <p>This
operator accepts multiple values and is used on sets of numbers or strings.
</documentation>
</annotation>
</enumeration>
<enumeration value="CONTAINS_NONE">

<annotation>

<documentation>
Checks if the field contains <em>none</em> of the given values. <p>This
operator accepts multiple values and is used on sets of numbers or strings.
</documentation>
</annotation>
</enumeration>
<enumeration value="UNKNOWN">

<annotation>

<documentation>
<span class="constraint Rejected">Used for return value only. An
enumeration could not be processed, typically due to incompatibility with
your WSDL version.</span>
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="QueryError.Reason">

<annotation>

<documentation>The reason for the query error.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="PARSING_FAILED">

<annotation>

<documentation>
Exception that happens when trying to parse a query that doesn't match the
AWQL grammar.
</documentation>
</annotation>
</enumeration>
<enumeration value="MISSING_QUERY">

<annotation>

<documentation>The provided query is an empty string.</documentation>
</annotation>
</enumeration>
<enumeration value="MISSING_SELECT_CLAUSE">

<annotation>

<documentation>
The query does not contain the required SELECT clause or it is not in the
correct location.
</documentation>
</annotation>
</enumeration>
<enumeration value="MISSING_FROM_CLAUSE">

<annotation>

<documentation>
The query does not contain the required FROM clause or it is not in the
correct location.
</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_SELECT_CLAUSE">

<annotation>

<documentation>The SELECT clause could not be parsed.</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_FROM_CLAUSE">

<annotation>

<documentation>The FROM clause could not be parsed.</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_WHERE_CLAUSE">

<annotation>

<documentation>The WHERE clause could not be parsed.</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_ORDER_BY_CLAUSE">

<annotation>

<documentation>The ORDER BY clause could not be parsed.</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_LIMIT_CLAUSE">

<annotation>

<documentation>The LIMIT clause could not be parsed.</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_START_INDEX_IN_LIMIT_CLAUSE">

<annotation>

<documentation>
The startIndex in the LIMIT clause does not contain a valid integer.
</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_PAGE_SIZE_IN_LIMIT_CLAUSE">

<annotation>

<documentation>
The pageSize in the LIMIT clause does not contain a valid integer.
</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_DURING_CLAUSE">

<annotation>

<documentation>The DURING clause could not be parsed.</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_MIN_DATE_IN_DURING_CLAUSE">

<annotation>

<documentation>
The minimum date in the DURING clause is not a valid date in YYYYMMDD
format.
</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_MAX_DATE_IN_DURING_CLAUSE">

<annotation>

<documentation>
The maximum date in the DURING clause is not a valid date in YYYYMMDD
format.
</documentation>
</annotation>
</enumeration>
<enumeration value="MAX_LESS_THAN_MIN_IN_DURING_CLAUSE">

<annotation>

<documentation>
The minimum date in the DURING is after the maximum date.
</documentation>
</annotation>
</enumeration>
<enumeration value="VALIDATION_FAILED">

<annotation>

<documentation>
The query matched the grammar, but is invalid in some way such as using a
service that isn't supported.
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="QuotaCheckError.Reason">

<annotation>

<documentation>
Enums for all the reasons an error can be thrown to the user during billing
quota checks.
</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="INVALID_TOKEN_HEADER">

<annotation>

<documentation>Customer passed in an invalid token in the
header.</documentation>
</annotation>
</enumeration>
<enumeration value="ACCOUNT_DELINQUENT">

<annotation>

<documentation>Customer is marked delinquent.</documentation>
</annotation>
</enumeration>
<enumeration value="ACCOUNT_INACCESSIBLE">

<annotation>

<documentation>Customer is a fraudulent.</documentation>
</annotation>
</enumeration>
<enumeration value="ACCOUNT_INACTIVE">

<annotation>

<documentation>Inactive Account.</documentation>
</annotation>
</enumeration>
<enumeration value="INCOMPLETE_SIGNUP">

<annotation>

<documentation>Signup not complete</documentation>
</annotation>
</enumeration>
<enumeration value="DEVELOPER_TOKEN_NOT_APPROVED">

<annotation>

<documentation>
Developer token is not approved for production access, and the customer is
attempting to access a production account.
</documentation>
</annotation>
</enumeration>
<enumeration value="TERMS_AND_CONDITIONS_NOT_SIGNED">

<annotation>

<documentation>Terms and conditions are not signed.</documentation>
</annotation>
</enumeration>
<enumeration value="MONTHLY_BUDGET_REACHED">

<annotation>

<documentation>Monthly budget quota reached.</documentation>
</annotation>
</enumeration>
<enumeration value="QUOTA_EXCEEDED">

<annotation>

<documentation>Monthly budget quota exceeded.</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="RangeError.Reason">

<annotation>

<documentation>The reasons for the target error.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="TOO_LOW"/>
<enumeration value="TOO_HIGH"/>
</restriction>
</simpleType>
<simpleType name="RateExceededError.Reason">

<annotation>

<documentation>The reason for the rate exceeded error.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="RATE_EXCEEDED">

<annotation>

<documentation>Rate exceeded.</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="ReadOnlyError.Reason">

<annotation>

<documentation>The reasons for the target error.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="READ_ONLY"/>
</restriction>
</simpleType>
<simpleType name="RegionCodeError.Reason">

<annotation>

<documentation>The reasons for the validation error.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="INVALID_REGION_CODE"/>
</restriction>
</simpleType>
<simpleType name="RejectedError.Reason">

<annotation>

<documentation>The reasons for the target error.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="UNKNOWN_VALUE">

<annotation>

<documentation>Unknown value encountered</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="RequestError.Reason">

<restriction base="xsd:string">

<enumeration value="UNKNOWN">

<annotation>

<documentation>Error reason is unknown.</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_INPUT">

<annotation>

<documentation>Invalid input.</documentation>
</annotation>
</enumeration>
<enumeration value="UNSUPPORTED_VERSION">

<annotation>

<documentation>
The api version in the request has been discontinued. Please update to the
new AdWords API version.
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="RequiredError.Reason">

<annotation>

<documentation>The reasons for the target error.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="REQUIRED">

<annotation>

<documentation>Missing required field.</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="SelectorError.Reason">

<annotation>

<documentation>The reasons for the target error.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="INVALID_FIELD_NAME">

<annotation>

<documentation>The field name is not valid.</documentation>
</annotation>
</enumeration>
<enumeration value="MISSING_FIELDS">

<annotation>

<documentation>The list of fields is null or empty.</documentation>
</annotation>
</enumeration>
<enumeration value="MISSING_PREDICATES">

<annotation>

<documentation>The list of predicates is null or empty.</documentation>
</annotation>
</enumeration>
<enumeration value="OPERATOR_DOES_NOT_SUPPORT_MULTIPLE_VALUES">

<annotation>

<documentation>
Predicate operator does not support multiple values. Multiple values are
supported only for {@link Predicate.Operator#IN} and {@link
Predicate.Operator#NOT_IN}.
</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_PREDICATE_ENUM_VALUE">

<annotation>

<documentation>The predicate enum value is not valid.</documentation>
</annotation>
</enumeration>
<enumeration value="MISSING_PREDICATE_OPERATOR">

<annotation>

<documentation>The predicate operator is empty.</documentation>
</annotation>
</enumeration>
<enumeration value="MISSING_PREDICATE_VALUES">

<annotation>

<documentation>The predicate values are empty.</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_PREDICATE_FIELD_NAME">

<annotation>

<documentation>The predicate field name is not valid.</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_PREDICATE_OPERATOR">

<annotation>

<documentation>The predicate operator is not valid.</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_FIELD_SELECTION">

<annotation>

<documentation>Invalid selection of fields.</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_PREDICATE_VALUE">

<annotation>

<documentation>The predicate value is not valid.</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_SORT_FIELD_NAME">

<annotation>

<documentation>
The sort field name is not valid or the field is not sortable.
</documentation>
</annotation>
</enumeration>
<enumeration value="SELECTOR_ERROR">

<annotation>

<documentation>Standard error.</documentation>
</annotation>
</enumeration>
<enumeration value="FILTER_BY_DATE_RANGE_NOT_SUPPORTED">

<annotation>

<documentation>Filtering by date range is not supported.</documentation>
</annotation>
</enumeration>
<enumeration value="START_INDEX_IS_TOO_HIGH">

<annotation>

<documentation>Selector paging start index is too high.</documentation>
</annotation>
</enumeration>
<enumeration value="TOO_MANY_PREDICATE_VALUES">

<annotation>

<documentation>The values list in a predicate was too long.</documentation>
</annotation>
</enumeration>
<enumeration value="UNKNOWN_ERROR">

<annotation>

<documentation>
<span class="constraint Rejected">Used for return value only. An
enumeration could not be processed, typically due to incompatibility with
your WSDL version.</span>
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="ServingStatus">

<annotation>

<documentation>Campaign serving status.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="SERVING">

<annotation>

<documentation>The campaign is currently serving ads.</documentation>
</annotation>
</enumeration>
<enumeration value="NONE">

<annotation>

<documentation>
This is the catch-all if none of the other statuses make sense. Such a
campaign is not serving, but none of the other statuses are sensible
options.
</documentation>
</annotation>
</enumeration>
<enumeration value="ENDED">

<annotation>

<documentation>The campaign end date has been past.</documentation>
</annotation>
</enumeration>
<enumeration value="PENDING">

<annotation>

<documentation>The campaign start date has not yet been
reached.</documentation>
</annotation>
</enumeration>
<enumeration value="SUSPENDED">

<annotation>

<documentation>
The campaign has been suspended probably from lack of allocated funds.
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="SettingError.Reason">

<annotation>

<documentation>The reasons for the setting error.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="DUPLICATE_SETTING_TYPE">

<annotation>

<documentation>
The campaign already has a setting of the type that is being added.
</documentation>
</annotation>
</enumeration>
<enumeration value="SETTING_TYPE_IS_NOT_AVAILABLE">

<annotation>

<documentation>
The campaign setting is not available for this AdWords account.
</documentation>
</annotation>
</enumeration>
<enumeration value="SETTING_TYPE_IS_NOT_COMPATIBLE_WITH_CAMPAIGN">

<annotation>

<documentation>The setting is not compatible with the
campaign.</documentation>
</annotation>
</enumeration>
<enumeration value="TARGETING_SETTING_CONTAINS_INVALID_CRITERION_TYPE_GROUP
">

<annotation>

<documentation>
The supplied TargetingSetting contains an invalid CriterionTypeGroup. See
{@link CriterionTypeGroup} documentation for CriterionTypeGroups allowed in
Campaign or AdGroup TargetingSettings.
</documentation>
</annotation>
</enumeration>
<enumeration value="
DYNAMIC_SEARCH_ADS_SETTING_AT_LEAST_ONE_FEED_ID_MUST_BE_PRESENT">

<annotation>

<documentation>At least one feed id should be present.</documentation>
</annotation>
</enumeration>
<enumeration value="DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_DOMAIN_NAME
">

<annotation>

<documentation>
The supplied DynamicSearchAdsSetting contains an invalid domain name.
</documentation>
</annotation>
</enumeration>
<enumeration value="
DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_LANGUAGE_CODE">

<annotation>

<documentation>
The supplied DynamicSearchAdsSetting contains an invalid language code.
</documentation>
</annotation>
</enumeration>
<enumeration value="
TARGET_ALL_IS_NOT_ALLOWED_FOR_PLACEMENT_IN_SEARCH_CAMPAIGN">

<annotation>

<documentation>
TargetingSettings in search campaigns should not have
CriterionTypeGroup.PLACEMENT set to targetAll.
</documentation>
</annotation>
</enumeration>
<enumeration value="UNIVERSAL_APP_CAMPAIGN_SETTING_DUPLICATE_DESCRIPTION">

<annotation>

<documentation>
Duplicate description in universal app setting description field.
</documentation>
</annotation>
</enumeration>
<enumeration value="
UNIVERSAL_APP_CAMPAIGN_SETTING_DESCRIPTION_LINE_WIDTH_TOO_LONG">

<annotation>

<documentation>
Description line width is too long in universal app setting description
field.
</documentation>
</annotation>
</enumeration>
<enumeration value="UNIVERSAL_APP_CAMPAIGN_SETTING_APP_ID_CANNOT_BE_MODIFIED
">

<annotation>

<documentation>
Universal app setting appId field cannot be modified for COMPLETE campaigns.
</documentation>
</annotation>
</enumeration>
<enumeration value="TOO_MANY_YOUTUBE_MEDIA_IDS_IN_UNIVERSAL_APP_CAMPAIGN">

<annotation>

<documentation>
YoutubeVideoMediaIds in universal app setting cannot exceed size limit.
</documentation>
</annotation>
</enumeration>
<enumeration value="TOO_MANY_IMAGE_MEDIA_IDS_IN_UNIVERSAL_APP_CAMPAIGN">

<annotation>

<documentation>
ImageMediaIds in universal app setting cannot exceed size limit.
</documentation>
</annotation>
</enumeration>
<enumeration value="MEDIA_INCOMPATIBLE_FOR_UNIVERSAL_APP_CAMPAIGN">

<annotation>

<documentation>Media is incompatible for universal app
campaign.</documentation>
</annotation>
</enumeration>
<enumeration value="UNKNOWN">

<annotation>

<documentation>
Unspecified campaign setting error. <span class="constraint Rejected">Used
for return value only. An enumeration could not be processed, typically due
to incompatibility with your WSDL version.</span>
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="ShoppingPurchasePlatform">

<annotation>

<documentation>
The platform on which a shopping product can be purchased.
</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="UNKNOWN">

<annotation>

<documentation>
<span class="constraint Rejected">Used for return value only. An
enumeration could not be processed, typically due to incompatibility with
your WSDL version.</span>
</documentation>
</annotation>
</enumeration>
<enumeration value="MERCHANT">

<annotation>

<documentation>
Purchases can take place on merchant's own applications (e.g. website,
apps) only.
</documentation>
</annotation>
</enumeration>
<enumeration value="GOOGLE">

<annotation>

<documentation>Purchases can take place on Google only.</documentation>
</annotation>
</enumeration>
<enumeration value="MERCHANT_AND_GOOGLE">

<annotation>

<documentation>
Purchases can take place on merchant's own applications (e.g. website,
apps) or Google.
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="SizeLimitError.Reason">

<annotation>

<documentation>The reasons for Ad Scheduling errors.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="REQUEST_SIZE_LIMIT_EXCEEDED">

<annotation>

<documentation>
The number of entries in the request exceeds the system limit.
</documentation>
</annotation>
</enumeration>
<enumeration value="RESPONSE_SIZE_LIMIT_EXCEEDED">

<annotation>

<documentation>
The number of entries in the response exceeds the system limit.
</documentation>
</annotation>
</enumeration>
<enumeration value="INTERNAL_STORAGE_ERROR">

<annotation>

<documentation>The account is too large to load.</documentation>
</annotation>
</enumeration>
<enumeration value="UNKNOWN">

<annotation>

<documentation>
<span class="constraint Rejected">Used for return value only. An
enumeration could not be processed, typically due to incompatibility with
your WSDL version.</span>
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="SortOrder">

<annotation>

<documentation>Possible orders of sorting.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="ASCENDING"/>
<enumeration value="DESCENDING"/>
</restriction>
</simpleType>
<simpleType name="StatsQueryError.Reason">

<annotation>

<documentation>The reasons for errors when querying for
stats.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="DATE_NOT_IN_VALID_RANGE">

<annotation>

<documentation>Date is outside of allowed range.</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="StringFormatError.Reason">

<annotation>

<documentation>The reasons for the target error.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="UNKNOWN"/>
<enumeration value="ILLEGAL_CHARS">

<annotation>

<documentation>
The input string value contains disallowed characters.
</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_FORMAT">

<annotation>

<documentation>
The input string value is invalid for the associated field.
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="StringLengthError.Reason">

<annotation>

<documentation>The reasons for the target error.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="TOO_SHORT"/>
<enumeration value="TOO_LONG"/>
</restriction>
</simpleType>
<simpleType name="TimeUnit">

<annotation>

<documentation>Unit of time the cap is defined at.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="MINUTE"/>
<enumeration value="HOUR"/>
<enumeration value="DAY"/>
<enumeration value="WEEK"/>
<enumeration value="MONTH"/>
<enumeration value="LIFETIME"/>
</restriction>
</simpleType>
<simpleType name="UniversalAppBiddingStrategyGoalType">

<annotation>

<documentation>
Represents the goal towards which the bidding strategy, of a universal app
campaign, should optimize for.
</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="UNKNOWN">

<annotation>

<documentation>
<span class="constraint Rejected">Used for return value only. An
enumeration could not be processed, typically due to incompatibility with
your WSDL version.</span>
</documentation>
</annotation>
</enumeration>
<enumeration value="OPTIMIZE_FOR_INSTALL_CONVERSION_VOLUME">

<annotation>

<documentation>
The bidding strategy of the universal app campaign should aim to maximize
installation of the app.
</documentation>
</annotation>
</enumeration>
<enumeration value="OPTIMIZE_FOR_IN_APP_CONVERSION_VOLUME">

<annotation>

<documentation>
The bidding strategy of the universal app campaign should aim to maximize
the selected in-app conversions' volume.
</documentation>
</annotation>
</enumeration>
<enumeration value="OPTIMIZE_FOR_TOTAL_CONVERSION_VALUE">

<annotation>

<documentation>
The bidding strategy of the universal app campaign should aim to maximize
all conversions' value, i.e., install + selected in-app conversions. NOTE:
This value cannot be set by external clients, but it can be retrieved using
get.
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="UniversalAppCampaignAsset">

<annotation>

<documentation>
Represents the individual assets that are utilized as part of the campaign.
</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="UNKNOWN">

<annotation>

<documentation>
<span class="constraint Rejected">Used for return value only. An
enumeration could not be processed, typically due to incompatibility with
your WSDL version.</span>
</documentation>
</annotation>
</enumeration>
<enumeration value="COMBINATION">

<annotation>

<documentation>Identifies a combination of assets.</documentation>
</annotation>
</enumeration>
<enumeration value="APP_DESTINATION">

<annotation>

<documentation>Identifies the app destination.</documentation>
</annotation>
</enumeration>
<enumeration value="APP_ASSETS">

<annotation>

<documentation>
Identifies the app related data, like app name, app icon, developer name
including translations of the content.
</documentation>
</annotation>
</enumeration>
<enumeration value="DESCRIPTION_1">

<annotation>

<documentation>
Identifies the campaign setting's description1 field.
</documentation>
</annotation>
</enumeration>
<enumeration value="DESCRIPTION_2">

<annotation>

<documentation>
Identifies the campaign setting's description2 field.
</documentation>
</annotation>
</enumeration>
<enumeration value="DESCRIPTION_3">

<annotation>

<documentation>
Identifies the campaign setting's description3 field.
</documentation>
</annotation>
</enumeration>
<enumeration value="DESCRIPTION_4">

<annotation>

<documentation>
Identifies the campaign setting's description4 field.
</documentation>
</annotation>
</enumeration>
<enumeration value="VIDEO">

<annotation>

<documentation>Identifies the campaign setting's video
fields.</documentation>
</annotation>
</enumeration>
<enumeration value="IMAGE">

<annotation>

<documentation>Identifies the campaign setting's image
fields.</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="UrlError.Reason">

<annotation>

<documentation>The reasons for the url error.</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="INVALID_TRACKING_URL_TEMPLATE">

<annotation>

<documentation>The tracking url template is invalid.</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_TAG_IN_TRACKING_URL_TEMPLATE">

<annotation>

<documentation>The tracking url template contains invalid
tag.</documentation>
</annotation>
</enumeration>
<enumeration value="MISSING_TRACKING_URL_TEMPLATE_TAG">

<annotation>

<documentation>
The tracking url template must contain at least one tag (e.g. {lpurl}),
This applies only to tracking url template associated with website ads or
product ads.
</documentation>
</annotation>
</enumeration>
<enumeration value="MISSING_PROTOCOL_IN_TRACKING_URL_TEMPLATE">

<annotation>

<documentation>
The tracking url template must start with a valid protocol (or lpurl tag).
</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_PROTOCOL_IN_TRACKING_URL_TEMPLATE">

<annotation>

<documentation>
The tracking url template starts with an invalid protocol.
</documentation>
</annotation>
</enumeration>
<enumeration value="MALFORMED_TRACKING_URL_TEMPLATE">

<annotation>

<documentation>
The tracking url template contains illegal characters.
</documentation>
</annotation>
</enumeration>
<enumeration value="MISSING_HOST_IN_TRACKING_URL_TEMPLATE">

<annotation>

<documentation>
The tracking url template must contain a host name (or lpurl tag).
</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_TLD_IN_TRACKING_URL_TEMPLATE">

<annotation>

<documentation>
The tracking url template has an invalid or missing top level domain
extension.
</documentation>
</annotation>
</enumeration>
<enumeration value="REDUNDANT_NESTED_TRACKING_URL_TEMPLATE_TAG">

<annotation>

<documentation>
The tracking url template contains nested occurrences of the same
conditional tag (i.e. {ifmobile:{ifmobile:x}}).
</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_FINAL_URL">

<annotation>

<documentation>The final url is invalid.</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_TAG_IN_FINAL_URL">

<annotation>

<documentation>The final url contains invalid tag.</documentation>
</annotation>
</enumeration>
<enumeration value="REDUNDANT_NESTED_FINAL_URL_TAG">

<annotation>

<documentation>
The final url contains nested occurrences of the same conditional tag (i.e.
{ifmobile:{ifmobile:x}}).
</documentation>
</annotation>
</enumeration>
<enumeration value="MISSING_PROTOCOL_IN_FINAL_URL">

<annotation>

<documentation>The final url must start with a valid
protocol.</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_PROTOCOL_IN_FINAL_URL">

<annotation>

<documentation>The final url starts with an invalid
protocol.</documentation>
</annotation>
</enumeration>
<enumeration value="MALFORMED_FINAL_URL">

<annotation>

<documentation>The final url contains illegal characters.</documentation>
</annotation>
</enumeration>
<enumeration value="MISSING_HOST_IN_FINAL_URL">

<annotation>

<documentation>The final url must contain a host name.</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_TLD_IN_FINAL_URL">

<annotation>

<documentation>
The tracking url template has an invalid or missing top level domain
extension.
</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_FINAL_MOBILE_URL">

<annotation>

<documentation>The final mobile url is invalid.</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_TAG_IN_FINAL_MOBILE_URL">

<annotation>

<documentation>The final mobile url contains invalid tag.</documentation>
</annotation>
</enumeration>
<enumeration value="REDUNDANT_NESTED_FINAL_MOBILE_URL_TAG">

<annotation>

<documentation>
The final mobile url contains nested occurrences of the same conditional
tag (i.e. {ifmobile:{ifmobile:x}}).
</documentation>
</annotation>
</enumeration>
<enumeration value="MISSING_PROTOCOL_IN_FINAL_MOBILE_URL">

<annotation>

<documentation>
The final mobile url must start with a valid protocol.
</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_PROTOCOL_IN_FINAL_MOBILE_URL">

<annotation>

<documentation>
The final mobile url starts with an invalid protocol.
</documentation>
</annotation>
</enumeration>
<enumeration value="MALFORMED_FINAL_MOBILE_URL">

<annotation>

<documentation>The final mobile url contains illegal
characters.</documentation>
</annotation>
</enumeration>
<enumeration value="MISSING_HOST_IN_FINAL_MOBILE_URL">

<annotation>

<documentation>The final mobile url must contain a host
name.</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_TLD_IN_FINAL_MOBILE_URL">

<annotation>

<documentation>
The tracking url template has an invalid or missing top level domain
extension.
</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_FINAL_APP_URL">

<annotation>

<documentation>The final app url is invalid.</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_TAG_IN_FINAL_APP_URL">

<annotation>

<documentation>The final app url contains invalid tag.</documentation>
</annotation>
</enumeration>
<enumeration value="REDUNDANT_NESTED_FINAL_APP_URL_TAG">

<annotation>

<documentation>
The final app url contains nested occurrences of the same conditional tag
(i.e. {ifmobile:{ifmobile:x}}).
</documentation>
</annotation>
</enumeration>
<enumeration value="MULTIPLE_APP_URLS_FOR_OSTYPE">

<annotation>

<documentation>More than one app url found for the same OS
type.</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_OSTYPE">

<annotation>

<documentation>The OS type given for an app url is not
valid.</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_PROTOCOL_FOR_APP_URL">

<annotation>

<documentation>
The protocol given for an app url is not valid. (E.g. "android-app://")
</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_PACKAGE_ID_FOR_APP_URL">

<annotation>

<documentation>
The package id (app id) given for an app url is not valid.
</documentation>
</annotation>
</enumeration>
<enumeration value="URL_CUSTOM_PARAMETERS_COUNT_EXCEEDS_LIMIT">

<annotation>

<documentation>
The number of url custom parameters for an entity exceeds the maximum limit
allowed.
</documentation>
</annotation>
</enumeration>
<enumeration value="URL_CUSTOM_PARAMETER_REMOVAL_WITH_NON_NULL_VALUE">

<annotation>

<documentation>
The parameter has isRemove set to true but a value that is non-null.
</documentation>
</annotation>
</enumeration>
<enumeration value="CANNOT_REMOVE_URL_CUSTOM_PARAMETER_IN_ADD_OPERATION">

<annotation>

<documentation>
For add operations, there will not be any existing parameters to delete.
</documentation>
</annotation>
</enumeration>
<enumeration
value="CANNOT_REMOVE_URL_CUSTOM_PARAMETER_DURING_FULL_REPLACEMENT">

<annotation>

<documentation>
When the doReplace flag is set to true, individual parameters cannot be
deleted.
</documentation>
</annotation>
</enumeration>
<enumeration value=
"NULL_CUSTOM_PARAMETER_VALUE_DURING_ADD_OR_FULL_REPLACEMENT">

<annotation>

<documentation>
For ADD operations and when the doReplace flag is set to true, custom
parameter values cannot be null.
</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_KEY">

<annotation>

<documentation>An invalid character appears in the parameter key.</
documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_VALUE">

<annotation>

<documentation>
An invalid character appears in the parameter value.
</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_TAG_IN_URL_CUSTOM_PARAMETER_VALUE">

<annotation>

<documentation>
The url custom parameter value fails url tag validation.
</documentation>
</annotation>
</enumeration>
<enumeration value="REDUNDANT_NESTED_URL_CUSTOM_PARAMETER_TAG">

<annotation>

<documentation>
The custom parameter contains nested occurrences of the same conditional
tag (i.e. {ifmobile:{ifmobile:x}}).
</documentation>
</annotation>
</enumeration>
<enumeration value="MISSING_PROTOCOL">

<annotation>

<documentation>The protocol (http:// or https://) is
missing.</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_URL">

<annotation>

<documentation>The url is invalid.</documentation>
</annotation>
</enumeration>
<enumeration value="DESTINATION_URL_DEPRECATED">

<annotation>

<documentation>Destination Url is deprecated.</documentation>
</annotation>
</enumeration>
<enumeration value="INVALID_TAG_IN_URL">

<annotation>

<documentation>The url contains invalid tag.</documentation>
</annotation>
</enumeration>
<enumeration value="MISSING_URL_TAG">

<annotation>

<documentation>
The url must contain at least one tag (e.g. {lpurl}), This applies only to
urls associated with website ads or product ads.
</documentation>
</annotation>
</enumeration>
<enumeration value="DUPLICATE_URL_ID"/>
<enumeration value="INVALID_URL_ID"/>
<enumeration value="URL_ERROR"/>
</restriction>
</simpleType>
<simpleType name="VanityPharmaDisplayUrlMode">

<annotation>

<documentation>Mode of display URL for pharma related text ads.</
documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="UNKNOWN">

<annotation>

<documentation>
<span class="constraint Rejected">Used for return value only. An
enumeration could not be processed, typically due to incompatibility with
your WSDL version.</span>
</documentation>
</annotation>
</enumeration>
<enumeration value="MANUFACTURER_WEBSITE_URL">

<annotation>

<documentation>
Replace vanity pharma URL with manufacturer website url.
</documentation>
</annotation>
</enumeration>
<enumeration value="WEBSITE_DESCRIPTION">

<annotation>

<documentation>
Replace vanity pharma URL with description of the website.
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="VanityPharmaText">

<annotation>

<documentation>
Static text for Vanity Pharma URLs. This text with website descriptions
will be shown in the display URL when website description option for vanity
pharma URLs is selected.
</documentation>
</annotation>
<restriction base="xsd:string">

<enumeration value="UNKNOWN">

<annotation>

<documentation>
<span class="constraint Rejected">Used for return value only. An
enumeration could not be processed, typically due to incompatibility with
your WSDL version.</span>
</documentation>
</annotation>
</enumeration>
<enumeration value="PRESCRIPTION_TREATMENT_WEBSITE_EN">

<annotation>

<documentation>Prescription treatment website</documentation>
</annotation>
</enumeration>
<enumeration value="PRESCRIPTION_TREATMENT_WEBSITE_ES">

<annotation>

<documentation>Sitio de tratamientos con receta</documentation>
</annotation>
</enumeration>
<enumeration value="PRESCRIPTION_DEVICE_WEBSITE_EN">

<annotation>

<documentation>Prescription device website</documentation>
</annotation>
</enumeration>
<enumeration value="PRESCRIPTION_DEVICE_WEBSITE_ES">

<annotation>

<documentation>Sitio de dispositivos con receta</documentation>
</annotation>
</enumeration>
<enumeration value="MEDICAL_DEVICE_WEBSITE_EN">

<annotation>

<documentation>Medical device website</documentation>
</annotation>
</enumeration>
<enumeration value="MEDICAL_DEVICE_WEBSITE_ES">

<annotation>

<documentation>Sitio de dispositivos m?dicos</documentation>
</annotation>
</enumeration>
<enumeration value="PREVENTATIVE_TREATMENT_WEBSITE_EN">

<annotation>

<documentation>Preventative treatment website</documentation>
</annotation>
</enumeration>
<enumeration value="PREVENTATIVE_TREATMENT_WEBSITE_ES">

<annotation>

<documentation>Sitio de tratamientos preventivos</documentation>
</annotation>
</enumeration>
<enumeration value="PRESCRIPTION_CONTRACEPTION_WEBSITE_EN">

<annotation>

<documentation>Prescription contraception website</documentation>
</annotation>
</enumeration>
<enumeration value="PRESCRIPTION_CONTRACEPTION_WEBSITE_ES">

<annotation>

<documentation>Sitio de anticonceptivos con receta</documentation>
</annotation>
</enumeration>
<enumeration value="PRESCRIPTION_VACCINE_WEBSITE_EN">

<annotation>

<documentation>Prescription vaccine website</documentation>
</annotation>
</enumeration>
<enumeration value="PRESCRIPTION_VACCINE_WEBSITE_ES">

<annotation>

<documentation>Sitio de vacunas con receta</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<element name="get">

<annotation>

<documentation>
Returns the list of campaigns that meet the selector criteria. @param
serviceSelector the selector specifying the {@link Campaign}s to return.
@return A list of campaigns. @throws ApiException if problems occurred
while fetching campaign information.
</documentation>
</annotation>
<complexType>

<sequence>

<element maxOccurs="1" minOccurs="0" name="serviceSelector"
type="tns:Selector">

<annotation>

<documentation>
<span class="constraint Required">This field is required and should not be
{@code null}.</span>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
</element>
<element name="getResponse">

<complexType>

<sequence>

<element maxOccurs="1" minOccurs="0" name="rval" type="tns:CampaignPage"/>
</sequence>
</complexType>
</element>
<element name="ApiExceptionFault" type="tns:ApiException">

<annotation>

<documentation>A fault element of type ApiException.</documentation>
</annotation>
</element>
<element name="mutate">

<annotation>

<documentation>
Adds, updates, or removes campaigns. <p class="note"><b>Note:</b> {@link
CampaignOperation} does not support the <code>REMOVE</code> operator. To
remove a campaign, set its {@link Campaign#status status} to {@code
REMOVED}.</p> @param operations A list of unique operations. The same
campaign cannot be specified in more than one operation. @return The list
of updated campaigns, returned in the same order as the <code>operations</code>
array. @throws ApiException if problems occurred while updating campaign
information.
</documentation>
</annotation>
<complexType>

<sequence>

<element maxOccurs="unbounded" minOccurs="0" name="operations"
type="tns:CampaignOperation">

<annotation>

<documentation>
<span class="constraint ContentsNotNull">This field must not contain {@code
null} elements.</span> <span class="constraint DistinctIds">Elements in this
field must have distinct IDs for following {@link Operator}s : SET, REMOVE
.</span> <span class="constraint NotEmpty">This field must contain at least
one element.</span> <span class="constraint Required">This field is
required and should not be {@code null}.</span> <span class="constraint
SupportedOperators">The following {@link Operator}s are supported: ADD, SET
.</span>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
</element>
<element name="mutateResponse">

<complexType>

<sequence>

<element maxOccurs="1" minOccurs="0" name="rval" type=
"tns:CampaignReturnValue"/>
</sequence>
</complexType>
</element>
<element name="mutateLabel">

<annotation>

<documentation>
Adds labels to the {@linkplain Campaign campaign} or removes {@linkplain
Label label}s from the {@linkplain Campaign campaign}. <p>Add - Apply an
existing label to an existing {@linkplain Campaign campaign}. The {@code
campaignId} must reference an existing {@linkplain Campaign}. The {@code
labelId} must reference an existing {@linkplain Label label}. <p>Remove -
Removes the link between the specified {@linkplain Campaign campaign} and
{@linkplain Label label}. @param operations the operations to apply.
@return a list of {@linkplain CampaignLabel}s where each entry in the list
is the result of applying the operation in the input list with the same
index. For an add operation, the returned CampaignLabel contains the
CampaignId and the LabelId. In the case of a remove operation, the returned
CampaignLabel will only have CampaignId. @throws ApiException when there
are one or more errors with the request.
</documentation>
</annotation>
<complexType>

<sequence>

<element maxOccurs="unbounded" minOccurs="0" name="operations"
type="tns:CampaignLabelOperation">

<annotation>

<documentation>
<span class="constraint ContentsNotNull">This field must not contain {@code
null} elements.</span> <span class="constraint DistinctIds">Elements in this
field must have distinct IDs for following {@link Operator}s : ADD, REMOVE
.</span> <span class="constraint NotEmpty">This field must contain at least
one element.</span> <span class="constraint Required">This field is
required and should not be {@code null}.</span> <span class="constraint
SupportedOperators">The following {@link Operator}s are supported: ADD,
REMOVE.</span>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
</element>
<element name="mutateLabelResponse">

<complexType>

<sequence>

<element maxOccurs="1" minOccurs="0" name="rval" type=
"tns:CampaignLabelReturnValue"/>
</sequence>
</complexType>
</element>
<element name="query">

<annotation>

<documentation>
Returns the list of campaigns that match the query. @param query The
SQL-like AWQL query string. @return A list of campaigns. @throws
ApiException if problems occur while parsing the query or fetching campaign
information.
</documentation>
</annotation>
<complexType>

<sequence>

<element maxOccurs="1" minOccurs="0" name="query" type="xsd:string">

<annotation>

<documentation>
<span class="constraint Required">This field is required and should not be
{@code null}.</span>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
</element>
<element name="queryResponse">

<complexType>

<sequence>

<element maxOccurs="1" minOccurs="0" name="rval" type="tns:CampaignPage"/>
</sequence>
</complexType>
</element>
<element name="RequestHeader" type="tns:SoapHeader"/>
<element name="ResponseHeader" type="tns:SoapResponseHeader"/>
</schema>
</wsdl:types>
<wsdl:message name="RequestHeader">

<wsdl:part element="tns:RequestHeader" name="RequestHeader"/>
</wsdl:message>
<wsdl:message name="ResponseHeader">

<wsdl:part element="tns:ResponseHeader" name="ResponseHeader"/>
</wsdl:message>
<wsdl:message name="getRequest">

<wsdl:part element="tns:get" name="parameters"/>
</wsdl:message>
<wsdl:message name="getResponse">

<wsdl:part element="tns:getResponse" name="parameters"/>
</wsdl:message>
<wsdl:message name="ApiException">

<wsdl:part element="tns:ApiExceptionFault" name="ApiException"/>
</wsdl:message>
<wsdl:message name="mutateRequest">

<wsdl:part element="tns:mutate" name="parameters"/>
</wsdl:message>
<wsdl:message name="mutateResponse">

<wsdl:part element="tns:mutateResponse" name="parameters"/>
</wsdl:message>
<wsdl:message name="mutateLabelRequest">

<wsdl:part element="tns:mutateLabel" name="parameters"/>
</wsdl:message>
<wsdl:message name="mutateLabelResponse">

<wsdl:part element="tns:mutateLabelResponse" name="parameters"/>
</wsdl:message>
<wsdl:message name="queryRequest">

<wsdl:part element="tns:query" name="parameters"/>
</wsdl:message>
<wsdl:message name="queryResponse">

<wsdl:part element="tns:queryResponse" name="parameters"/>
</wsdl:message>
<wsdl:portType name="CampaignServiceInterface">

<wsdl:documentation>
Use this service to manage campaigns. A {@linkplain Campaign campaign}
organizes one or more ad groups together and has its own budget, bidding
strategy, serving date range, and targeting settings (managed using {@link
CampaignCriterionService}). You can also set campaign-wide ad extensions
using {@link CampaignExtensionSettingService}. <p><b>Note:</b>
CampaignService does not support video campaigns.</p>
</wsdl:documentation>
<wsdl:operation name="get">

<wsdl:documentation>
Returns the list of campaigns that meet the selector criteria. @param
serviceSelector the selector specifying the {@link Campaign}s to return.
@return A list of campaigns. @throws ApiException if problems occurred
while fetching campaign information.
</wsdl:documentation>
<wsdl:input message="tns:getRequest" name="getRequest"/>
<wsdl:output message="tns:getResponse" name="getResponse"/>
<wsdl:fault message="tns:ApiException" name="ApiException"/>
</wsdl:operation>
<wsdl:operation name="mutate">

<wsdl:documentation>
Adds, updates, or removes campaigns. <p class="note"><b>Note:</b> {@link
CampaignOperation} does not support the <code>REMOVE</code> operator. To
remove a campaign, set its {@link Campaign#status status} to {@code
REMOVED}.</p> @param operations A list of unique operations. The same
campaign cannot be specified in more than one operation. @return The list
of updated campaigns, returned in the same order as the <code>operations</code>
array. @throws ApiException if problems occurred while updating campaign
information.
</wsdl:documentation>
<wsdl:input message="tns:mutateRequest" name="mutateRequest"/>
<wsdl:output message="tns:mutateResponse" name="mutateResponse"/>
<wsdl:fault message="tns:ApiException" name="ApiException"/>
</wsdl:operation>
<wsdl:operation name="mutateLabel">

<wsdl:documentation>
Adds labels to the {@linkplain Campaign campaign} or removes {@linkplain
Label label}s from the {@linkplain Campaign campaign}. <p>Add - Apply an
existing label to an existing {@linkplain Campaign campaign}. The {@code
campaignId} must reference an existing {@linkplain Campaign}. The {@code
labelId} must reference an existing {@linkplain Label label}. <p>Remove -
Removes the link between the specified {@linkplain Campaign campaign} and
{@linkplain Label label}. @param operations the operations to apply.
@return a list of {@linkplain CampaignLabel}s where each entry in the list
is the result of applying the operation in the input list with the same
index. For an add operation, the returned CampaignLabel contains the
CampaignId and the LabelId. In the case of a remove operation, the returned
CampaignLabel will only have CampaignId. @throws ApiException when there
are one or more errors with the request.
</wsdl:documentation>
<wsdl:input message="tns:mutateLabelRequest" name="mutateLabelRequest"/>
<wsdl:output message="tns:mutateLabelResponse" name="mutateLabelResponse"/>
<wsdl:fault message="tns:ApiException" name="ApiException"/>
</wsdl:operation>
<wsdl:operation name="query">

<wsdl:documentation>
Returns the list of campaigns that match the query. @param query The
SQL-like AWQL query string. @return A list of campaigns. @throws
ApiException if problems occur while parsing the query or fetching campaign
information.
</wsdl:documentation>
<wsdl:input message="tns:queryRequest" name="queryRequest"/>
<wsdl:output message="tns:queryResponse" name="queryResponse"/>
<wsdl:fault message="tns:ApiException" name="ApiException"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="CampaignServiceSoapBinding" type=
"tns:CampaignServiceInterface">

<wsdlsoap:binding style="document" transport=
"http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="get">

<wsdlsoap:operation soapAction=""/>
<wsdl:input name="getRequest">

<wsdlsoap:header message="tns:RequestHeader" part="RequestHeader" use=
"literal"/>
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="getResponse">

<wsdlsoap:header message="tns:ResponseHeader" part="ResponseHeader"
use="literal"/>
<wsdlsoap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="ApiException">

<wsdlsoap:fault name="ApiException" use="literal"/>
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="mutate">

<wsdlsoap:operation soapAction=""/>
<wsdl:input name="mutateRequest">

<wsdlsoap:header message="tns:RequestHeader" part="RequestHeader" use=
"literal"/>
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="mutateResponse">

<wsdlsoap:header message="tns:ResponseHeader" part="ResponseHeader"
use="literal"/>
<wsdlsoap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="ApiException">

<wsdlsoap:fault name="ApiException" use="literal"/>
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="mutateLabel">

<wsdlsoap:operation soapAction=""/>
<wsdl:input name="mutateLabelRequest">

<wsdlsoap:header message="tns:RequestHeader" part="RequestHeader" use=
"literal"/>
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="mutateLabelResponse">

<wsdlsoap:header message="tns:ResponseHeader" part="ResponseHeader"
use="literal"/>
<wsdlsoap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="ApiException">

<wsdlsoap:fault name="ApiException" use="literal"/>
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="query">

<wsdlsoap:operation soapAction=""/>
<wsdl:input name="queryRequest">

<wsdlsoap:header message="tns:RequestHeader" part="RequestHeader" use=
"literal"/>
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="queryResponse">

<wsdlsoap:header message="tns:ResponseHeader" part="ResponseHeader"
use="literal"/>
<wsdlsoap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="ApiException">

<wsdlsoap:fault name="ApiException" use="literal"/>
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="CampaignService">

<wsdl:port binding="tns:CampaignServiceSoapBinding"
name="CampaignServiceInterfacePort">

<wsdlsoap:address location="https://adwords.google.com/api/adwords/cm/
v201710/CampaignService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>


On Thursday, February 22, 2018 at 8:11:10 PM UTC, Dhanya Sundararaju

(AdWords API Team) wrote:
>
> Hi Olek,
>
> Your summary of steps look fine to me. However, in your output,
> INFO:googleads.common:Request summary - {'methodName': get} should have
> been
> INFO:googleads.common:Request summary - {'clientCustomerId': ***-***-****,
> 'methodName': get} where ***-***-**** refers to your client customer id
> which means the client customer id is not being read properly from your
> googleads.yaml

> <https://github.com/googleads/googleads-python-lib/blob/master/googleads.yaml> file.

> In order to confirm that your issue not environment related, could you run
> get_campaigns.py

> <https://github.com/googleads/googleads-python-lib/blob/master/examples/adwords/v201710/basic_operations/get_campaigns.py> from

Dhanya Sundararaju (AdWords API Team)

unread,
Feb 23, 2018, 2:43:23 PM2/23/18
to AdWords API Forum
Hi Olek,

The get_campaigns.py from the client library has logging enabled already in the code as per the lines below:

logging.basicConfig(level=logging.INFO)
logging.getLogger('suds.transport').setLevel(logging.DEBUG)

So, when you run get_campaigns.py, you should be getting the SOAP request and response at the standard output. For example, I receive the output as below. Please note I have masked confidential data:

***@***:~$ '/usr/local/google/home/***/Downloads/googleads-python-lib-master/examples/adwords/v201710/basic_operations/get_campaigns.py' 

DEBUG:suds.transport.http:opening (https://adwords.google.com/api/adwords/cm/v201710/CampaignService?wsdl)
INFO:oauth2client.client:Refreshing access_token
INFO:googleads.common:Request summary - {'clientCustomerId': ***-***-****, 'methodName': get}
HEADERS: {'Soapaction': '""', 'Content-Type': 'text/xml; charset=utf-8', 'Content-type': 'text/xml; charset=utf-8', 'Authorization': 'REDACTED', 'SOAPAction': '""'}
MESSAGE:
<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:ns0="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://adwords.google.com/api/adwords/cm/v201710" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="https://adwords.google.com/api/adwords/cm/v201710" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header><tns:RequestHeader><tns:clientCustomerId>***-***-****</tns:clientCustomerId><tns:developerToken>REDACTED</tns:developerToken><tns:userAgent>unknown (AwApi-Python, googleads/9.0.0, Python/2.7.13)</tns:userAgent><tns:validateOnly>false</tns:validateOnly><tns:partialFailure>false</tns:partialFailure></tns:RequestHeader></SOAP-ENV:Header><ns0:Body><ns1:get><ns1:serviceSelector><ns1:fields>Id</ns1:fields><ns1:fields>Name</ns1:fields><ns1:fields>Status</ns1:fields><ns1:paging><ns1:startIndex>0</ns1:startIndex><ns1:numberResults>100</ns1:numberResults></ns1:paging></ns1:serviceSelector></ns1:get></ns0:Body></SOAP-ENV:Envelope>
DEBUG:suds.transport.http:received:
CODE: 200
HEADERS: {'x-google-shellfish-status': 'CA0gBEAy', 'x-google-gfe-response-code-details-trace': 'response_code_set_by_backend,response_code_set_by_backend', 'x-google-session-info': 'CJ2l-PiKBBAHGgkYASgJMNqQxVhKETAEOg0xL25VUkU4NWxqZ2h-WgdKBWVuLVVTiAEBwAEB', 'x-google-netmon-label': '/bns/qk/borg/qk/bns/adwordsapi/adwords-webapi-prod.server/14', 'x-xss-protection': '1; mode=block', 'x-content-type-options': 'nosniff', 'x-google-servertype': 'adwords-webapi', 'x-google-backends': '/bns/qk/borg/qk/bns/adwordsapi/adwords-webapi-prod.server/14,yvdn2:9868,/bns/yv/borg/yv/bns/traffic-prod/shared-layer2-gfe/86,yxbm131:443', 'alt-svc': 'hq=":443"; ma=2592000; quic=51303431; quic=51303339; quic=51303338; quic=51303337; quic=51303335,quic=":443"; ma=2592000; v="41,39,38,37,35"', 'x-google-gfe-service-trace': 'adwords-webapi,ads-frontend-adv-aggregate', 'x-google-gslb-service': 'adwords-webapi', 'cache-control': 'private, max-age=0', 'accept-ranges': 'none', 'expires': 'Fri, 23 Feb 2018 18:42:47 GMT', 'date': 'Fri, 23 Feb 2018 18:42:47 GMT', 'x-google-gfe-request-trace': 'yxbm131:443,yvdn2:9868,/bns/qk/borg/qk/bns/adwordsapi/adwords-webapi-prod.server/14,yvdn2:9868,yxbm131:443', 'x-google-dos-service-trace': 'main:adwords-webapi,main:shared-layer2-gfe', 'x-google-service': 'adwords-webapi,ads-frontend-adv-aggregate', 'server': 'GSE', 'x-google-gfe-response-body-transformations': 'gunzipped', 'connection': 'close', 'x-frame-options': 'SAMEORIGIN', 'content-type': 'text/xml; charset=UTF-8', 'vary': 'Accept-Encoding'}
MESSAGE:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Header><ResponseHeader xmlns="https://adwords.google.com/api/adwords/cm/v201710"><requestId>000565e586d461980a371346a00f19a5</requestId><serviceName>CampaignService</serviceName><methodName>get</methodName><operations>1</operations><responseTime>230</responseTime></ResponseHeader></soap:Header><soap:Body><getResponse xmlns="https://adwords.google.com/api/adwords/cm/v201710"><rval><totalNumEntries>3</totalNumEntries><Page.Type>CampaignPage</Page.Type><entries><id>****195</id><name>trial 2</name><status>ENABLED</status><budget></budget></entries><entries><id>****832</id><name>Interplanetary Cruise #5a69f81cb2f8e</name><status>PAUSED</status><budget></budget></entries><entries><id>*****708</id><name>Shopping campaign #1517413284020</name><status>ENABLED</status><budget></budget></entries></rval></getResponse></soap:Body></soap:Envelope>
INFO:googleads.common:Response summary - {'operations': 1, 'methodName': get, 'isFault': False, 'requestId': 000565e586d461980a371346a00f19a5, 'responseTime': 230, 'serviceName': CampaignService}
Campaign with id "***195", name "trial 2", and status "ENABLED" was found.
Campaign with id "***832", name "Interplanetary Cruise #5a69f81cb2f8e", and status "PAUSED" was found.
Campaign with id "***708", name "Shopping campaign #1517413284020", and status "ENABLED" was found.

Could you please run the same program from the library and reply back with your SOAP logs?
Reply all
Reply to author
Forward
0 new messages