Request had insufficient authentication scopes
Hi, I am trying to run the example using the new Google Ads API from here: https://developers.google.com/google-ads/api/docs/client-libs/java/getting-started but am facing an exception. *Command Run*: ./gradlew -q runExample --example="basicoperations.GetCampaigns --customerId 6676419890" *Response:* Running example: com.google.ads.googleads.examples.basicoperations.GetCampaigns, args: [--customerId, 6676419890] 2022-09-07 10:07:04,309 WARN [grpc-default-executor-0] logging.RequestLogger (RequestLogger.java:159) - FAILURE REQUEST SUMMARY. Method: google.ads.googleads.v11.services.GoogleAdsService/SearchStream, Endpoint: googleads.googleapis.com:443, CustomerID: 6676419890, RequestID: null, ResponseCode: PERMISSION_DENIED, Fault: Request had insufficient authentication scopes.. 2022-09-07 10:07:05,273 INFO [grpc-default-executor-0] logging.RequestLogger (RequestLogger.java:157) - FAILURE REQUEST DETAIL. Request --- MethodName: google.ads.googleads.v11.services.GoogleAdsService/SearchStream Endpoint: googleads.googleapis.com:443 Headers: {developer-token=REDACTED, login-customer-id=3258658280, x-goog-api-client=gl-java/1.8.0_292 gccl/21.0.1-SNAPSHOT gapic/21.0.1-SNAPSHOT gax/2.12.2 grpc/1.44.1 pb/3.19.4} Body: customer_id: "6676419890" query: "SELECT campaign.id, campaign.name FROM campaign ORDER BY campaign.id" Response Headers: Metadata(content-type=application/grpc,www-authenticate=Bearer realm="https://accounts.google.com/;, error="insufficient_scope", scope="https://www.googleapis.com/auth/adwords https://adwords.google.com/api/adwords https://adwords.google.com/api/adwords/ https://adwords.google.com/api/adwords/cm",x-google-session-info=GgQYECgLIAE6GhIYZ29vZ2xlYWRzLmdvb2dsZWFwaXMuY29t,date=Wed, 07 Sep 2022 17:07:04 GMT,x-google-gfe-request-trace=acsfol15:443,dydl21:9838,/bns/py/borg/py/bns/adwords-simply/aw-webapi-esfproxy-prod.server/54,dydl21:9838,acsfol15:443,x-google-gfe-version=2.790.1,x-google-gslb-service=adwords-frontend-webapi-esfproxy,x-google-backends=/bns/py/borg/py/bns/adwords-simply/aw-webapi-esfproxy-prod.server/54,/bns/dy/borg/dy/bns/traffic-prod/shared-layer2-gfe/19,/bns/dy/borg/dy/bns/traffic-prod/shared-layer2-gfe/19,/bns/ncsfoa/borg/ncsfoa/bns/gfe-prod/blue-layer1-gfe.sfo03s25/4,x-google-dos-service-trace=main:adwords-frontend-webapi-esfproxy,main:shared-layer2-gfe,x-google-gfe-handshake-trace=GFE: /bns/ncsfoa/borg/ncsfoa/bns/gfe-prod/blue-layer1-gfe.sfo03s25/4,Mentat oracle: [2002:a05:7308:7195::]:9846,x-google-service=adwords-frontend-webapi-esfproxy,shared-layer2-grpc-aggregate,x-google-gfe-response-code-details-trace=response_code_set_by_backend,response_code_set_by_backend,x-google-gfe-response-body-transformations=chunked,chunked,x-google-shellfish-status=CA0gBEBG,alt-svc=h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43",x-google-gfe-service-trace=adwords-frontend-webapi-esfproxy,shared-layer2-grpc-aggregate) Body: null Failure message: null Status: Status{code=PERMISSION_DENIED, description=Request had insufficient authentication scopes., cause=null}. Exception in thread "main" com.google.api.gax.rpc.PermissionDeniedException: io.grpc.StatusRuntimeException: PERMISSION_DENIED: Request had insufficient authentication scopes. at com.google.api.gax.rpc.ApiExceptionFactory.createException(ApiExceptionFactory.java:53) at com.google.api.gax.grpc.GrpcApiExceptionFactory.create(GrpcApiExceptionFactory.java:72) at com.google.api.gax.grpc.GrpcApiExceptionFactory.create(GrpcApiExceptionFactory.java:60) at com.google.api.gax.grpc.ExceptionResponseObserver.onErrorImpl(ExceptionResponseObserver.java:82) at com.google.api.gax.rpc.StateCheckingResponseObserver.onError(StateCheckingResponseObserver.java:86) at com.google.api.gax.grpc.GrpcDirectStreamController$ResponseObserverAdapter.onClose(GrpcDirectStreamController.java:149) at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39) at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23) at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40) at com.google.api.gax.grpc.ChannelPool$ReleasingClientCall$1.onClose(ChannelPool.java:455) at io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39) at io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23) at io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40) at com.google.ads.googleads.lib.logging.LoggingInterceptor$1$1.onClose(LoggingInterceptor.java:113) at
ServiceConfigurationError on GoogleAdsRecordReader initialize
Hi everyone, We are migrating from AdWords API to Google Ads API. I keep getting this error and when trying to create an object of GoogleAdsServiceClient and cannot figure out the dependency I may be missing. *Line at which error encountered*: GoogleAdsServiceClient googleAdsServiceClient = googleAdsClient.getLatestVersion().createGoogleAdsServiceClient(); *Error*: ERROR [Executor task launch worker for task 0.0 in stage 0.0 (TID 0):o.a.s.e.Executor@94] - Exception in task 0.0 in stage 0.0 (TID 0) java.util.ServiceConfigurationError: com.google.ads.googleads.lib.stubs.callables.ExceptionTransformation: Provider com.google.ads.googleads.lib.callables.GoogleAdsExceptionTransformation not foundat java.util.ServiceLoader.fail(ServiceLoader.java:239) ~[na:1.8.0_332]at java.util.ServiceLoader.access$300(ServiceLoader.java:185) ~[na:1.8.0_332] at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:372) ~[na:1.8.0_332]at java.util.ServiceLoader$LazyIterator.access$700(ServiceLoader.java:323) ~[na:1.8.0_332]at java.util.ServiceLoader$LazyIterator$2.run(ServiceLoader.java:407) ~[na:1.8.0_332]at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_332]at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:409) ~[na:1.8.0_332]at java.util.ServiceLoader$1.next(ServiceLoader.java:480) ~[na:1.8.0_332] at com.google.ads.googleads.lib.GrpcGoogleAdsCallableFactory.loadExceptionTransformation(GrpcGoogleAdsCallableFactory.java:58) ~[na:na]at com.google.ads.googleads.lib.GrpcGoogleAdsCallableFactory.(GrpcGoogleAdsCallableFactory.java:51) ~[na:na]at com.google.ads.googleads.v11.services.stub.GrpcGoogleAdsServiceStub.(GrpcGoogleAdsServiceStub.java:118) ~[na:na]at com.google.ads.googleads.v11.services.stub.GrpcGoogleAdsServiceStub.create(GrpcGoogleAdsServiceStub.java:96) ~[na:na]at com.google.ads.googleads.v11.services.stub.GoogleAdsServiceStubSettings.createStub(GoogleAdsServiceStubSettings.java:186) ~[na:na]at com.google.ads.googleads.v11.services.GoogleAdsServiceClient.(GoogleAdsServiceClient.java:141) ~[na:na]at com.google.ads.googleads.v11.services.GoogleAdsServiceClient.create(GoogleAdsServiceClient.java:123) ~[na:na]at com.google.ads.googleads.lib.catalog.GeneratedCatalog$V11Client.createGoogleAdsServiceClient(GeneratedCatalog.java:2915) ~[na:na]at io.cdap.plugin.googleads.common.GoogleAdsHelper.downloadReport(GoogleAdsHelper.java:85) ~[%20artifact8554326314395520378.jar:na]at io.cdap.plugin.googleads.common.GoogleAdsHelper.buildReportStructure(GoogleAdsHelper.java:64) ~[%20artifact8554326314395520378.jar:na]at io.cdap.plugin.googleads.source.single.GoogleAdsRecordReader.initialize(GoogleAdsRecordReader.java:51) ~[%20artifact8554326314395520378.jar:na]at io.cdap.cdap.etl.spark.io.TrackingRecordReader.initialize(TrackingRecordReader.java:42) ~[hydrator-spark-core3_2.12-6.7.1.jar:na]at org.apache.spark.rdd.NewHadoopRDD$$anon$1.liftedTree1$1(NewHadoopRDD.scala:216) ~[spark-core_2.12-3.1.3.jar:3.1.3]at org.apache.spark.rdd.NewHadoopRDD$$anon$1.(NewHadoopRDD.scala:213) ~[spark-core_2.12-3.1.3.jar:3.1.3]at org.apache.spark.rdd.NewHadoopRDD.compute(NewHadoopRDD.scala:168) ~[spark-core_2.12-3.1.3.jar:3.1.3]at org.apache.spark.rdd.NewHadoopRDD.compute(NewHadoopRDD.scala:71) ~[spark-core_2.12-3.1.3.jar:3.1.3]at io.cdap.cdap.app.runtime.spark.data.DatasetRDD.compute(DatasetRDD.scala:58) ~[na:na]at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:373) ~[spark-core_2.12-3.1.3.jar:3.1.3]at org.apache.spark.rdd.RDD.iterator(RDD.scala:337) ~[spark-core_2.12-3.1.3.jar:3.1.3]at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:52) ~[spark-core_2.12-3.1.3.jar:3.1.3]at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:373) ~[spark-core_2.12-3.1.3.jar:3.1.3]at org.apache.spark.rdd.RDD.iterator(RDD.scala:337) ~[spark-core_2.12-3.1.3.jar:3.1.3]at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:52) ~[spark-core_2.12-3.1.3.jar:3.1.3]at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:373) ~[spark-core_2.12-3.1.3.jar:3.1.3]at org.apache.spark.rdd.RDD.iterator(RDD.scala:337) ~[spark-core_2.12-3.1.3.jar:3.1.3]at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:52) ~[spark-core_2.12-3.1.3.jar:3.1.3]at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:373) ~[spark-core_2.12-3.1.3.jar:3.1.3]at org.apache.spark.rdd.RDD.iterator(RDD.scala:337) ~[spark-core_2.12-3.1.3.jar:3.1.3]at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:90) ~[spark-core_2.12-3.1.3.jar:3.1.3]at org.apache.spark.scheduler.Task.run(Task.scala:131) ~[spark-core_2.12-3.1.3.jar:3.1.3]at org.apache.spark.executor.Executor$TaskRunner.$anonfun$run$3(Executor.scala:498)