adwords api to manage other accounts - google-ads-api

We are trying to integrate Google adwords connectivity into our Marketing Analytics Web application, meaning we are creating an app that would allow small businesses to login to their AdWords accounts and manage them based on findings of our app.
The problem is that upon signing up for API Access AdWords is asking us to link 'our' adwords account to the app account as well. This does not make too much sense to us, why do we need to show our adwords account when we ourselves will not be the main users of the app. It almost seems that AdWords assumes only a couple of users will be using the API.
Is my thinking flawed here? Can anyone clarify?

Google does seem to assume that their AdWords API is used primarily for in-house reporting and account management (as well by advertising agencies managing accounts on behalf of their clients).
Even if you are building an app for general, public use, the app's Client ID, Client Secret, and Developer Token are still connected to your company's MCC account.
However, this does not cause a problem. Any AdWords account owner can authorize your app to access their data, without having to be your client.

Related

Gmail API OAUTH2 verify Desktop application

At work we have developed an individual customer specific software application that is in use for a long time. We have a new requirement in this same program to implement an option for sending emails directly from the program.
The user is able to add his own email account with the credentials and login through our program. For Microsoft and Gmail accounts OAUTH is implemented and something here is not very clear.
For Gmail-API we have made an OAUTH Client and Consent screen on Google Cloud Console which we need to publish and verify and here is where the problems start. I am not very clear with the whole process of verifying the app.
In the steps for verifying is stated that we should verify a domain for the app, but this software is not hosted anywhere on internet and is not publicly available, it is available to a number of specific users (2000-3000).
Also Google requires a YouTube video of the software to be available publicly, which we are not able to upload because of customer requirements. Also here is required a Data Protection Policy page for the application which we as a developers don't have because we are only developing the software.
Other thing that is not clear to me, how is this type of software rated by Google, internal or public?
Have anyone experience with this or something similar?
Verifying an app for one of the Gmail scopes is a very complicated process. This process depends upon which scope of authorization you are requesting of the users.
In your case you are trying to send an email so you are using the users.messages.send method from the Gmail api. This uses a restricted scope. Which means you will need to go though the full process.
First of it doesn't matter if your application is hosted or not. It also doesn't matter that you give this app to a limited number of users. What matters is the scopes you are using.
You will need to ensure that your domain has been registered via google search console. So this app will need a domain
Once that is done you will be able to host your website, and the privacy policy on that domain.
You will need to create a YouTube video showing your application running, and how authorization is used.
You will also need to submit to a third party security checkup of your application which is not free and will need to be done once a year.
All of this is needed because of your consent screen it doesn't matter if its hosted any where, It also doesn't matter if this is only available to specific number of users.
If all of the users are part of a single google workspace account, that has created your client id and client secrete then you can set the app to internal and you wont need to be verified. This only works for google workspace domain accounts.

Google Apps Marketplace declare scopes multiple times?

I'm trying to build a Google Apps Marketplace App using the new APIs only available through OAuth2. We already have an app using the old APIs, but I'm having trouble figuring out how to have the same flow with OAuth2.
In our old app, the domain administrator would install the app and give it permissions. Then, we could just make requests using our app's id/secret without user interaction. (2-legged OAuth)
How would I do this with OAuth2? None of the flows described here sound like what I'm looking for.
I'm also having hard times to find out to get this new OAuth2 login up and running.
You will have to use service accounts to make requests on behalf of the user.
Documentation is here:
https://developers.google.com/accounts/docs/OAuth2ServiceAccount
I did not yet manage to get the flow working without each user being prompted again, but this most likely is because I need offline access:
Google Apps Marketplace SDK + Domain-wide OAuth 2 SSO

Ruby Google API key and analytics

I am creating a Ruby application that needs to access dozens (maybe hundreds) of different Google Analytics accounts, query each account, and then generate a report based on the results. I know I can achieve this using Googles API client ( http://code.google.com/p/google-api-ruby-client/ ) and Oauth, but that would require manually generating a set of keys and credentials for each analytics account which is not really feasible. I'm wondering if there is another way to access google analytics (perhaps using the API Keys?) that bypasses the need to generate credentials manually.
After quite a bit of tinkering, I've finally stumbled upon a solution to my particular problem. As it turns out, I don't need to create a separate Developer account for each Analytics account I want to access. I can simply create a single Developer account, and then add that Developer accounts' email address to the set of users that are able to access the Analytics account. This will allow me to access multiple Analytics accounts using the same Developer account.
Yes, it will still require quite a bit of work adding the Developer email account to hundreds of Google Analytics accounts, but it pales in comparison to creating a separate set of Developer credentials for each Analytics account.

Can adwords api apps only be accessed by MCC linked accounts?

I am looking at developing an app using the google adwords api.
I have found here that I need an MCC account to be able to access the google adwords API.
Does this mean that only people with adwords accounts linked to my MCC account can use my app?
Or can my app be accessed by anyone with an adwords account?
Your app will be able to access any AdWords account provided the owner of that account allows it.
The AdWords account does not need to be linked to your MCC.
The user of your app will have to grant permission for your app to access their AdWords account before any calls to the AdWords API are made by your app.
Check these docs on the OAuth2 flow out for further details and then these for installed applications.

Working with google adwords api

What i need to do to use Google AdWords API? Is it real that i must register at My Client Center, pay money and pass stupid tests on google testing service?
in order to use AdWords API, you need to:
have a regular Google AdWords account (not My Client Center - MCC one) with campaigns
have an MCC account... which cannot have campaigns but have an access to API
link your regular AdWords account with the MCC account
ask for API access from your MCC Account (My Profile section)
pay for API use per Google's rate sheet
... you can apply for free API usage, however this does come with a cost. This is where you need to do those stupid tests to get recognized as Certified Partner and fulfill some other requirements. And yes, you need to pay for these tests (last time I checked, it was $50 per test, there are about 4 of them for AdWords altogether, don't know how many you need to pass to get certified though).
P.S.: those 2 accounts (AdWords and MCC) cannot be combined and for some reason only the MCC one has access to API... wierd but that goes "by design" according to API Support (can't find the link at the moment).
You can use the Adwords API without having a MCC or passing any tests, even WITHOUT having an Adwords account, by using the Adwords API sandbox
http://code.google.com/apis/adwords/docs/sandbox.html
Of course this is to be used only for developing and testing purposes..
For getting Google AdWords API access you do not need to give any test.
Google adwords api is free for basic access but billing detail you need to
provide to google adwords.
you can refer this link for sign Up process and how to get approve token,
https://developers.google.com/adwords/api/docs/signingup?hl=en

Resources