Hi Costantin
My apologies for the confusion. Instead of using *INT64* as
the AdCustomizerFeedAttribute.Type, you should use the *INTEGER *as the
value instead. Also, the FLOAT type is not supported for
AdCustomizerFeedAttribute.Type as it is not included in this guide
<https://developers.google.com/adwords/api/docs/reference/v201809/AdCustomizerFeedService.AdCustomizerFeedAttribute.Type>
.
Let me know if it works after trying my suggestion.
Regards,
Dannison
AdWords API Team
On Wednesday, December 5, 2018 at 6:45:00 PM UTC+8, Costantin wrote:
>
> Hi Dannison,
>
> Sorry but I still don't get it.
> The name field should be the column name, for type STRING, I can pass any
> random name and the column gets appropriately labeled with that name on
> Google Ads.
> I'm pretty sure that the same is supposed to happen also with type FLOAT
> or other types. Why I would want to name a column with an integer name? The
> value, however, must be an integer if I set the type as INT64, that does
> make sense.
>
> As a very minimal example you could try to make this request:
>
> ad_customizer_feed_service = client.GetService("AdCustomizerFeedService",
> version='v201809')
> customizer_feed = {
> 'feedName': 'feed name xyz',
> 'feedAttributes': [{'type': 'STRING', 'name': 'this
> is the column name'}]}
> feed_service_operation = {'operator': 'ADD', 'operand': customizer_feed}
> response = ad_customizer_feed_service.mutate([feed_service_operation])
>
>
> if response and 'value' in response: r = "VALID: {}".format(response)
> else: r = "NOT VALID: {}".format(response)
>
>
> return r
>
>
>
>
> This correctly returns:
> VALID: { 'ListReturnValue.Type': 'AdCustomizerFeedReturnValue', 'value': [
> { 'feedId': 85XXXXX, 'feedName': 'feed name xyz', 'feedStatus': 'ENABLED',
> 'feedAttributes': [ { 'id': 1, 'name': 'this is the column name', 'type':
> 'STRING' } ] } ] }
>
> *Now if I try to submit a column with type INT64:*
>
> ad_customizer_feed_service = client.GetService("AdCustomizerFeedService",
> version='v201809')
> customizer_feed = {
> 'feedName': 'feed name xyz 2',
> 'feedAttributes': [{'type': 'INT64', 'name': 'this is the column name 2'
> }]
> }
> feed_service_operation = {'operator': 'ADD', 'operand': customizer_feed}
> response = ad_customizer_feed_service.mutate([feed_service_operation])
>
>
> if response and 'value' in response: r = "VALID: {}".format(response)
> else: r = "NOT VALID: {}".format(response)
>
>
> print(r)
> return r
>
> This gives me the following error:
> googleads.errors.GoogleAdsServerFault: [RequiredError.REQUIRED @
> operations[0].operand.feedAttributes[0].type]
>
>
> I've tried to use an integer as the name but that also didn't work. I'm
> pretty sure that the request above is supposed to work just like that.
> Could someone try to make the same request and see why is not working? I
> would really need this to work.
>
> This is the full SOAP logs of the failed (the second) request:
>
>
> [2018-12-05 12:39:41,601 - googleads.soap - INFO] Request made: Service:
> "AdCustomizerFeedService" Method: "mutate" URL: "
> https://adwords.google.com/api/adwords/cm/v201809/AdCustomizerFeedService"
>
>
>
> [2018-12-05 12:39:41,601 - googleads.soap - DEBUG] Outgoing request: {
> 'SOAPAction': '""', 'Content-Type': 'text/xml; charset=utf-8',
> 'authorization': 'REDACTED'}
>
> <soap-env:Envelope xmlns:soap-env="
> http://schemas.xmlsoap.org/soap/envelope/">
>
> <soap-env:Header>
>
> <ns0:RequestHeader xmlns:ns0="
> https://adwords.google.com/api/adwords/cm/v201809">
>
> <ns0:clientCustomerId>197XXXXXX</ns0:clientCustomerId>
>
> <ns0:developerToken>REDACTED</ns0:developerToken>
>
> <ns0:userAgent>unknown (AwApi-Python, googleads/15.0.0, Python/3.6.3
> , zeep)</ns0:userAgent>
>
> <ns0:validateOnly>false</ns0:validateOnly>
>
> <ns0:partialFailure>false</ns0:partialFailure>
>
> </ns0:RequestHeader>
>
> </soap-env:Header>
>
> <soap-env:Body>
>
> <ns0:mutate xmlns:ns0="
> https://adwords.google.com/api/adwords/cm/v201809">
>
> <ns0:operations>
>
> <ns0:operator>ADD</ns0:operator>
>
> <ns0:operand>
>
> <ns0:feedName>feed name xyz 2</ns0:feedName>
>
> <ns0:feedAttributes>
>
> <ns0:name>this is the column name 2</ns0:name>
>
> <ns0:type>INT64</ns0:type>
>
> </ns0:feedAttributes>
>
> </ns0:operand>
>
> </ns0:operations>
>
> </ns0:mutate>
>
> </soap-env:Body>
>
> </soap-env:Envelope>
>
>
>
>
> [2018-12-05 12:39:42,717 - googleads.soap - DEBUG] Incoming response:
>
> b'<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">\n
> <soap:Header>\n <ResponseHeader xmlns="
> https://adwords.google.com/api/adwords/cm/v201809">\n
> <requestId>00057c43ffeXXXXXXX</requestId>\n
> <serviceName>AdCustomizerFeedService</serviceName>\n
> <methodName>mutate</methodName>\n <operations>1</operations>\n
> <responseTime>520</responseTime>\n </ResponseHeader>\n
> </soap:Header>\n <soap:Body>\n <soap:Fault>\n
> <faultcode>soap:Client</faultcode>\n
> <faultstring>[RequiredError.REQUIRED @
> operations[0].operand.feedAttributes[0].type]</faultstring>\n
> <detail>\n <ApiExceptionFault xmlns="
> https://adwords.google.com/api/adwords/cm/v201809">\n
> <message>[RequiredError.REQUIRED @
> operations[0].operand.feedAttributes[0].type]</message>\n
> <ApplicationException.Type>ApiException</ApplicationException.Type>\n
> <errors xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:type="RequiredError">\n
> <fieldPath>operations[0].operand.feedAttributes[0].type</fieldPath>\n
> <fieldPathElements>\n <field>operations</field>\n
> <index>0</index>\n </fieldPathElements>\n
> <fieldPathElements>\n <field>operand</field>\n
> </fieldPathElements>\n <fieldPathElements>\n
> <field>feedAttributes</field>\n <index>0</index>\n
> </fieldPathElements>\n <fieldPathElements>\n
> <field>type</field>\n </fieldPathElements>\n
> <trigger/>\n
> <errorString>RequiredError.REQUIRED</errorString>\n
> <ApiError.Type>RequiredError</ApiError.Type>\n
> <reason>REQUIRED</reason>\n </errors>\n
> </ApiExceptionFault>\n </detail>\n </soap:Fault>\n
> </soap:Body>\n</soap:Envelope>\n'
>
> [2018-12-05 12:39:42,718 - googleads.soap - WARNING] Error summary: {
> 'faultMessage': '[RequiredError.REQUIRED @
> operations[0].operand.feedAttributes[0].type]', 'requestId':
> '00057c43ffe9XXXXXXX', 'serviceName': 'AdCustomizerFeedService',
> 'methodName': 'mutate', 'operations': '1', 'responseTime': '520'}
>
>
>
>
--
--
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog:
https://googleadsdeveloper.blogspot.com/
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
You received this message because you are subscribed to the Google
Groups "AdWords API and Google Ads 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
---
You received this message because you are subscribed to the Google Groups
"AdWords API and Google Ads API Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
Visit this group at https://groups.google.com/group/adwords-api.
To view this discussion on the web visit
https://groups.google.com/d/msgid/adwords-api/1c8ad19e-b00f-4861-9807-e3783aaf726b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.