Hi, For ads and keywords locking takes place at an ad group level. That is to say that you can't ADD/SET/REMOVE entities in the same ad group at the same time. It is recommended to catch these errors and retry your request, but you may also want to segment your updates so that different threads will not operate against the same ad group.
Best, - Eric Koleda, AdWords API Team On Feb 11, 9:42 am, Magnus <magnus.lj...@gmail.com> wrote: > Hi, > > When we have to upload changes to a campaign using the 200909 API we > upload both ad and keywords changes at the same time using two > threads. Sometimes we get a DatabaseError.CONCURRENT_MODIFICATION > back. So my question is what concurrent modifications are allowed? Do > we have to deal with one campaign at a time or one account or > something else? > > Here are the SOAP request and response that caused the error: > > <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w > 3.org/2001/XMLSchema-instance"><soapenv:Header><ns1:RequestHeader > soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" > soapenv:mustUnderstand="0" xmlns:ns1="https://adwords.google.com/api/ > adwords/cm/v200909"><ns1:applicationToken>TwAbF7xAay84 > ntBUiLrIaw</ns1:applicationToken><ns1:authToken xmlns:ns1="https:// > adwords.google.com/api/adwords/cm/v200909">******</ > ns1:authToken><ns1:clientCustomerId>9940465121</ > ns1:clientCustomerId><ns1:developerToken>p2yMk6iT8bAMXbyt3cCuOQ</ > ns1:developerToke > n><ns1:userAgent>AdWords API Java Client Library - v6.4.0 - Keybroker > Campaign Control 1.0</ns1:userAgent><ns1:validateOnly>false</ > ns1:validateOnly></ns1:RequestHeader></ > soapenv:Header><soapenv:Body><mutate xmlns="https://adwords.google.com/ > api/adw > ords/cm/v200909"><operations><operator>REMOVE</operator><ns2:operand > xsi:type="ns2:BiddableAdGroupCriterion" xmlns:ns2="https:// > adwords.google.com/api/adwords/cm/v200909"><ns2:adGroupId>1569734428</ > ns2:adGroupId><ns2:criterion xsi:type="ns2:Keyword > "><ns2:id>16137165568</ns2:id><ns2:text>Bahsybdf</ > ns2:text><ns2:matchType>BROAD</ns2:matchType></ > ns2:criterion><ns2:userStatus>DELETED</ns2:userStatus><ns2:bids > xsi:type="ns2:ManualCPMAdGroupCriterionBids"><ns2:maxCpm><ns2:amount><ns2:m > icroAmount>0 > </ns2:microAmount></ns2:amount></ns2:maxCpm></ns2:bids></ns2:operand></ > operations><operations><operator>REMOVE</operator><ns3:operand > xsi:type="ns3:BiddableAdGroupCriterion" xmlns:ns3="https:// > adwords.google.com/api/adwords/cm/v200909"><ns3:adGroup > Id>1569734428</ns3:adGroupId><ns3:criterion > xsi:type="ns3:Keyword"><ns3:id>16137165658</ns3:id><ns3:text>Kalsimf</ > ns3:text><ns3:matchType>BROAD</ns3:matchType></ > ns3:criterion><ns3:userStatus>DELETED</ns3:userStatus><ns3:bids > xsi:type="ns3:ManualCPM > AdGroupCriterionBids"><ns3:maxCpm><ns3:amount><ns3:microAmount>0</ > ns3:microAmount></ns3:amount></ns3:maxCpm></ns3:bids></ns3:operand></ > operations><operations><operator>REMOVE</operator><ns4:operand > xsi:type="ns4:BiddableAdGroupCriterion" xmlns:ns4= > "https://adwords.google.com/api/adwords/cm/ > v200909"><ns4:adGroupId>1569734428</ns4:adGroupId><ns4:criterion > xsi:type="ns4:Keyword"><ns4:id>16137165388</ns4:id><ns4:text>Nalsinff</ > ns4:text><ns4:matchType>BROAD</ns4:matchType></ns4:criterion><ns4:use > rStatus>DELETED</ns4:userStatus><ns4:bids > xsi:type="ns4:ManualCPMAdGroupCriterionBids"><ns4:maxCpm><ns4:amount><ns4:m > icroAmount>0</ > ns4:microAmount></ns4:amount></ns4:maxCpm></ns4:bids></ns4:operand></ > operations><operations><operator>ADD</operator>< > ns5:operand xsi:type="ns5:BiddableAdGroupCriterion" xmlns:ns5="https:// > adwords.google.com/api/adwords/cm/v200909"><ns5:adGroupId>1569739198</ > ns5:adGroupId><ns5:criterion > xsi:type="ns5:Keyword"><ns5:text>Bahsybdf</ > ns5:text><ns5:matchType>BROAD</ns5: > matchType></ns5:criterion><ns5:userStatus>ACTIVE</ > ns5:userStatus><ns5:bids > xsi:type="ns5:ManualCPCAdGroupCriterionBids"><ns5:maxCpc><ns5:amount><ns5:m > icroAmount>20000000</ > ns5:microAmount></ns5:amount></ns5:maxCpc></ns5:bids></ns5:operand></ > operations><operations><operator>ADD</operator><ns6:operand > xsi:type="ns6:BiddableAdGroupCriterion" xmlns:ns6="https:// > adwords.google.com/api/adwords/cm/v200909"><ns6:adGroupId>1569739198</ > ns6:adGroupId><ns6:criterion xsi:type="ns6:Keyword"><ns6:text>Kalsi > mf</ns6:text><ns6:matchType>BROAD</ns6:matchType></ > ns6:criterion><ns6:userStatus>ACTIVE</ns6:userStatus><ns6:bids > xsi:type="ns6:ManualCPCAdGroupCriterionBids"><ns6:maxCpc><ns6:amount><ns6:m > icroAmount>20000000</ > ns6:microAmount></ns6:amount></ns6:max > Cpc></ns6:bids></ns6:operand></operations><operations><operator>ADD</ > operator><ns7:operand xsi:type="ns7:BiddableAdGroupCriterion" > xmlns:ns7="https://adwords.google.com/api/adwords/cm/ > v200909"><ns7:adGroupId>1569739198</ns7:adGroupId><ns7:criterion > xsi:type="ns7:Keyword"><ns7:text>Nalsinff</ > ns7:text><ns7:matchType>BROAD</ns7:matchType></ > ns7:criterion><ns7:userStatus>ACTIVE</ns7:userStatus><ns7:bids > xsi:type="ns7:ManualCPCAdGroupCriterionBids"><ns7:maxCpc><ns7:amount><ns7:m > icroAmount>20000000 > </ns7:microAmount></ns7:amount></ns7:maxCpc></ns7:bids></ns7:operand></ > operations></mutate></soapenv:Body></soapenv:Envelope> > > <?xml version="1.0" encoding="UTF-8"?><soap:Envelope > xmlns:soap="http://schemas.xmlsoap.org/soap/ > envelope/"><soap:Header><ResponseHeader xmlns="https:// > adwords.google.com/api/adwords > /cm/v200909"><requestId>ff5dc623d3ee16a0280d99feadfe000c</ > requestId><operations>0</operations><responseTime>2056</ > responseTime><units>1</units></ResponseHeader></ > soap:Header><soap:Body><soap:Fault><faultcode>soap:Server</ > faultcode><faultstring>DatabaseError.CONCURRENT_MODIFICATION @ </ > faultstring><detail><ApiExceptionFault xmlns="https:// > adwords.google.com/api/adwords/cm/ > v200909"><message>DatabaseError.CONCURRENT_MODIFICATION @ </ > message><ApplicationException.Type>ApiException</ > ApplicationException.Type><errors xsi:type="DatabaseError" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><fieldPath/><trigger/><ApiError.Type>DatabaseError</ > > ApiError.Type><reason>CONCURRENT_MODIFICATION</reason></errors></ > ApiExceptionFault></detail></soap:Fault></soap:Body></soap:Envelope> -- 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-...@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.