Hi Peter,
I still don't have an update, unfortunately. I've reached out to the engineers again and will let you know when I get a response.
Thanks,
Josh, AdWords API Team
On Wednesday, December 9, 2015 at 5:00:49 AM UTC-5, peter.rietzler@smarter-ecommerce.com wrote:
Sorry for bothering again - still no updates on this ?
Thanks!
Peter
Am Mittwoch, 18. November 2015 16:11:08 UTC+1 schrieb Josh Radcliff (AdWords API Team):
Hi Peter,
No updates yet, but the engineers are looking into it. I'll get back to you as soon as I hear anything.
Cheers,
Josh, AdWords API Team
On Tuesday, November 17, 2015 at 11:25:13 PM UTC-5,
peter.r...@smarter-ecommerce.com wrote:
Hi Josh
Any updates on this ?
Thanks!
Peter
Am Mittwoch, 11. November 2015 20:55:04 UTC+1 schrieb Josh Radcliff (AdWords API Team):
Hi Peter,
Using that request ID, I found some information on our side that indicates that there may have been an unexpected duplication of this request. I'm following up with the service owners to see what happened here, and will let you know as soon as I hear back from them.
Thanks,
Josh, AdWords API Team
On Tuesday, November 10, 2015 at 10:09:09 AM UTC-5, peter... wrote:
Hi
No, I can't see any logs in our system despite the fact that the request has failed - but those logs were logged a few minutes later because further request were logged aggregated by our application.
The first example (PRODUCT_PARTITION_ALREADY_
EXISTS from 30.10.2015) that I've posted to this thread happened on 29.10.2015 21:17:20,497
requestId (taken from response) = 00052343fe9006900a0ddbd10203b361
I can definitely see from the SOAP logs (from the Adwords API) that a new group was created and the product partition add request was only sent once. Does this help ?
Am Dienstag, 3. November 2015 17:42:00 UTC+1 schrieb Josh Radcliff (AdWords API Team):Hi,
I took a look at the requests coming from your developer token, and I see REMOVE mutate requests coming in for that ad group's criteria at the following times:
ViennaTime : 2015-10-30 06:05:40
Successful : True
ViennaTime : 2015-10-30 06:06:04
Successful : False
In the user interface, I see the product groups were removed via the API at 2015-10-30 06:06:07. I realize that is after the 2nd request, but I'm theorizing that the first request may have taken 27 seconds to complete. Do you happen to have timestamps in your logs for those requests?
Thanks,
Josh, AdWords API Team
On Tuesday, November 3, 2015 at 8:41:56 AM UTC-5, peter... wrote:
Hi Josh
These are really wild assumptions, but for me it looks like that I can see the same problem with other requests regarding shopping ad group criterions too.
I've got another case that looks pretty similar to me (though I cannot prove this since I do not have SOAP logs for this). But from our logs I can see that we've sent a deletion request for shopping ad group criterions (e.g.: item id = 333518-105, criterion id = 139771732115, ad group id = 23172885875, campaign id = 321117275). The product partition was successfully deleted - I can see this in the change logs in the Adwords UI (30.10.2015 06:06:07). But my application logs tell me that the API returned an error
Errors while removing group item bids: Group 23172885875: Item 333518-105: [EntityNotFound,CriterionId{id=139771732115},EntityNotFound.INVALID_ID;];
For me it looks like that someone duplicates the same request. I've double checked our logs and they tell me that it's not our application (as stated above I unfortunately cannot see the SOAP request directly).
When looking at the SOAP logs that I've provided earlier I assume the same could have happened here.
Am Montag, 2. November 2015 19:56:56 UTC+1 schrieb Josh Radcliff (AdWords API Team):
Hi Peter,
Are you running multiple threads that are mutating the trees in question? I ask because I looked at two of your requests from today that failed with PRODUCT_PARTITION_ALREADY_EXISTS followed by PRODUCT_PARTITION_DOES_NOT_EXIST, and in both cases the partition in question does already exist in the ad group.
The requests I checked were for ad group IDs 21637072081 and 21637229281, both under campaign ID 345581401.
Thanks,
Josh, AdWords API Team
On Monday, November 2, 2015 at 12:30:38 AM UTC-5, peter... wrote:
Hi Josh
Could the usage of not using distinct temporary IDs cause this problem ? As stated above, 99% of my requests succeed (and we've actually sent millions of them until now).
The tree is correct for our purposes. It will be changed by other requests later on. The problem doesn't seem to be related to the actual tree anyhow. We also see this error when we are trying to add child partitions to already existing ones. This, however, is very hard to reproduce for me since I cannot just add logs for every SOAP request to our live application and wait for a few days for this to happen. Even this simple case required hammering against the API with a local test script for a few hours.
Thanks!
Peter
Am Freitag, 30. Oktober 2015 20:43:58 UTC+1 schrieb Josh Radcliff (AdWords API Team):
Hi,
I noticed that your request is operating on two ad groups but you are reusing the same temporary ID for both. I would recommend using distinct temporary IDs for distinct Biddable/NegativeAdGroupCriterion within a single request.
ROOT (-1 biddable SUBDIVISION)
/
ProductOfferId (negative UNIT)
It looks like you are trying to create a 2nd level of the tree that excludes everything, since you don't have other UNIT nodes at that level and the object is a NegativeAdGroupCriterion. If you subdivide the tree by a dimension (offer ID in this case), you must have at least two UNIT nodes: one for "Everything else" (ProductOfferId with a null value) and at least one for a specific ProductOfferId with a non-null value. Otherwise, the subdivision does not serve any purpose.
Thanks,
Josh, AdWords API Team
On Friday, October 30, 2015 at 6:35:58 AM UTC-4, peter... wrote:
It looks like that we have the same problem.
We create a brand new AdGroup, then send the following request:
<soapenv:Body>
<operations>
<operator>ADD</operator>
<ns2:adGroupId>22340202143</ns2:adGroupId>
<ns2:criterion xsi:type="ns2:ProductPartition">
<ns2:id>-1</ns2:id>
<ns2:partitionType>SUBDIVISION</ns2:partitionType>
</ns2:criterion>
</operand>
</operations>
<operations>
<operator>ADD</operator>
<ns3:adGroupId>22340202143</ns3:adGroupId>
<ns3:criterion xsi:type="ns3:ProductPartition">
<ns3:partitionType>UNIT</ns3:partitionType>
<ns3:parentCriterionId>-1</ns3:parentCriterionId>
<ns3:caseValue xsi:type="ns3:ProductOfferId"/>
</ns3:criterion>
</operand>
</operations>
<operations>
<operator>ADD</operator>
<ns4:adGroupId>22340202263</ns4:adGroupId>
<ns4:criterion xsi:type="ns4:ProductPartition">
<ns4:id>-1</ns4:id>
<ns4:partitionType>SUBDIVISION</ns4:partitionType>
</ns4:criterion>
</operand>
</operations>
<operations>
<operator>ADD</operator>
<ns5:adGroupId>22340202263</ns5:adGroupId>
<ns5:criterion xsi:type="ns5:ProductPartition">
<ns5:partitionType>UNIT</ns5:partitionType>
<ns5:parentCriterionId>-1</ns5:parentCriterionId>
<ns5:caseValue xsi:type="ns5:ProductOfferId"/>
</ns5:criterion>
</operand>
</operations>
</mutate>
</soapenv:Body>
and
sporadically get back
<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>[AdGroupCriterionError.PRODUCT_PARTITION_ALREADY_EXISTS @ operations[2].operand.criterion, AdGroupCriterionError.PRODUCT_PARTITION_DOES_NOT_EXIST @ operations[3].operand.criterion.parentCriterionId; trigger:'TempCriterionId{id=1}']</faultstring>
<detail>
<message>[AdGroupCriterionError.PRODUCT_PARTITION_ALREADY_EXISTS @ operations[2].operand.criterion, AdGroupCriterionError.PRODUCT_PARTITION_DOES_NOT_EXIST @ operations[3].operand.criterion.parentCriterionId; trigger:'TempCriterionId{id=1}']</message>
<ApplicationException.Type>ApiException</ApplicationException.Type>
<fieldPath>operations[2].operand.criterion</fieldPath>
<trigger/>
<errorString>AdGroupCriterionError.PRODUCT_PARTITION_ALREADY_EXISTS</errorString>
<ApiError.Type>AdGroupCriterionError</ApiError.Type>
<reason>PRODUCT_PARTITION_ALREADY_EXISTS</reason>
</errors>
<fieldPath>operations[3].operand.criterion.parentCriterionId</fieldPath>
<trigger>TempCriterionId{id=1}</trigger>
<errorString>AdGroupCriterionError.PRODUCT_PARTITION_DOES_NOT_EXIST</errorString>
<ApiError.Type>AdGroupCriterionError</ApiError.Type>
<reason>PRODUCT_PARTITION_DOES_NOT_EXIST</reason>
</errors>
</ApiExceptionFault>
</detail>
</soap:Fault>
</soap:Body>
(request id of this particular response was 00052343fe9006900a0ddbd10203b361 - if this helps).
We also see this error when creating concrete product partitions with case values. It succeeds in 99% of all cases, but we sporadically get back this error. We've seen this only for product partitions so far. Our code is single-threaded.
Am Dienstag, 6. Oktober 2015 16:06:53 UTC+2 schrieb Anthony Madrigal:
Hi,
Since you are using the AdGroupCriterionService, do you mean AdGroup instead of campaign? Could you please send me both your SOAP request and response for the successful and failed operations through Reply privately to author? This will help me see why it is working for one and not the other.
Thanks,
Anthony
AdWords API Team
--
--
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and Google+:
https://googleadsdeveloper.blogspot.com/ https://plus.google.com/+GoogleAdsDevelopers/posts =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
You received this message because you are subscribed to the Google
Groups "AdWords API Forum" group.
To post to this group, send email to adwords-api@googlegroups.com
To unsubscribe from this group, send email to
adwords-api+unsubscribe@googlegroups.com
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 Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
adwords-api+unsubscribe@googlegroups.com.
Visit this group at
http://groups.google.com/group/adwords-api.
To view this discussion on the web visit
https://groups.google.com/d/msgid/adwords-api/410502d4-c9a0-4040-a1f9-18217ad0a0cd%40googlegroups.com.
For more options, visit
https://groups.google.com/d/optout.