Hi Travis, There is a example that comes with the library that demonstrates how to get all campaigns with the library: http://code.google.com/p/google-api-adwords-python-lib/source/browse/trunk/demo/get_all_campaigns.py. Are you able to run this example successfully?
Best, - Eric On Nov 12, 12:10 pm, Travis B <[email protected]> wrote: > Hi Eric, > > So I've installed the python library, and I'm having trouble doing a > basic 'getAllAdWordsCampaigns' request against the sandbox. I'm having > trouble getting up and running with the library. I have a feeling I'm > not using it 100% correctly, but I based what I could off the sample > code. > > I've got ZSI and PyXML installed on the system. > > Bring on the sample code!>>>>>>>>BEGIN SAMPLE CODE>>>>>>>>> > > from qwobl_ads import config as ad_config > > from aw_api.Client import Client > > class GoogleAWAClient(object): > def __init__(self, email): > self._email = email > headers = { > 'email': self._email, > 'password': ad_config.google.password, > 'clientCustomerId': 'Unknown', > 'userAgent': ad_config.google.user_agent, > 'developerToken': ad_config.google.developer_token, > 'applicationToken': ad_config.google.application_token, > 'validateOnly': 'n' > } > > if(ad_config.google.version == 'sandbox'): > headers['clientEmail'] = 'client_1+' + self._email, > > self.client = Client(headers=headers) > > if __name__ == '__main__': > gc = GoogleAWAClient('[email protected]') > dummy = {'dummy': 0} > gc.client.CallMethod('https://sandbox.google.com/api/adwords/v13/ > CampaignService', > 'getAllAdWordsCampaigns', (dummy,), None) > <<<<<<<<<<<<<END SAMPLE CODE<<<<<<<<<<<<<<<<<< > > And the error I get is: > > Traceback (most recent call last): > File "aw_api_test.py", line 27, in <module> > 'getAllAdWordsCampaigns', (dummy,), None) > File "/home/briggs/lib/python/aw_api/Client.py", line 601, in > CallMethod > request) > File "aw_api/WebService.py", line 330, in CallMethod > aw_api.Errors.Error/home/briggs/lib/python/aw_api/Errors.py:34: > DeprecationWarning: BaseException.message has been deprecated as of > Python 2.6 > return str(self.message) > : 'tuple' object has no attribute 'find' > > On Nov 11, 6:56 pm, AdWords API Advisor <[email protected]> > wrote: > > > > > Hi Travis, > > > The short answer is that SOAPpy isn't readily compatible with the > > AdWords API web services. Our web services are Document/Literal and > > SOAPpy only support RPC/Encoded web services. It is possible to get > > SOAPpy to a compatible format, but it takes a lot of manual > > manipulation of the requests. The official AdWords API Python client > > library has this functionality built in, and we recommend you use the > > library instead of raw SOAPpy requests. > > > http://code.google.com/p/google-api-adwords-python-lib/ > > > Best, > > - Eric Koleda, AdWords API Team > > > On Nov 11, 3:44 pm, Travis B <[email protected]> wrote:> Hi folks, > > > > I can't seem to set the networkTargeting field using an updateCampaign > > > call on CampaignService. I'm using the SOAPpy framework in python. > > > > The WSDL shows that geoTargeting is a complexType, just like > > > networkTargeting, however I am able to set the later simply using > > > dictionaries. > > > > Any help is appreciated. > > > > Here's some sample code that reproduces the problem: > > > BEGIN ADWORDS SAMPLE CODE>>>>>>> > > > import SOAPpy > > > from conf import config_dict > > > > headers = SOAPpy.Types.headerType() > > > > headers.email = config_dict['email'] > > > headers.password = config_dict['password'] > > > headers.useragent = config_dict['useragent'] > > > headers.developerToken = config_dict['developerToken'] > > > headers.applicationToken = config_dict['applicationToken'] > > > headers.clientEmail = config_dict['clientEmail'] > > > > camp_service = SOAPpy.SOAPProxy('https://sandbox.google.com/api/ > > > adwords/v13/CampaignService', header=headers) > > > camp_service.config.debug = 0 > > > > camp_service.getAllAdWordsCampaigns(0) > > > print camp_service.updateCampaign({'id': 1938, 'geoTargeting': > > > {'regionTargets': {'regions': ['US-CA']}}}) > > > print camp_service.updateCampaign({'id': 1938, 'networkTargeting': > > > ['SearchNetwork']}) > > > <<<<<<<<<<<<<<END ADWORDS SAMPLE CODE > > > > As shown, the second line produces: > > > > SOAPpy.Types.faultType: <Fault soapenv:Server.userException: > > > java.lang.IllegalArgumentException: Can not set > > > com.google.ads.netapi.services.datamodel.NetworkTarget field > > > com.google.ads.netapi.services.campaign.CampaignData.networkTargeting > > > to [Ljava.lang.String;: <SOAPpy.Types.structType detail at > > > 17938624>: ... > > > > If I change the second call to: > > > print camp_service.updateCampaign({'id': 1938, 'networkTargeting': > > > {'networkTypes': ['SearchNetwork']}}) > > > > I get: > > > SOAPpy.Types.faultType: <Fault soapenv:Server.userException: > > > java.lang.IllegalArgumentException: Can not set > > > [Lcom.google.ads.netapi.services.datamodel.NetworkType; field > > > com.google.ads.netapi.services.datamodel.NetworkTarget.networkTypes to > > > [Ljava.lang.String;: <SOAPpy.Types.structType detail at > > > 14784704>: .... > > > > -Travis -- You received this message because you are subscribed to the Google Groups "AdWords API Forum" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/adwords-api?hl=.
