Hello,
I am trying to the run the AddAdGroupBidModifier.java using my test account credentials as below; i have replaced the key credentials with xxxx
api.adwords.email=
sxxx...@gmail.comapi.adwords.password=xxxxxxxxxxx
api.adwords.clientCustomerId=5xx-xxx-xx63
# Optional, for cached AuthTokens.
#api.adwords.clientLoginToken=INSERT_AUTH_TOKEN_HERE
api.adwords.userAgent=SXXXXXXX
api.adwords.developerToken=Hxxxxxxxxxxxxxxxxxxxxw
api.adwords.isPartialFailure=false
api.adwords.returnMoneyInMicros=true
api.adwords.clientId=
447989528545.apps.googleusercontent.comapi.adwords.clientSecret=xxxxxxxxxxxxxx
api.adwords.refreshToken=xxxxxxxxxxxxxxxxxx
The code i am running is
public class AddAdGroupBidModifier {
private static final double BID_MODIFIER = 2.5;
public static void main(String[] args) throws Exception {
// Generate a refreshable OAuth2 credential similar to a ClientLogin token
// and can be used in place of a service account.
Credential oAuth2Credential = new OfflineCredentials.Builder()
.forApi(Api.ADWORDS)
.fromFile("C:\\Users\\devrajg\\workspace\\MovieDB\\web\\properties\\ads.properties")
.build()
.generateCredential();
// Construct an AdWordsSession.
AdWordsSession session = new AdWordsSession.Builder()
.fromFile("C:\\Users\\devrajg\\workspace\\MovieDB\\web\\properties\\ads.properties")
.withOAuth2Credential(oAuth2Credential)
.build();
//Long adGroupId = Long.valueOf("INSERT_ADGROUP_ID_HERE");
Long adGroupId = 17176964687L;
AdWordsServices adWordsServices = new AdWordsServices();
runExample(adWordsServices, session, adGroupId);
}
This did run once and i was able to modify the Bid for a AdGroup successfully (as seen by the print in code).
But when trying to run again i keep getting the below error; stack pasted
log4j:WARN No appenders could be found for logger (org.apache.commons.configuration.PropertiesConfiguration).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See
http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "main" AxisFault
faultCode: {
http://schemas.xmlsoap.org/soap/envelope/}Server faultSubcode:
faultString: [CriterionError.BID_MODIFIER_ALREADY_EXISTS @ operations[0].operand.criterion; trigger:'AdGroupId AdGroupId:
17176964687, CriterionId CriterionId{id=30001}']
faultActor:
faultNode:
faultDetail:
{
https://adwords.google.com/api/adwords/cm/v201409}ApiExceptionFault:<message>[CriterionError.BID_MODIFIER_ALREADY_EXISTS @ operations[0].operand.criterion; trigger:'AdGroupId AdGroupId:
17176964687, CriterionId CriterionId{id=30001}']</message><ApplicationException.Type>ApiException</ApplicationException.Type><errors xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance" xsi:type="CriterionError"><fieldPath>operations[0].operand.criterion</fieldPath><trigger>AdGroupId AdGroupId:
17176964687, CriterionId CriterionId{id=30001}</trigger><errorString>CriterionError.BID_MODIFIER_ALREADY_EXISTS</errorString><ApiError.Type>CriterionError</ApiError.Type><reason>BID_MODIFIER_ALREADY_EXISTS</reason></errors>
[CriterionError.BID_MODIFIER_ALREADY_EXISTS @ operations[0].operand.criterion; trigger:'AdGroupId AdGroupId:
17176964687, CriterionId CriterionId{id=30001}']
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at org.apache.axis.encoding.ser.BeanDeserializer.<init>(BeanDeserializer.java:104)
at org.apache.axis.encoding.ser.BeanDeserializer.<init>(BeanDeserializer.java:90)
at com.google.api.ads.adwords.axis.v201409.cm.ApiException.getDeserializer(ApiException.java:143)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.axis.encoding.ser.BaseDeserializerFactory.getSpecialized(BaseDeserializerFactory.java:154)
at org.apache.axis.encoding.ser.BaseDeserializerFactory.getDeserializerAs(BaseDeserializerFactory.java:84)
at org.apache.axis.encoding.DeserializationContext.getDeserializer(DeserializationContext.java:464)
at org.apache.axis.encoding.DeserializationContext.getDeserializerForType(DeserializationContext.java:547)
at org.apache.axis.message.SOAPFaultDetailsBuilder.onStartChild(SOAPFaultDetailsBuilder.java:157)
at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(Unknown Source)
at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:796)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at com.google.api.ads.adwords.axis.v201409.cm.AdGroupBidModifierServiceSoapBindingStub.mutate(AdGroupBidModifierServiceSoapBindingStub.java:739)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
Can some one please have a look at this?
Thanks,
-Devraj