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.
>
> Also, in each case you are constructing what looks like an invalid 
> product partition tree 
> <https://developers.google.com/adwords/api/docs/guides/shopping#partitioning>,
>  
> consisting of:
>
>      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>
>>        <mutate xmlns="https://adwords.google.com/api/adwords/cm/v201506";>
>>             <operations>
>>                <operator>ADD</operator>
>>             <operand xmlns:ns2="
>> https://adwords.google.com/api/adwords/cm/v201506"; 
>> xsi:type="ns2:BiddableAdGroupCriterion">
>>                    <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>
>>             <operand xmlns:ns3="
>> https://adwords.google.com/api/adwords/cm/v201506"; 
>> xsi:type="ns3:NegativeAdGroupCriterion">
>>                    <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>
>>                 <operand xmlns:ns4="
>> https://adwords.google.com/api/adwords/cm/v201506"; 
>> xsi:type="ns4:BiddableAdGroupCriterion">
>>                    <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>
>>                 <operand xmlns:ns5="
>> https://adwords.google.com/api/adwords/cm/v201506"; 
>> xsi:type="ns5:NegativeAdGroupCriterion">
>>                    <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>
>>            <ApiExceptionFault xmlns="
>> https://adwords.google.com/api/adwords/cm/v201506";>
>>                     
>> <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>
>>                <errors xmlns:xsi="
>> http://www.w3.org/2001/XMLSchema-instance"; 
>> xsi:type="AdGroupCriterionError">
>>                    <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>
>>                <errors xmlns:xsi="
>> http://www.w3.org/2001/XMLSchema-instance"; 
>> xsi:type="AdGroupCriterionError">
>>                   
>>  <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+unsubscr...@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+unsubscr...@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/04e63b41-6121-48d9-a94e-829269749864%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to