OfflineCredentials.Api.ADWORDS is giving value null and causing nullPointerException

1,308 views
Skip to first unread message

Vikash Singh

unread,
Jun 19, 2014, 11:39:13 AM6/19/14
to adwor...@googlegroups.com
This value:

    com.google.api.ads.common.lib.auth.OfflineCredentials.Api.ADWORDS

Is null.

As In code:

credential = new OfflineCredentials.Builder()
                .forApi(com.google.api.ads.common.lib.auth.OfflineCredentials.Api.ADWORDS)
                .withClientSecrets(clientAppId, clientAppSecret)
                .withRefreshToken(refreshToken)
                .build()
                .generateCredential();

Any idea why this is happening?

Any help appreciated.

Thanks,
Vikash

Ray Tsang (AdWords API Team)

unread,
Jun 19, 2014, 1:56:10 PM6/19/14
to adwor...@googlegroups.com
Vikash,

Could I trouble you to send me the full stacktrace?

Thanks,

Ray

Vikash Singh

unread,
Jun 19, 2014, 2:24:59 PM6/19/14
to adwor...@googlegroups.com
Hi Ray,

Sorry to say this but there is no stack-trace. The flow is basically a sequence of proprietary classes. So can't print that.
But the import statement is as follows:

import com.google.api.ads.adwords.lib.client.AdWordsSession;
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 com.google.api.client.googleapis.auth.clientlogin.ClientLoginResponseException;
import com.google.api.ads.common.lib.auth.OfflineCredentials;
import com.google.api.ads.common.lib.auth.OfflineCredentials.Api;

and i am using this jar set : https://github.com/googleads/googleads-java-lib/releases/tag/1.27.0

Ray Tsang (AdWords API Team)

unread,
Jun 19, 2014, 3:09:48 PM6/19/14
to adwor...@googlegroups.com
Vikash,

There should be a stracktrace - could I trouble you to check if the exception was swallowed and so the stacktrace isn't being handled properly??

Thanks,

Ray

Vikash Singh

unread,
Jun 19, 2014, 3:10:44 PM6/19/14
to adwor...@googlegroups.com
Hi Ray,

Also this value: com.google.api.ads.common.lib.auth.OfflineCredentials.Api.values() is giving

An exception occurred: java.lang.NoClassDefFoundError

It seems like some issue while loading the classes from the jars.

Any idea what it could be and how to fix it??

Vikash Singh

unread,
Jun 19, 2014, 3:16:29 PM6/19/14
to adwor...@googlegroups.com
Hi Ray,

Yes the exception is absorbed a few steps down the line and then thrown as a different error. We use a rest framework for communication and that is what is absorbing the error so the stack trace is missing. :(

Vikash Singh

unread,
Jun 19, 2014, 3:29:13 PM6/19/14
to adwor...@googlegroups.com
Also please note that this is a service. deployed on tomcat. Could that be somehow causing the imporper class loading issue ???

Ray Tsang (AdWords API Team)

unread,
Jun 19, 2014, 3:33:08 PM6/19/14
to adwor...@googlegroups.com
Vikash,

I will need the stacktrace to further assist you.  Its most likely that there was a initialization error as the OfflineCredentials.Api enumerated values may depend on Guice dependency injected instances.  There could be many possible causes, such as not having the right dependencies, or having wrong versions of the dependencies, or having duplicate jars, or other frameworks that may be interfering w/ the DI process, etc...

It would be impossible to determine without a proper stacktrace.

Thanks,

Ray

Vikash Singh

unread,
Jun 23, 2014, 10:20:14 AM6/23/14
to adwor...@googlegroups.com
Hi Ray,

Finally managed to get stackTrace:

23 Jun, 2014 3:53:28 PM org.apache.catalina.core.ApplicationContext log
SEVERE: StandardWrapper.Throwable
java.lang.NoSuchMethodError: org.apache.commons.lang.ArrayUtils.contains([CC)Z
    at org.apache.commons.configuration.PropertiesConfiguration$PropertiesReader.doParseProperty(PropertiesConfiguration.java:889)
    at org.apache.commons.configuration.PropertiesConfiguration$PropertiesReader.parseProperty(PropertiesConfiguration.java:795)
    at org.apache.commons.configuration.PropertiesConfiguration$PropertiesReader.nextProperty(PropertiesConfiguration.java:728)
    at org.apache.commons.configuration.PropertiesConfigurationLayout.load(PropertiesConfigurationLayout.java:484)
    at org.apache.commons.configuration.PropertiesConfiguration.load(PropertiesConfiguration.java:473)
    at org.apache.commons.configuration.AbstractFileConfiguration.load(AbstractFileConfiguration.java:383)
    at org.apache.commons.configuration.AbstractFileConfiguration.load(AbstractFileConfiguration.java:349)
    at org.apache.commons.configuration.AbstractFileConfiguration.load(AbstractFileConfiguration.java:312)
    at org.apache.commons.configuration.AbstractFileConfiguration.load(AbstractFileConfiguration.java:225)
    at org.apache.commons.configuration.AbstractFileConfiguration.<init>(AbstractFileConfiguration.java:188)
    at org.apache.commons.configuration.PropertiesConfiguration.<init>(PropertiesConfiguration.java:284)
    at com.google.api.ads.common.lib.conf.ConfigurationHelper.fromFile(ConfigurationHelper.java:101)
    at com.google.api.ads.common.lib.conf.ConfigurationHelper.createCombinedConfiguration(ConfigurationHelper.java:157)
    at com.google.api.ads.common.lib.conf.ConfigurationProvider.get(ConfigurationProvider.java:66)
    at com.google.api.ads.common.lib.conf.ConfigurationProvider.get(ConfigurationProvider.java:1)
    at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
    at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
    at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
    at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:84)
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
    at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:54)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
    at com.google.inject.Scopes$1$1.get(Scopes.java:65)
    at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
    at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:204)
    at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:198)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024)
    at com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:198)
    at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:179)
    at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:109)
    at com.google.inject.Guice.createInjector(Guice.java:95)
    at com.google.inject.Guice.createInjector(Guice.java:72)
    at com.google.inject.Guice.createInjector(Guice.java:62)
    at com.google.api.ads.adwords.lib.utils.AdWordsInternals.<clinit>(AdWordsInternals.java:36)
    at com.google.api.ads.common.lib.auth.OfflineCredentials$Api.<clinit>(OfflineCredentials.java:65)
    at com.sokrati.googleAccLib.GoogleCredentials.resetAccessToken(GoogleCredentials.java:54)
    at com.sokrati.googleAccLib.GoogleCredentials.getAccessToken(GoogleCredentials.java:93)
    at com.sokrati.googleAccLib.Google.getCredentialsFromHs(Google.java:202)
    at com.sokrati.googleAccLib.Google.<init>(Google.java:123)
    at com.sokrati.bulkAcnSvc.servlets.AdGrSrvlt.firstTimeInit(AdGroupsSrvlt.java:72)
    at com.sokrati.bulkAcnSvc.servlets.BaseCommunicator.initializeConfigurations(BaseCommunicator.java:101)
    at com.sokrati.bulkAcnSvc.servlets.BaseCommunicator.initCommunicator(BaseCommunicator.java:57)
    at com.sokrati.restCommunicator.RestCommunicator.init(RestCommunicator.java:81)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1206)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1026)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4421)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4734)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:943)
    at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:778)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:504)
    at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1385)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:306)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
    at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1389)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1653)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1662)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1642)
    at java.lang.Thread.run(Thread.java:701)
23 Jun, 2014 3:53:28 PM org.apache.catalina.core.StandardContext loadOnStartup

Could this be any help ???

Ray Tsang (AdWords API Team)

unread,
Jun 23, 2014, 1:20:12 PM6/23/14
to adwor...@googlegroups.com
Vikash,

Thanks for the stacktrace!  It seems that the classpath may be missing some essential dependencies.  In this particular case, it's missing the Commons Lang dependency that has the proper ArrayUtils.  Again, this could be caused by many things that may be beyond the AdWords API: missing dependency, or duplicate dependency, or incompatible version, etc.

Thanks,

Ray

Vikash Singh

unread,
Jun 24, 2014, 9:36:04 AM6/24/14
to adwor...@googlegroups.com
Hey Ray,

We were including commons-lang-2.0.jar from somewhere in the app. Removed it and it worked fine.

Thanks for all your help. :)

cheers,
--
Vikash

Ray Tsang (AdWords API Team)

unread,
Jun 24, 2014, 5:45:05 PM6/24/14
to adwor...@googlegroups.com
That's great to hear.  I'm glad one of my guesses was right =)

Cheers,

Ray

chandra sekhar lagadapati

unread,
Sep 29, 2015, 8:50:20 AM9/29/15
to AdWords API Forum
Mr. Ray

Please suggest 

My stacktrace is :
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.commons.configuration.MapConfiguration.setTrimmingDisabled(Z)V
at com.google.api.ads.common.lib.conf.ConfigurationHelper.fromSystem(ConfigurationHelper.java:120)
at com.google.api.ads.common.lib.conf.ConfigurationHelper.createCombinedConfiguration(ConfigurationHelper.java:143)
at com.google.api.ads.common.lib.conf.ConfigurationProvider.get(ConfigurationProvider.java:67)
at com.google.api.ads.common.lib.conf.ConfigurationProvider.get(ConfigurationProvider.java:31)
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:84)
at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:54)
at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at com.google.inject.Scopes$1$1.get(Scopes.java:65)
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:204)
at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:198)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024)
at com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:198)
at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:179)
at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:109)
at com.google.inject.Guice.createInjector(Guice.java:95)
at com.google.inject.Guice.createInjector(Guice.java:72)
at com.google.inject.Guice.createInjector(Guice.java:62)
at com.google.api.ads.adwords.lib.utils.AdWordsInternals.<clinit>(AdWordsInternals.java:33)
at com.google.api.ads.common.lib.auth.OfflineCredentials$Api.<clinit>(OfflineCredentials.java:63)
at com.dwa.analytics.adwords.DownloadCriteriaReport.main(DownloadCriteriaReport.java:32)

Umesh Dengale

unread,
Sep 29, 2015, 4:24:58 PM9/29/15
to AdWords API Forum
Hello,

Thanks for providing the stacktrace.  It seems that the classpath may be missing some essential dependencies (e.g. commons-configuration jar etc.). Again, this could be caused by many things that may be beyond the AdWords API: missing dependency, or duplicate dependency, or incompatible version, etc.

Thanks,
Umesh, AdWords API Team


ku...@arw.is

unread,
Aug 26, 2016, 1:29:30 AM8/26/16
to AdWords API Forum
Hi All,

I have the same issue right now. I am trying to run my Adwords project as a spark job in scala. It works well on my local machine but when I compile and create a jar for it, it fails because of the following error. 
I am using the two dependencies for my Adwords project.
"com.google.api-ads" % "ads-lib" % "2.14.0" 
"com.google.api-ads" % "adwords-axis" % "2.15.0"

Would be nice if someone can point out possible solutions. I have made sure that I added commons configuration jar to my build, but it still cant find it during runtime. 

16/08/25 17:33:45 ERROR yarn.ApplicationMaster: User class threw exception: java.lang.NoSuchMethodError: org.apache.commons.configuration.MapConfiguration.<init>(Ljava/util/Properties;)V
java.lang.NoSuchMethodError: org.apache.commons.configuration.MapConfiguration.<init>(Ljava/util/Properties;)V
	at com.google.api.ads.common.lib.conf.ConfigurationHelper.fromSystem(ConfigurationHelper.java:118)
	at com.google.api.ads.common.lib.conf.ConfigurationHelper.createCombinedConfiguration(ConfigurationHelper.java:144)
	at com.google.api.ads.common.lib.conf.ConfigurationProvider.get(ConfigurationProvider.java:67)
	at com.google.api.ads.common.lib.conf.ConfigurationProvider.get(ConfigurationProvider.java:31)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
	at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
	at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:84)
	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
	at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:54)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
	at com.google.inject.Scopes$1$1.get(Scopes.java:65)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
	at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:204)
	at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:198)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024)
	at com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:198)
	at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:179)
	at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:109)
	at com.google.inject.Guice.createInjector(Guice.java:95)
	at com.google.inject.Guice.createInjector(Guice.java:72)
	at com.google.inject.Guice.createInjector(Guice.java:62)
	at com.google.api.ads.adwords.lib.utils.AdWordsInternals.<clinit>(AdWordsInternals.java:36)
	at com.google.api.ads.common.lib.auth.OfflineCredentials$Api.<clinit>(OfflineCredentials.java:66)
	at config.APISConfig$.create_adwords_session(APISConfig.scala:18)
	at campaign_by_apisearches.APICampaignStarter$.<init>(APICampaignStarter.scala:18)
	at campaign_by_apisearches.APICampaignStarter$.<clinit>(APICampaignStarter.scala)
	at campaign_by_apisearches.APICampaignStarter.main(APICampaignStarter.scala)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.spark.deploy.yarn.ApplicationMaster$$anon$2.run(ApplicationMaster.scala:525)
16/08/25 17:33:45 INFO yarn.ApplicationMaster: Final app status: FAILED, exitCode: 15, (reason: User class threw exception: java.lang.NoSuchMethodError: org.apache.commons.configuration.MapConfiguration.<init>(Ljava/util/Properties;)V)
16/08/25 17:33:55 ERROR yarn.ApplicationMaster: SparkContext did not initialize after waiting for 100000 ms. Please check earlier log output for errors. Failing the application.
16/08/25 17:33:55 INFO util.ShutdownHookManager: Shutdown hook called

Joyce Lava

unread,
Aug 26, 2016, 1:44:09 AM8/26/16
to AdWords API Forum
Hi,

I noticed this thread is a bit old. Please open a new thread with your concerns.

Thanks,
Joyce, AdWords API Team

Patrick McGeever

unread,
Jul 27, 2017, 9:36:53 AM7/27/17
to AdWords API Forum
I am experiencing this problem also.

Did you resolve it in the end?

Would be good to know how.

Peter Oliquino

unread,
Jul 27, 2017, 11:06:34 PM7/27/17
to AdWords API Forum
Hi Patrick,

This appears to be a very old thread. This said, and also for better tracking, could you create a new one? We'll continue our discussion on the issue you are encountering from there.

Best regards,
Peter
AdWords API Team
Message has been deleted

Patrick McGeever

unread,
Aug 9, 2017, 4:25:35 AM8/9/17
to AdWords API Forum
Actually we managed to resolve the problem so just in case someone else stumbles upon this thread I will describe how we resolved it.

In our case we were depending on a jar in our Spark project (Google Adwords ads-lib) which in turn depended on guava-20.0 and commons-configuration-1.10.
When we launched our Spark job we were getting the "NoSuchMethodError" reported above for MapConfiguration in commons-configuration.
We tried to package the commons-configuration lib in our fat jar but this did not work.
After some investigation we found that Spark includes a bunch of libs in its build in addition to the provided Spark libs.
It contained older versions of both commons-configuration and guava, of which the older version of commons-configuration did not contain the function which was being used by ads-lib (actually I think it was a constructor with a different signature).

This was in my local Spark installation on my dev machine...
ls -alrh /usr/local/Cellar/apache-
spark/2.2.0/libexec/jars | grep -E 'commons-configuration|\sguava'
-rw-r--r--    1 pmcgeever  admin   2.1M Jul  1 00:09 guava-14.0.1.jar
-rw-r--r--    1 pmcgeever  admin   292K Jul  1 00:09 commons-configuration-1.6.jar

So we found that no matter what we did this older version of commons-configuration provided by Spark was being used.
After we resolved this problem we had the same issue with a method not being found in Guava because the older version provided by Spark was being used.

The fix...

We provide the jars for commons-configuration-1.10 and guava-20.0 to spark-submit and instruct it to load them instead of the versions it has in its build.

e.g.

spark-submit --deploy-mode cluster \
--jars ./lib/guava-20.0.jar,./lib/commons-configuration-1.10.jar \
--conf "spark.driver.extraClassPath=guava-20.0.jar:commons-configuration-1.10.jar" \
--conf "spark.executor.extraClassPath=guava-20.0.jar:commons-configuration-1.10.jar" \
./some_spark_application.jar

I hope this helps someone.

Ajanta Phatak

unread,
Feb 13, 2019, 5:09:14 PM2/13/19
to AdWords API and Google Ads API Forum
I have the same issue. For me to resolve the issue, I did what Patrick suggested here, but I had to also remove the old jars from the default spark jars directory.
Could anyone suggest a way to avoid that?

googleadsapi...@google.com

unread,
Feb 13, 2019, 10:59:13 PM2/13/19
to adwor...@googlegroups.com
Hi,

Since this is already an old thread and for better tracking, could you create a new one and include the details of your issue through that thread? We can continue our discussion through there.

Thanks and regards,
Peter
AdWords API Team


=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and discussion group:
    http://googleadsdeveloper.blogspot.com/search/label/adwords_api
    https://developers.google.com/adwords/api/community/
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

Was your question answered? Please rate your experience with us by taking a short survey.
If not -- reply to this email and tell us what else we can do to help.

Take Survey

Also find us on our blog and discussion group:
http://googleadsdeveloper.blogspot.com/search/label/adwords_api
https://developers.google.com/adwords/api/community/

--
--
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog:
https://googleadsdeveloper.blogspot.com/
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
 
You received this message because you are subscribed to the Google
Groups "AdWords API and Google Ads API Forum" group.
To post to this group, send email to adwor...@googlegroups.com
To unsubscribe from this group, send email to
adwords-api+unsubscribe@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 and Google Ads API Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to adwords-api+unsubscribe@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/c89848eb-ded0-4592-9495-c41413aa188b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages