Getting "Cannot construct an instance of com.google.ads.api.services.datax.offlinedataupload.UploadMetadata because it is abstract" error. Thoughts?

38 views
Skip to first unread message

Steve Wilhelm

unread,
Nov 8, 2017, 12:25:41 AM11/8/17
to AdWords API Forum
I am attempting to upload offline data using the Python suds based API 

OfflineDataUploadService (v201708)


We are getting the following error:


suds.WebFault: Server raised fault: 'Cannot construct an instance of com.google.ads.api.services.datax.offlinedataupload.UploadMetadata because it is abstract.  You are probably missing an @Uses annotation while invoking public abstract com.google.ads.api.services.datax.offlinedataupload.OfflineDataUploadReturnValue com.google.ads.api.services.datax.offlinedataupload.OfflineDataUploadService.mutate(java.util.List) throws com.google.ads.api.services.common.error.ApiException with params [[com.google.ads.api.services.datax.offlinedataupload.v201708.jaxbgen.OfflineDataUploadOperation@464070a1]].'


The Python suds code is attached. Below is the XML.


Any suggestions or examples of using the OfflineDataUploadService would be welcome.


- Steve W.


<?xml version="1.0" encoding="UTF-8"?>

   <SOAP-ENV:Header>
      <tns:RequestHeader>
         <tns:clientCustomerId xmlns:tns="https://adwords.google.com/api/adwords/cm/v201708">***-***-****</tns:clientCustomerId>
         <tns:developerToken xmlns:tns="https://adwords.google.com/api/adwords/cm/v201708">*********************</tns:developerToken>
         <tns:userAgent xmlns:tns="https://adwords.google.com/api/adwords/cm/v201708">Euclid AdAdmin (AwApi-Python, googleads/8.0.0, Python/2.7.10)</tns:userAgent>
         <tns:validateOnly xmlns:tns="https://adwords.google.com/api/adwords/cm/v201708">false</tns:validateOnly>
         <tns:partialFailure xmlns:tns="https://adwords.google.com/api/adwords/cm/v201708">false</tns:partialFailure>
      </tns:RequestHeader>
   </SOAP-ENV:Header>
   <ns0:Body>
      <ns2:mutate>
         <ns2:operations>
            <ns1:operator>ADD</ns1:operator>
            <ns2:operand>
               <ns2:uploadId>123</ns2:uploadId>
               <ns2:externalUploadId>456</ns2:externalUploadId>
               <ns2:uploadType>STORE_SALES_UPLOAD_THIRD_PARTY</ns2:uploadType>
               <ns2:uploadStatus/>
               <ns2:uploadMetadata xsi:type="ns2:ThirdPartyUploadMetadata">
                  <ns2:loyaltyRate>0.0</ns2:loyaltyRate>
                  <ns2:transactionUploadRate>0.0</ns2:transactionUploadRate>
                  <ns2:advertiserUploadTime>01:05:00</ns2:advertiserUploadTime>
                  <ns2:validTransactionRate>0.0</ns2:validTransactionRate>
                  <ns2:partnerMatchRate>0.0</ns2:partnerMatchRate>
                  <ns2:partnerUploadRate>0.0</ns2:partnerUploadRate>
                  <ns2:bridgeMapVersionId>bridgeId123</ns2:bridgeMapVersionId>
                  <ns2:partnerId>partnerId123</ns2:partnerId>
               </ns2:uploadMetadata>
               <ns2:offlineDataList>
                  <ns2:userIdentifiers>
                     <ns2:userIdentifierType>EXTERNAL_USER_ID</ns2:userIdentifierType>
                     <ns2:value>id123</ns2:value>
                  </ns2:userIdentifiers>
                  <ns2:transactionTime>2017-10-31 17:30:00-08:00</ns2:transactionTime>
                  <ns2:transactionAmount>0</ns2:transactionAmount>
                  <ns2:conversionName></ns2:conversionName>
               </ns2:offlineDataList>
               <ns2:failureReason/>
            </ns2:operand>
         </ns2:operations>
      </ns2:mutate>
   </ns0:Body>
</SOAP-ENV:Envelope>



application.py
Reply all
Reply to author
Forward
0 new messages