I am implementing in Java - Method for updating a campaign - AdWordsServiceLogger.log();
// Get AdWordsUser from "~/adwords.properties". AdWordsUser user = new AdWordsUser(); // Get the CampaignService. CampaignServiceInterface campaignService = user.getService(AdWordsService.V201302.CAMPAIGN_SERVICE); BudgetServiceInterface budgetService = user.getService(AdWordsService.V201302.BUDGET_SERVICE); long campaignId = Long.parseLong(pMachineID); // Create campaign with updated budget. Campaign campaign = new Campaign(); campaign.setId(campaignId); campaign.setName(pMachineName); boolean biddingChanged = false; if (null != pMachineBiddingStrategy && null != pOldMachineBiddingStrategy) { if (!pMachineBiddingStrategy.equals(pOldMachineBiddingStrategy)) { biddingChanged = true; } } AdServingOptimizationStatus optimStatus = null; // set optimization status if (null != pMachineOptimizationStatus) { if (pMachineOptimizationStatus.equals("OPTIMIZE")) { optimStatus = AdServingOptimizationStatus.OPTIMIZE; } if (pMachineOptimizationStatus.equals("CONVERSION_OPTIMIZE")) { optimStatus = AdServingOptimizationStatus.CONVERSION_OPTIMIZE; } if (pMachineOptimizationStatus.equals("ROTATE")) { optimStatus = AdServingOptimizationStatus.ROTATE; } campaign.setAdServingOptimizationStatus(optimStatus); } // Create the bids. BiddingStrategyConfiguration biddingConfig = new BiddingStrategyConfiguration(); if (null != pMachineBiddingStrategy) { if (pMachineBiddingStrategy.equals("ManualCPC")) { ManualCpcBiddingScheme manualCpc = new ManualCpcBiddingScheme(); manualCpc.setEnhancedCpcEnabled(false); biddingConfig.setBiddingScheme(manualCpc); } if (pMachineBiddingStrategy.equals("ManualCPM")) { ManualCpmBiddingScheme manualCpm = new ManualCpmBiddingScheme(); biddingConfig.setBiddingScheme(manualCpm); } if (pMachineBiddingStrategy.equals("BudgetOptimizer")) { BudgetOptimizerBiddingScheme budgetOptimizer = new BudgetOptimizerBiddingScheme(); biddingConfig.setBiddingScheme(budgetOptimizer); } if (pMachineBiddingStrategy.equals("PercentCPA")) { PercentCpaBiddingScheme percentCPA = new PercentCpaBiddingScheme(); biddingConfig.setBiddingScheme(percentCPA); } if (pMachineBiddingStrategy.equals("ConversionOptimizer")) { ConversionOptimizerBiddingScheme conversionOptimizer = new ConversionOptimizerBiddingScheme(); biddingConfig.setBiddingScheme(conversionOptimizer); } } campaign.setBiddingStrategyConfiguration(biddingConfig); if (null != pStatus && pStatus.equals("ACTIVE")) { campaign.setStatus(CampaignStatus.ACTIVE); } if (null != pStatus && pStatus.equals("PAUSED")) { campaign.setStatus(CampaignStatus.PAUSED); } // Create budget. Budget budget = new Budget(); Money m = new Money(); m.setMicroAmount(new Long(1000000 * pAmount)); budget.setAmount(m); budget.setName("campaign_before"+campaignId+"-budget"+new Date().getTime()); if (null != pDeliveryMethod && pDeliveryMethod.equals("ACCELERATED")) { budget.setDeliveryMethod(BudgetBudgetDeliveryMethod.ACCELERATED); } if (null != pDeliveryMethod && pDeliveryMethod.equals("STANDARD")) { budget.setDeliveryMethod(BudgetBudgetDeliveryMethod.STANDARD); } budget.setPeriod(BudgetBudgetPeriod.DAILY); BudgetOperation budgetOperation = new BudgetOperation(); budgetOperation.setOperand(budget); budgetOperation.setOperator(Operator.ADD); // Add the budgetLong long budgetId = budgetService.mutate(new BudgetOperation[] {budgetOperation}).getValue(0).getBudgetId(); // Only the budgetId should be sent. Budget newbudget = new Budget(); newbudget.setBudgetId(budgetId); newbudget.setName("campaign_after"+campaignId+"-budget"+new Date().getTime()); campaign.setBudget(newbudget); // Set the campaign network options to Search and Search Network. NetworkSetting networkSetting = new NetworkSetting(); // networkSetting.setTargetContentContextual(pTargetContentContextual); networkSetting.setTargetGoogleSearch(pTargetGoogleSearch); networkSetting.setTargetSearchNetwork(pTargetSearchNetwork); networkSetting.setTargetContentNetwork(pTargetContentNetwork); networkSetting.setTargetPartnerSearchNetwork(pTargetPartnerSearchNetwork); campaign.setNetworkSetting(networkSetting); // Create operations. CampaignOperation operation = new CampaignOperation(); operation.setOperand(campaign); operation.setOperator(Operator.SET); CampaignOperation[] operations = new CampaignOperation[] {operation}; // Update campaign. CampaignReturnValue result = campaignService.mutate(operations); When just trying to update the name and budget of the campaign I get the exception - AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server faultSubcode: faultString: [InternalApiError.UNEXPECTED_INTERNAL_API_ERROR @ com.google.ads.api.services.common.error.InternalApiError.<init>(InternalApiErro] faultActor: faultNode: faultDetail: {https://adwords.google.com/api/adwords/cm/v201302}ApiExceptionFault:<message>[InternalApiError.UNEXPECTED_INTERNAL_API_ERROR @ com.google.ads.api.services.common.error.InternalApiError.<init>(InternalApiErro]</message><ApplicationException.Type>ApiException</ApplicationException.Type><errors xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="InternalApiError"><fieldPath/><trigger/><errorString>InternalApiError.UNEXPECTED_INTERNAL_API_ERROR</errorString><ApiError.Type>InternalApiError</ApiError.Type><reason>UNEXPECTED_INTERNAL_API_ERROR</reason></errors> [InternalApiError.UNEXPECTED_INTERNAL_API_ERROR @ com.google.ads.api.services.common.error.InternalApiError.<init>(InternalApiErro] 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.adwords.v201302.cm.ApiException.getDeserializer(ApiException.java:142) 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 javax.xml.parsers.SAXParser.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.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62) at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206) 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.adwords.v201302.cm.CampaignServiceSoapBindingStub.mutate(CampaignServiceSoapBindingStub.java:1290) at handlers.MachineHandler.updateMachine(MachineHandler.java:493) at SaveMachine.doPrivateExecute(SaveMachine.java:73) at BaseServlet.doPost(BaseServlet.java:61) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Unknown Source) Thanks. On Monday, April 15, 2013 6:35:22 PM UTC+2, assaf wrote: > Hi, > > After the upgrade I get an error - [BudgetError.CANNOT_EDIT_SHARED_BUDGET > @ operations[0].operand.budget.amount] > > From what I read I see I mustn't use the CampaignService for the update of > the daily budget. > Should I be using this by updating the CampaignStats with the > CampaignSharedSetService? > > Where can I find Java code examples for this? > > Thanks. > -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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. For more options, visit https://groups.google.com/groups/opt_out.