Hey all,

  Has anybody used ProductAdExtensions with AdWords successfully?  I'm 
seeing weird issues with getting a list of extensions (I always get 0 
entries back, even if the campaign explicitly has ProductAdExtensions set 
up).  In addition, all attempts to add ProductAdExtensions results in 
a NOT_AUTHORIZED_TO_CREATE_EXTENSION error.  Now, the corresponding Google 
Merchant account already has the AdWords Client ID added.  Is there some 
other connection point that I'm missing?

Here's a sample GET request (with various things redacted, of course):

*** Outgoing HTTP headers **********************************************
POST /api/adwords/cm/v201101/CampaignAdExtensionService HTTP/1.0
Host:adwords.google.com
User-agent:SOAPpy 0.12.0 (pywebsvcs.sf.net)
XML-parser: xml.etree.cElementTree v1.0.6
Content-type:text/xml; charset="UTF-8"
Content-length:1556
SOAPAction:
************************************************************************
*** Outgoing SOAP ******************************************************
<?xml version='1.0' encoding='UTF-8'?>
<ns0:Envelope ns0:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; 
xmlns:ns0="http://schemas.xmlsoap.org/soap/envelope/";>
 <ns0:Header>
  <ns1:RequestHeader 
xmlns:ns1="https://adwords.google.com/api/adwords/cm/v201101";>
   <ns1:authToken ns2:type="xsd3:string" 
xmlns:ns2="http://www.w3.org/2001/XMLSchema-instance";>xxxx</ns1:authToken>
   <ns1:userAgent ns2:type="xsd3:string" 
xmlns:ns2="http://www.w3.org/2001/XMLSchema-instance";>AwApi-Python-14.2.1</ns1:userAgent>
   <ns1:clientCustomerId ns2:type="xsd3:string" 
xmlns:ns2="http://www.w3.org/2001/XMLSchema-instance";>xxxxxx</ns1:clientCustomerId>
   <ns1:developerToken ns2:type="xsd3:string" 
xmlns:ns2="http://www.w3.org/2001/XMLSchema-instance";>xxxx</ns1:developerToken>
   <ns1:validateOnly ns2:type="xsd3:string" 
xmlns:ns2="http://www.w3.org/2001/XMLSchema-instance";>false</ns1:validateOnly>
  </ns1:RequestHeader>
 </ns0:Header>
 <ns0:Body>
  <ns1:get xmlns:ns1="https://adwords.google.com/api/adwords/cm/v201101";>
   <ns1:serviceSelector ns2:type="Selector" 
xmlns:ns2="http://www.w3.org/2001/XMLSchema-instance";>
    <ns1:fields>AdExtensionId</ns1:fields>
    <ns1:fields>CampaignId</ns1:fields>
    <ns1:fields>Status</ns1:fields>
    <ns1:fields>AdvertiserName</ns1:fields>
    <ns1:fields>GoogleBaseCustomerId</ns1:fields>
    <ns1:predicates ns2:type="Predicate">
     <ns1:field>CampaignId</ns1:field>
     <ns1:operator>EQUALS</ns1:operator>
     <ns1:values>xxxxx</ns1:values>
    </ns1:predicates>
   </ns1:serviceSelector>
  </ns1:get>
 </ns0:Body>
</ns0:Envelope>
************************************************************************
*** Incoming HTTP headers **********************************************
HTTP/1.? 200 OK
Content-Type: text/xml; charset=UTF-8
Date: Thu, 25 Aug 2011 22:43:18 GMT
Expires: Thu, 25 Aug 2011 22:43:18 GMT
Cache-Control: private, max-age=0
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Server: GSE
************************************************************************
*** Incoming SOAP ******************************************************
<?xml version='1.0' encoding='UTF-8'?>
<ns0:Envelope xmlns:ns0="http://schemas.xmlsoap.org/soap/envelope/";>
 <ns0:Header>
  <ns1:ResponseHeader 
xmlns:ns1="https://adwords.google.com/api/adwords/cm/v201101";>
   <ns1:requestId>0004ab5c27b250880a4206e90272fad5</ns1:requestId>
   <ns1:operations>0</ns1:operations>
   <ns1:responseTime>251</ns1:responseTime>
   <ns1:units>0</ns1:units>
  </ns1:ResponseHeader>
 </ns0:Header>
 <ns0:Body>
  <ns1:getResponse 
xmlns:ns1="https://adwords.google.com/api/adwords/cm/v201101";>
   <ns1:rval>
    <ns1:totalNumEntries>0</ns1:totalNumEntries>
    <ns1:Page.Type>CampaignAdExtensionPage</ns1:Page.Type>
   </ns1:rval>
  </ns1:getResponse>
 </ns0:Body>
</ns0:Envelope>
************************************************************************

Finally, here's one of our mutate requests:

*** Outgoing HTTP headers **********************************************
POST /api/adwords/cm/v201101/CampaignAdExtensionService HTTP/1.0
Host:adwords.google.com
User-agent:SOAPpy 0.12.0 (pywebsvcs.sf.net)
XML-parser: xml.etree.cElementTree v1.0.6
Content-type:text/xml; charset="UTF-8"
Content-length:1562
SOAPAction:
************************************************************************
*** Outgoing SOAP ******************************************************
<?xml version='1.0' encoding='UTF-8'?>
<ns0:Envelope ns0:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; 
xmlns:ns0="http://schemas.xmlsoap.org/soap/envelope/";>
 <ns0:Header>
  <ns1:RequestHeader 
xmlns:ns1="https://adwords.google.com/api/adwords/cm/v201101";>
   <ns1:authToken ns2:type="xsd3:string" 
xmlns:ns2="http://www.w3.org/2001/XMLSchema-instance";>xxxxxx</ns1:authToken>
   <ns1:userAgent ns2:type="xsd3:string" 
xmlns:ns2="http://www.w3.org/2001/XMLSchema-instance";>AwApi-Python-14.2.1</ns1:userAgent>
   <ns1:developerToken ns2:type="xsd3:string" 
xmlns:ns2="http://www.w3.org/2001/XMLSchema-instance";>xxxx</ns1:developerToken>
   <ns1:clientEmail ns2:type="xsd3:string" 
xmlns:ns2="http://www.w3.org/2001/XMLSchema-instance";>xxxx</ns1:clientEmail>
   <ns1:validateOnly ns2:type="xsd3:string" 
xmlns:ns2="http://www.w3.org/2001/XMLSchema-instance";>false</ns1:validateOnly>
  </ns1:RequestHeader>
 </ns0:Header>
 <ns0:Body>
  <ns1:mutate xmlns:ns1="https://adwords.google.com/api/adwords/cm/v201101";>
   <ns1:operations ns2:type="CampaignAdExtensionOperation" 
xmlns:ns2="http://www.w3.org/2001/XMLSchema-instance";>
    <ns1:operator>ADD</ns1:operator>
    <ns1:operand ns2:type="CampaignAdExtension">
     <ns1:campaignId>xxxx</ns1:campaignId>
     <ns1:adExtension ns2:type="ProductExtension">
      <ns1:googleBaseCustomerId>xxxxx</ns1:googleBaseCustomerId>
      <ns1:advertiserName>Some Name</ns1:advertiserName>
     </ns1:adExtension>
    </ns1:operand>
   </ns1:operations>
  </ns1:mutate>
 </ns0:Body>
</ns0:Envelope>
************************************************************************
*** Incoming HTTP headers **********************************************
HTTP/1.? 500 Internal Server Error
Content-Type: text/xml; charset=UTF-8
Date: Thu, 25 Aug 2011 23:03:52 GMT
Expires: Thu, 25 Aug 2011 23:03:52 GMT
Cache-Control: private, max-age=0
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Server: GSE
************************************************************************
*** Incoming SOAP ******************************************************
<?xml version='1.0' encoding='UTF-8'?>
<ns0:Envelope xmlns:ns0="http://schemas.xmlsoap.org/soap/envelope/";>
 <ns0:Header>
  <ns1:ResponseHeader 
xmlns:ns1="https://adwords.google.com/api/adwords/cm/v201101";>
   <ns1:requestId>0004ab5c7129bfa80a4248010270ab99</ns1:requestId>
   <ns1:operations>0</ns1:operations>
   <ns1:responseTime>1263</ns1:responseTime>
   <ns1:units>0</ns1:units>
  </ns1:ResponseHeader>
 </ns0:Header>
 <ns0:Body>
  <ns0:Fault>
   <faultcode>soap:Server</faultcode>
   <faultstring>[AdExtensionError.NOT_AUTHORIZED_TO_CREATE_EXTENSION @ 
operations[0].operand.adExtension]</faultstring>
   <detail>
    <ns1:ApiExceptionFault 
xmlns:ns1="https://adwords.google.com/api/adwords/cm/v201101";>
     <ns1:message>[AdExtensionError.NOT_AUTHORIZED_TO_CREATE_EXTENSION @ 
operations[0].operand.adExtension]</ns1:message>
    
 <ns1:ApplicationException.Type>ApiException</ns1:ApplicationException.Type>
     <ns1:errors ns2:type="AdExtensionError" 
xmlns:ns2="http://www.w3.org/2001/XMLSchema-instance";>
      <ns1:fieldPath>operations[0].operand.adExtension</ns1:fieldPath>
      <ns1:trigger />
      
<ns1:errorString>AdExtensionError.NOT_AUTHORIZED_TO_CREATE_EXTENSION</ns1:errorString>
      <ns1:ApiError.Type>AdExtensionError</ns1:ApiError.Type>
      <ns1:reason>NOT_AUTHORIZED_TO_CREATE_EXTENSION</ns1:reason>
     </ns1:errors>
    </ns1:ApiExceptionFault>
   </detail>
  </ns0:Fault>
 </ns0:Body>
</ns0:Envelope>
************************************************************************


-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and discussion group:
http://adwordsapi.blogspot.com
http://groups.google.com/group/adwords-api
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

You received this message because you are subscribed to the Google
Groups "AdWords API Forum" group.
To post to this group, send email to [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=en

Reply via email to