HI,

I am very sorry for being so late. I am trying to create a campaign. I have 
used my test account credentials to get refresh token. I have used client 
id, secret and clientCustomerId of my test account but developer token 
belongs to my main account. Is there any thing wrong on my side?

I have attached the java file and the trace file.

On Thursday, November 21, 2013 4:10:53 PM UTC+5:30, Munish Kumar wrote:
>
> Hi, 
>
> I am using v2013 java api and its raising the exception given below. Any 
> suggestion will be appreciated. 
>
> {https://adwords.google.com/api/adwords/cm/v201309}ApiExceptionFault:<message>[OperationAccessDenied.ADD_OPERATION_NOT_PERMITTED
>  
> @ 
> operations[0]]</message><ApplicationException.Type>ApiException</ApplicationException.Type><errors
>  
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
> xsi:type="OperationAccessDenied"><fieldPath>operations[0]</fieldPath><trigger/><errorString>OperationAccessDenied.ADD_OPERATION_NOT_PERMITTED</errorString><ApiError.Type>OperationAccessDenied</ApiError.Type><reason>ADD_OPERATION_NOT_PERMITTED</reason></errors>
>
>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and discussion group:
http://googleadsdeveloper.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 [email protected]
To unsubscribe from this group, send email to
[email protected]
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 [email protected].
For more options, visit https://groups.google.com/groups/opt_out.
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further 
details.
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further 
details.
AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server
 faultSubcode: 
 faultString: [OperationAccessDenied.ADD_OPERATION_NOT_PERMITTED @ 
operations[0]]
 faultActor: 
 faultNode: 
 faultDetail: 
        
{https://adwords.google.com/api/adwords/cm/v201309}ApiExceptionFault:<message>[OperationAccessDenied.ADD_OPERATION_NOT_PERMITTED
 @ 
operations[0]]</message><ApplicationException.Type>ApiException</ApplicationException.Type><errors
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:type="OperationAccessDenied"><fieldPath>operations[0]</fieldPath><trigger/><errorString>OperationAccessDenied.ADD_OPERATION_NOT_PERMITTED</errorString><ApiError.Type>OperationAccessDenied</ApiError.Type><reason>ADD_OPERATION_NOT_PERMITTED</reason></errors>

[OperationAccessDenied.ADD_OPERATION_NOT_PERMITTED @ operations[0]]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
        at java.lang.Class.newInstance0(Class.java:374)
        at java.lang.Class.newInstance(Class.java:327)
        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.v201309.cm.ApiException.getDeserializer(ApiException.java:143)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        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(AbstractSAXParser.java:506)
        at 
com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:376)
        at 
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2717)
        at 
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607)
        at 
com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116)
        at 
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:489)
        at 
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835)
        at 
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
        at 
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
        at 
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210)
        at 
com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568)
        at 
com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:302)
        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.ads.adwords.axis.v201309.cm.CampaignServiceSoapBindingStub.mutate(CampaignServiceSoapBindingStub.java:1290)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at 
com.google.api.ads.common.lib.soap.SoapClientHandler.invoke(SoapClientHandler.java:109)
        at 
com.google.api.ads.common.lib.soap.axis.AxisHandler.invokeSoapCall(AxisHandler.java:175)
        at 
com.google.api.ads.common.lib.soap.SoapServiceClient.callSoapClient(SoapServiceClient.java:64)
        at 
com.google.api.ads.common.lib.soap.SoapServiceClient.invoke(SoapServiceClient.java:93)
        at com.sun.proxy.$Proxy73.mutate(Unknown Source)
        at com.applane.addwords.TestAccount.addCampaign(TestAccount.java:144)
        at com.applane.addwords.TestAccount.createCampaign(TestAccount.java:40)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at 
com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
        at 
com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:205)
        at 
com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
        at 
com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288)
        at 
com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
        at 
com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
        at 
com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
        at 
com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
        at 
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1469)
        at 
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1400)
        at 
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1349)
        at 
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1339)
        at 
com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
        at 
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537)
        at 
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:699)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
        at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
        at 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
        at 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
        at 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
        at 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:722)
package com.applane.addwords;


import com.google.api.ads.adwords.axis.factory.AdWordsServices;
import com.google.api.ads.adwords.axis.v201309.cm.*;
import com.google.api.ads.adwords.lib.client.AdWordsSession;
import com.google.api.ads.common.lib.auth.ClientLoginTokens;
import com.google.api.ads.common.lib.auth.OfflineCredentials;
import com.google.api.ads.common.lib.conf.ConfigurationLoadException;
import com.google.api.ads.common.lib.exception.OAuthException;
import com.google.api.ads.common.lib.exception.ValidationException;
import com.google.api.client.auth.oauth2.Credential;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
import java.io.IOException;
import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * User: munish
 * Date: 13/11/13
 * Time: 12:03 PM
 * To change this template use File | Settings | File Templates.
 */
@Path("/test")
public class TestAccount {

    @GET
    @Path("/create/campaign")
    public Response createCampaign(@Context javax.servlet.http.HttpServletRequest request) {
        try {
            AdWordsSession session = createAddwordSessionWithOAuth();
            AdWordsServices adWordsServices = new AdWordsServices();
            Campaign campaign = createCampaign(adWordsServices, session);
            CampaignReturnValue campaignReturnValue = addCampaign(adWordsServices, session, campaign);
            iterateCampaignReturnValue(campaignReturnValue);
            return Response.ok(200).entity("Campaign created successfully.").build();
        } catch (Throwable e) {
            e.printStackTrace();
            return Response.serverError().entity("Campaign could not be created. Please see the logs for more details.").build();
        }
    }

    private static String getClientLoginToken() throws ConfigurationLoadException, ValidationException, IOException {
        String clientLoginToken = new ClientLoginTokens.Builder()
                .forApi(ClientLoginTokens.Api.ADWORDS)
                .fromFile()
                .build()
                .requestToken();
        return clientLoginToken;
    }

    private static Credential getOAuthCredential() throws ConfigurationLoadException, ValidationException, OAuthException, IOException {
        Credential oAuth2Credential = new OfflineCredentials.Builder()
                .forApi(OfflineCredentials.Api.ADWORDS)
                .fromFile()
                .build()
                .generateCredential();
//        oAuth2Credential.refreshToken();
        return oAuth2Credential;
    }

    public static AdWordsSession createAddwordSessionWithClient() throws ConfigurationLoadException, IOException, ValidationException {
        AdWordsSession session = new AdWordsSession.Builder()
                .fromFile()
                .withClientLoginToken(getClientLoginToken())
                .build();
        return session;
    }

    public static AdWordsSession createAddwordSessionWithOAuth() throws ConfigurationLoadException, OAuthException, ValidationException, IOException {
        AdWordsSession session = new AdWordsSession.Builder()
                .fromFile()
                .withOAuth2Credential(getOAuthCredential())
                .build();
        return session;
    }

    public static Budget createBudget(AdWordsServices adWordsServices, AdWordsSession session) throws RemoteException {
        Budget sharedBudget = new Budget();
        sharedBudget.setName("Interplanetary Cruise #" + System.currentTimeMillis());
        Money budgetAmount = new Money();
        budgetAmount.setMicroAmount(50000000L);
        sharedBudget.setAmount(budgetAmount);
        sharedBudget.setDeliveryMethod(BudgetBudgetDeliveryMethod.STANDARD);
        sharedBudget.setPeriod(BudgetBudgetPeriod.DAILY);

        BudgetOperation budgetOperation = new BudgetOperation();
        budgetOperation.setOperand(sharedBudget);
        budgetOperation.setOperator(Operator.ADD);

        BudgetServiceInterface budgetService = adWordsServices.get(session, BudgetServiceInterface.class);
        Long budgetId = budgetService.mutate(new BudgetOperation[]{budgetOperation}).getValue(0).getBudgetId();

        Budget budget = new Budget();
        budget.setBudgetId(budgetId);
        return budget;
    }

    public static Campaign createCampaign(AdWordsServices adWordsServices, AdWordsSession session) throws RemoteException {
        BiddingStrategyConfiguration biddingStrategyConfiguration = new BiddingStrategyConfiguration();
        biddingStrategyConfiguration.setBiddingStrategyType(BiddingStrategyType.MANUAL_CPC);

        // You can optionally provide a bidding scheme in place of the type.
        ManualCpcBiddingScheme cpcBiddingScheme = new ManualCpcBiddingScheme();
        cpcBiddingScheme.setEnhancedCpcEnabled(false);
        biddingStrategyConfiguration.setBiddingScheme(cpcBiddingScheme);

        //options that are not required.
        GeoTargetTypeSetting geoTarget = new GeoTargetTypeSetting();
        geoTarget.setPositiveGeoTargetType(GeoTargetTypeSettingPositiveGeoTargetType.DONT_CARE);

        KeywordMatchSetting keywordMatch = new KeywordMatchSetting();
        keywordMatch.setOptIn(Boolean.FALSE);

        // Create campaign.
        Campaign campaign = new Campaign();
        campaign.setName("Interplanetary Cruise #" + System.currentTimeMillis());
        campaign.setStatus(CampaignStatus.PAUSED);
        campaign.setBiddingStrategyConfiguration(biddingStrategyConfiguration);
        campaign.setBudget(createBudget(adWordsServices, session));
        campaign.setNetworkSetting(getNetworkSetting());
        campaign.setSettings(new Setting[]{geoTarget, keywordMatch});
        // You can optionally provide these field(s).
        //campaign.setStartDate(new DateTime().plusDays(1).toString("yyyyMMdd"));
        //campaign.setStartDate(new DateTime().plusDays(30).toString("yyyyMMdd"));
        //campaign.setAdServingOptimizationStatus(AdServingOptimizationStatus.ROTATE);
        //campaign.setFrequencyCap(new FrequencyCap(5L, TimeUnit.DAY, Level.ADGROUP));
        return campaign;
    }

    public static CampaignReturnValue addCampaign(AdWordsServices adWordsServices, AdWordsSession session, Campaign campaign) throws ConfigurationLoadException, IOException, ValidationException {
        // Create operations.
        CampaignOperation operation = new CampaignOperation();
        operation.setOperand(campaign);
        operation.setOperator(Operator.ADD);
        CampaignOperation[] operations = new CampaignOperation[]{operation};
        CampaignServiceInterface campaignService = adWordsServices.get(session, CampaignServiceInterface.class);
        CampaignReturnValue result = campaignService.mutate(operations);
        return result;
    }

    public static void iterateCampaignReturnValue(CampaignReturnValue result) {
        // Display campaigns.
        for (Campaign campaignResult : result.getValue()) {
            System.out.println("Campaign with name \"" + campaignResult.getName() + "\" and id \"" + campaignResult.getId() + "\" was added.");
        }
    }

    private static NetworkSetting getNetworkSetting() {
        NetworkSetting networkSetting = new NetworkSetting();
        networkSetting.setTargetGoogleSearch(true);
        networkSetting.setTargetSearchNetwork(true);
        networkSetting.setTargetContentNetwork(false);
        networkSetting.setTargetPartnerSearchNetwork(false);
        return networkSetting;
    }

    public static void main(String[] args) throws ConfigurationLoadException, IOException, ValidationException, OAuthException {
        AdWordsSession session = createAddwordSessionWithOAuth();
        AdWordsServices adWordsServices = new AdWordsServices();
        Campaign campaign = createCampaign(adWordsServices, session);
        CampaignReturnValue campaignReturnValue = addCampaign(adWordsServices, session, campaign);
        iterateCampaignReturnValue(campaignReturnValue);
    }


}

Reply via email to