Re: NOT_ADS_USER error with OfflineConversionFeedService
Hi Radley, If you are still experiencing this issue, can you please create a new thread so that we can help you out? 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 https://groups.google.com/group/adwords-api. To view this discussion on the web visit https://groups.google.com/d/msgid/adwords-api/0cbd0e7d-0899-4257-87da-a3ccefb78c66%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: NOT_ADS_USER error with OfflineConversionFeedService
How do you determine who is the right person. I am also getting this error and I cannot solve the issue. I have used my refresh token in the sample C# application and was able to pass authentication. Is it because this request needs an access token and not a refresh token?? Can we use refresh tokens instead of access tokens here?? On Monday, January 13, 2014 at 12:51:07 PM UTC-8, Ray Tsang (AdWords API Team) wrote: > > Michel, > > It looks like you are using the AdWords API Java client library. In your > ads.properties, you should have configured the client ID, client secret, > and I assume you also have a refresh token configured. > > The AuthenticationError.NOT_ADS_USER indicates that the logged user > doesn't have access to any AdWords account. > > The refresh token must belong to a user that has access the the AdWords > account. I'm suspecting that the refresh token may be for a different > user. When granting the authorization - please make sure the right user > was logged in. > > Thanks, > > -- > Ray Tsang (AdWords API Advisor) > > On Tuesday, January 7, 2014 10:01:07 PM UTC-5, Michel Tricot wrote: >> >> Hi, >> >> We recently worked on integrating the OfflineConversionFeedService API in >> our system. >> >> We have the authentication mechanism working and we have been able to >> upload a conversion sample to a real account that we used for test. >> >> Two weeks ago we tried to upload real conversions on behalf of our >> customer. This customer gave us permissions to upload conversions on their >> account thru the OAuth authentication. >> >> Here is a test code that we use to verify that the configuration should >> work: >> >> String clientId = "[truncated]"; >> String clientSecret = "[truncated]"; >> String developerToken = "[truncated]"; >> >> Credential oauthCredentials = new OfflineCredentials.Builder() >> .forApi(OfflineCredentials.Api.ADWORDS) >> .withClientSecrets(clientId, clientSecret) >> .withRefreshToken("[truncated]") // our customer refresh token >> .build().generateCredential(); >> >> AdWordsSession session = new AdWordsSession.Builder() >> .withOAuth2Credential(oauthCredentials) >> .withDeveloperToken(developerToken) >> .withClientCustomerId("[truncated]") // our customer client >> customer id >> .withUserAgent("[truncated]") >> .build(); >> >> AdWordsServices adWordsServices = new AdWordsServices(); >> >> String gclid = "[truncated]"; // google click id that we got from the >> click >> >> String conversionName = "[truncated]"; // our customer conversion name >> String conversionTime = getTimestampForApi(System.currentTimeMillis()); >> Double conversionValue = 2.0; >> >> OfflineConversionFeedServiceInterface offlineConversionFeedService = >> adWordsServices.get(session, OfflineConversionFeedServiceInterface.class); >> >> OfflineConversionFeed feed = new OfflineConversionFeed(); >> feed.setGoogleClickId(gclid); >> feed.setConversionName(conversionName); >> feed.setConversionTime(conversionTime); >> feed.setConversionValue(conversionValue); >> >> OfflineConversionFeedOperation offlineConversionOperation = new >> OfflineConversionFeedOperation(); >> offlineConversionOperation.setOperator(Operator.ADD); >> offlineConversionOperation.setOperand(feed); >> >> OfflineConversionFeedReturnValue offlineConversionReturnValue = >> offlineConversionFeedService >> .mutate(new >> OfflineConversionFeedOperation[]{offlineConversionOperation}); >> >> >> We validated with one of Google's employee that this code is working when >> we ran tests on the account he gave us. >> >> For our production customer we keep getting the following error: >> >> >> http://schemas.xmlsoap.org/soap/envelope/; xmlns:xsd=" >> http://www.w3.org/2001/XMLSchema; xmlns:xsi=" >> http://www.w3.org/2001/XMLSchema-instance;> >> >> https://adwords.google.com/api/adwords/cm/v201309; >> soapenv:mustUnderstand="0"> >> [truncated] >> [truncated] >> [truncated] (AwApi-Java, AdWords-Axis/1.20.0, >> Common-Java/1.20.0, Axis/1.4, Java/1.6.0_65, maven) >> false >> false >> >> >> >> https://adwords.google.com/api/adwords/cm/v201309 >> "> >> >> ADD >> >> [truncated] >> [truncated] >> 20140107 184907 >> 2.0 >> >> >> >> >> >> >> 14/01/07 18:49:09 WARN AdWordsServiceClient.soapXmlLogger: SOAP Response: >> >> http://schemas.xmlsoap.org/soap/envelope/;> >> >> https://adwords.google.com/api/adwords/cm/v201309;> >> [truncated] >> OfflineConversionFeedService >> mutate >> 0 >> 57 >> >> >> >> >> soap:Server >>
Re: NOT_ADS_USER error with OfflineConversionFeedService
Parameters: String clientId = 947836558679-0ghhskmsvo10s23akfdioap794grc5ub.apps.googleusercontent.com; String clientSecret = [truncated]; String developperToken = [truncated]; String refreshToken = [truncated]; String clientCustomerId = 348-017-6023; String gclid = CPDZ6fiv_rsCFeJF7AodgVEAqw; String conversionName = Offline Conversions 9/27; and here is the exception: ?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.w3.org/2001/XMLSchema-instance; soapenv:Header ns1:RequestHeader xmlns:ns1= https://adwords.google.com/api/adwords/cm/v201309; soapenv:mustUnderstand=0 ns1:clientCustomerId348-017-6023/ns1:clientCustomerId ns1:developerToken[truncated]/ns1:developerToken ns1:userAgentLiveramp Attribution Uploader test (AwApi-Java, AdWords-Axis/1.20.0, Common-Java/1.20.0, Axis/1.4, Java/1.6.0_65, maven)/ns1:userAgent ns1:validateOnlyfalse/ns1:validateOnly ns1:partialFailurefalse/ns1:partialFailure /ns1:RequestHeader /soapenv:Header soapenv:Body mutate xmlns=https://adwords.google.com/api/adwords/cm/v201309; operations operatorADD/operator operand googleClickIdCPDZ6fiv_rsCFeJF7AodgVEAqw/googleClickId conversionNameOffline Conversions 9/27/conversionName conversionTime20140120 143927/conversionTime conversionValue2.0/conversionValue /operand /operations /mutate /soapenv:Body /soapenv:Envelope 14/01/20 14:39:30 WARN AdWordsServiceClient.soapXmlLogger: SOAP Response: ?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/v201309; requestId0004f06e90a634b80a42e5092cdc/requestId serviceNameOfflineConversionFeedService/serviceName methodNamemutate/methodName operations0/operations responseTime45/responseTime /ResponseHeader /soap:Header soap:Body soap:Fault faultcodesoap:Server/faultcode faultstring[AuthorizationError.USER_PERMISSION_DENIED @ ; trigger:'lt;nullgt;']/faultstring detail ApiExceptionFault xmlns= https://adwords.google.com/api/adwords/cm/v201309; message*[AuthorizationError.USER_PERMISSION_DENIED @ ; trigger:'lt;nullgt;']*/message ApplicationException.TypeApiException/ApplicationException.Type errors xmlns:xsi= http://www.w3.org/2001/XMLSchema-instance; xsi:type=AuthorizationError fieldPath/ triggerlt;nullgt;/trigger errorStringAuthorizationError.USER_PERMISSION_DENIED/errorString ApiError.TypeAuthorizationError/ApiError.Type reasonUSER_PERMISSION_DENIED/reason /errors /ApiExceptionFault /detail /soap:Fault /soap:Body /soap:Envelope Exception in thread main AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server faultSubcode: faultString: [AuthorizationError.USER_PERMISSION_DENIED @ ; trigger:'lt;nullgt;'] faultActor: faultNode: faultDetail: {https://adwords.google.com/api/adwords/cm/v201309}ApiExceptionFault:message[AuthorizationError.USER_PERMISSION_DENIED @ ; trigger:'lt;nullgt;']/messageApplicationException.TypeApiException/ApplicationException.Typeerrors xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xsi:type=AuthorizationErrorfieldPath/triggerlt;nullgt;/triggererrorStringAuthorizationError.USER_PERMISSION_DENIED/errorStringApiError.TypeAuthorizationError/ApiError.TypereasonUSER_PERMISSION_DENIED/reason/errors On Monday, January 13, 2014 12:51:07 PM UTC-8, Ray Tsang (AdWords API Team) wrote: Michel, It looks like you are using the AdWords API Java client library. In your ads.properties, you should have configured the client ID, client secret, and I assume you also have a refresh token configured. The AuthenticationError.NOT_ADS_USER indicates that the logged user doesn't have access to any AdWords account. The refresh token must belong to a user that has access the the AdWords account. I'm suspecting that the refresh token may be for a different user. When granting the authorization - please make sure the right user was logged in. Thanks, -- Ray Tsang (AdWords API Advisor) On Tuesday, January 7, 2014 10:01:07 PM UTC-5, Michel Tricot wrote: Hi, We recently worked on integrating the OfflineConversionFeedService API in our system. We have the authentication mechanism working and we have been
Re: NOT_ADS_USER error with OfflineConversionFeedService
To add some more details here, we received the required tokens from the client through our auth process, but we are still getting a USER_PERMISSION_DENIED. We thought the authentication process would take care of that, but perhaps we are missing something here. On Wed, Jan 22, 2014 at 8:25 AM, Julian Bouma jul...@liveramp.com wrote: Parameters: String clientId = 947836558679-0ghhskmsvo10s23akfdioap794grc5 ub.apps.googleusercontent.com; String clientSecret = [truncated]; String developperToken = [truncated]; String refreshToken = [truncated]; String clientCustomerId = 348-017-6023; String gclid = CPDZ6fiv_rsCFeJF7AodgVEAqw; String conversionName = Offline Conversions 9/27; and here is the exception: ?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.w3.org/ 2001/XMLSchema-instance soapenv:Header ns1:RequestHeader xmlns:ns1=https://adwords. google.com/api/adwords/cm/v201309 soapenv:mustUnderstand=0 ns1:clientCustomerId348-017-6023/ns1:clientCustomerId ns1:developerToken[truncated]/ns1:developerToken ns1:userAgentLiveramp Attribution Uploader test (AwApi-Java, AdWords-Axis/1.20.0, Common-Java/1.20.0, Axis/1.4, Java/1.6.0_65, maven)/ns1:userAgent ns1:validateOnlyfalse/ns1:validateOnly ns1:partialFailurefalse/ns1:partialFailure /ns1:RequestHeader /soapenv:Header soapenv:Body mutate xmlns=https://adwords.google.com/api/adwords/cm/v201309; operations operatorADD/operator operand googleClickIdCPDZ6fiv_rsCFeJF7AodgVEAqw/ googleClickId conversionNameOffline Conversions 9/27/conversionName conversionTime20140120 143927/conversionTime conversionValue2.0/conversionValue /operand /operations /mutate /soapenv:Body /soapenv:Envelope 14/01/20 14:39:30 WARN AdWordsServiceClient.soapXmlLogger: SOAP Response: ?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/v201309 requestId0004f06e90a634b80a42e5092cdc/requestId serviceNameOfflineConversionFeedService/serviceName methodNamemutate/methodName operations0/operations responseTime45/responseTime /ResponseHeader /soap:Header soap:Body soap:Fault faultcodesoap:Server/faultcode faultstring[AuthorizationError.USER_PERMISSION_DENIED @ ; trigger:'lt;nullgt;']/faultstring detail ApiExceptionFault xmlns=https://adwords.google. com/api/adwords/cm/v201309 message*[AuthorizationError.USER_PERMISSION_DENIED @ ; trigger:'lt;nullgt;']*/message ApplicationException.TypeApiException/ ApplicationException.Type errors xmlns:xsi=http://www.w3.org/ 2001/XMLSchema-instance xsi:type=AuthorizationError fieldPath/ triggerlt;nullgt;/trigger errorStringAuthorizationError.USER_ PERMISSION_DENIED/errorString ApiError.TypeAuthorizationError/ApiError.Type reasonUSER_PERMISSION_DENIED/reason /errors /ApiExceptionFault /detail /soap:Fault /soap:Body /soap:Envelope Exception in thread main AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server faultSubcode: faultString: [AuthorizationError.USER_PERMISSION_DENIED @ ; trigger:'lt;nullgt;'] faultActor: faultNode: faultDetail: {https://adwords.google.com/api/adwords/cm/v201309}ApiExceptionFault :message[AuthorizationError.USER_PERMISSION_DENIED @ ; trigger:'lt;nullgt;']/messageApplicationException.TypeApiException/ ApplicationException.Typeerrors xmlns:xsi=http://www.w3.org/ 2001/XMLSchema-instance xsi:type=AuthorizationError fieldPath/triggerlt;nullgt;/triggererrorString AuthorizationError.USER_PERMISSION_DENIED/errorStringApiError.Type AuthorizationError/ApiError.TypereasonUSER_PERMISSION_D ENIED/reason/errors On Monday, January 13, 2014 12:51:07 PM UTC-8, Ray Tsang (AdWords API Team) wrote: Michel, It looks like you are using the AdWords API Java client library. In your ads.properties, you should have configured the client ID, client secret, and I assume you also have a refresh token configured. The AuthenticationError.NOT_ADS_USER indicates that the logged user doesn't have access to any AdWords account. The refresh token must belong to a user that has access the the AdWords account. I'm
Re: NOT_ADS_USER error with OfflineConversionFeedService
Michel, It looks like you are using the AdWords API Java client library. In your ads.properties, you should have configured the client ID, client secret, and I assume you also have a refresh token configured. The AuthenticationError.NOT_ADS_USER indicates that the logged user doesn't have access to any AdWords account. The refresh token must belong to a user that has access the the AdWords account. I'm suspecting that the refresh token may be for a different user. When granting the authorization - please make sure the right user was logged in. Thanks, -- Ray Tsang (AdWords API Advisor) On Tuesday, January 7, 2014 10:01:07 PM UTC-5, Michel Tricot wrote: Hi, We recently worked on integrating the OfflineConversionFeedService API in our system. We have the authentication mechanism working and we have been able to upload a conversion sample to a real account that we used for test. Two weeks ago we tried to upload real conversions on behalf of our customer. This customer gave us permissions to upload conversions on their account thru the OAuth authentication. Here is a test code that we use to verify that the configuration should work: String clientId = [truncated]; String clientSecret = [truncated]; String developerToken = [truncated]; Credential oauthCredentials = new OfflineCredentials.Builder() .forApi(OfflineCredentials.Api.ADWORDS) .withClientSecrets(clientId, clientSecret) .withRefreshToken([truncated]) // our customer refresh token .build().generateCredential(); AdWordsSession session = new AdWordsSession.Builder() .withOAuth2Credential(oauthCredentials) .withDeveloperToken(developerToken) .withClientCustomerId([truncated]) // our customer client customer id .withUserAgent([truncated]) .build(); AdWordsServices adWordsServices = new AdWordsServices(); String gclid = [truncated]; // google click id that we got from the click String conversionName = [truncated]; // our customer conversion name String conversionTime = getTimestampForApi(System.currentTimeMillis()); Double conversionValue = 2.0; OfflineConversionFeedServiceInterface offlineConversionFeedService = adWordsServices.get(session, OfflineConversionFeedServiceInterface.class); OfflineConversionFeed feed = new OfflineConversionFeed(); feed.setGoogleClickId(gclid); feed.setConversionName(conversionName); feed.setConversionTime(conversionTime); feed.setConversionValue(conversionValue); OfflineConversionFeedOperation offlineConversionOperation = new OfflineConversionFeedOperation(); offlineConversionOperation.setOperator(Operator.ADD); offlineConversionOperation.setOperand(feed); OfflineConversionFeedReturnValue offlineConversionReturnValue = offlineConversionFeedService .mutate(new OfflineConversionFeedOperation[]{offlineConversionOperation}); We validated with one of Google's employee that this code is working when we ran tests on the account he gave us. For our production customer we keep getting the following 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.w3.org/2001/XMLSchema-instance; soapenv:Header ns1:RequestHeader xmlns:ns1= https://adwords.google.com/api/adwords/cm/v201309; soapenv:mustUnderstand=0 ns1:clientCustomerId[truncated]/ns1:clientCustomerId ns1:developerToken[truncated]/ns1:developerToken ns1:userAgent[truncated] (AwApi-Java, AdWords-Axis/1.20.0, Common-Java/1.20.0, Axis/1.4, Java/1.6.0_65, maven)/ns1:userAgent ns1:validateOnlyfalse/ns1:validateOnly ns1:partialFailurefalse/ns1:partialFailure /ns1:RequestHeader /soapenv:Header soapenv:Body mutate xmlns=https://adwords.google.com/api/adwords/cm/v201309; operations operatorADD/operator operand googleClickId[truncated]/googleClickId conversionName[truncated]/conversionName conversionTime20140107 184907/conversionTime conversionValue2.0/conversionValue /operand /operations /mutate /soapenv:Body /soapenv:Envelope 14/01/07 18:49:09 WARN AdWordsServiceClient.soapXmlLogger: SOAP Response: ?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/v201309; requestId[truncated]/requestId serviceNameOfflineConversionFeedService/serviceName methodNamemutate/methodName operations0/operations responseTime57/responseTime /ResponseHeader /soap:Header soap:Body
NOT_ADS_USER error with OfflineConversionFeedService
Hi, We recently worked on integrating the OfflineConversionFeedService API in our system. We have the authentication mechanism working and we have been able to upload a conversion sample to a real account that we used for test. Two weeks ago we tried to upload real conversions on behalf of our customer. This customer gave us permissions to upload conversions on their account thru the OAuth authentication. Here is a test code that we use to verify that the configuration should work: String clientId = [truncated]; String clientSecret = [truncated]; String developerToken = [truncated]; Credential oauthCredentials = new OfflineCredentials.Builder() .forApi(OfflineCredentials.Api.ADWORDS) .withClientSecrets(clientId, clientSecret) .withRefreshToken([truncated]) // our customer refresh token .build().generateCredential(); AdWordsSession session = new AdWordsSession.Builder() .withOAuth2Credential(oauthCredentials) .withDeveloperToken(developerToken) .withClientCustomerId([truncated]) // our customer client customer id .withUserAgent([truncated]) .build(); AdWordsServices adWordsServices = new AdWordsServices(); String gclid = [truncated]; // google click id that we got from the click String conversionName = [truncated]; // our customer conversion name String conversionTime = getTimestampForApi(System.currentTimeMillis()); Double conversionValue = 2.0; OfflineConversionFeedServiceInterface offlineConversionFeedService = adWordsServices.get(session, OfflineConversionFeedServiceInterface.class); OfflineConversionFeed feed = new OfflineConversionFeed(); feed.setGoogleClickId(gclid); feed.setConversionName(conversionName); feed.setConversionTime(conversionTime); feed.setConversionValue(conversionValue); OfflineConversionFeedOperation offlineConversionOperation = new OfflineConversionFeedOperation(); offlineConversionOperation.setOperator(Operator.ADD); offlineConversionOperation.setOperand(feed); OfflineConversionFeedReturnValue offlineConversionReturnValue = offlineConversionFeedService .mutate(new OfflineConversionFeedOperation[]{offlineConversionOperation}); We validated with one of Google's employee that this code is working when we ran tests on the account he gave us. For our production customer we keep getting the following 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.w3.org/2001/XMLSchema-instance; soapenv:Header ns1:RequestHeader xmlns:ns1=https://adwords.google.com/api/adwords/cm/v201309; soapenv:mustUnderstand=0 ns1:clientCustomerId[truncated]/ns1:clientCustomerId ns1:developerToken[truncated]/ns1:developerToken ns1:userAgent[truncated] (AwApi-Java, AdWords-Axis/1.20.0, Common-Java/1.20.0, Axis/1.4, Java/1.6.0_65, maven)/ns1:userAgent ns1:validateOnlyfalse/ns1:validateOnly ns1:partialFailurefalse/ns1:partialFailure /ns1:RequestHeader /soapenv:Header soapenv:Body mutate xmlns=https://adwords.google.com/api/adwords/cm/v201309; operations operatorADD/operator operand googleClickId[truncated]/googleClickId conversionName[truncated]/conversionName conversionTime20140107 184907/conversionTime conversionValue2.0/conversionValue /operand /operations /mutate /soapenv:Body /soapenv:Envelope 14/01/07 18:49:09 WARN AdWordsServiceClient.soapXmlLogger: SOAP Response: ?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/v201309; requestId[truncated]/requestId serviceNameOfflineConversionFeedService/serviceName methodNamemutate/methodName operations0/operations responseTime57/responseTime /ResponseHeader /soap:Header soap:Body soap:Fault faultcodesoap:Server/faultcode faultstring[*AuthenticationError.NOT_ADS_USER* @ ; trigger:'lt;nullgt;']/faultstring detail ApiExceptionFault xmlns=https://adwords.google.com/api/adwords/cm/v201309; message[AuthenticationError.NOT_ADS_USER @ ; trigger:'lt;nullgt;']/message ApplicationException.TypeApiException/ApplicationException.Type errors xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xsi:type=AuthenticationError fieldPath/ triggerlt;nullgt;/trigger errorStringAuthenticationError.NOT_ADS_USER/errorString