How to register your own Google Ads OAuth app
Register an OAuth app with Google for Google Ads and obtain credentials to connect it to Tenklo
This guide shows you how to register your own app with Google to obtain your OAuth credentials (client ID & secret). These are required to let your users grant your app access to their Google Ads accounts.
You will need to pass a security review to go live with your integration.
Follow our guide to get approved as fast as possible.
Create your OAuth App
If you don't already have one, sign up for a Google Cloud account.
- Go to the Google Cloud Console.
- Click on the project dropdown at the top left of the page.
- Click New Project.
- Enter a Project Name for your project.
- Under Location, select the appropriate organization or folder where this project should belong.
If you're not part of an organization, it will default to No organization
- Click Create and wait for the project to be created.
- Select it from the project dropdown.
- Go to the API Library in the Google Cloud Console.
- Search for Google Ads API and click Enable.
Configure the OAuth consent screen
- Go to APIs & Services > OAuth consent screen in the Google Cloud Console.
- Click Get started.
- Fill in all the required fields in the App Information form.
- Click Next. Select the appropriate Audience:
- External: For applications available to any Google user
- Internal: For applications restricted to users within your Google Workspace organization
- Click Next. Fill in the Contact Information; these are the email addresses that Google will use to notify you about any changes to your project.
- Click Next, then check the I agree to the Google API Services: User Data Policy checkbox, and click Continue.
- Add the scopes your application needs. Under Data Access, click Add or Remove Scopes and select the scopes that correspond to the APIs you enabled.
- Under Audience, click Add users if you selected External user type (required for testing before verification).
- Go to APIs & Services > Credentials in the Google Cloud Console.
- Click Create Credentials and select OAuth client ID.
- Select Web application as the application type.
- Enter a name for your OAuth client.
- Under Authorized redirect URIs, add
https://api.tenklo.dev/oauth/callback.
https://app.tenklo.dev if you're testing from the Tenklo UI).- Click Create.
- A dialog will appear with your client ID and client secret. Save these credentials securely as you'll need them when configuring your integration in Tenklo.
Get your Google Ads developer token
The Google Ads API requires a developer token on every request, separate from your OAuth client ID and secret.
- Sign in to a Google Ads manager account (create one if you don't already have one).
- Go to Admin > API Center.
- Copy your developer token.
login_customer_id. If every one of your end users brings their own manager account instead, you can skip this step and let them enter it during connect.Apply your developer token to every connection
The developer token isn't something Tenklo asks each end user for — it belongs to your app, not to any individual Google Ads account. Set it once as a connection config default instead:
{
"integrations_config_defaults": {
"<INTEGRATION-ID>": {
"connection_config": {
"developer_token": "<YOUR-DEVELOPER-TOKEN>"
}
}
}
}If you also always access accounts through the same manager account, include login_customer_id in the same object so it's set automatically instead of shown in the Connect UI:
{
"integrations_config_defaults": {
"<INTEGRATION-ID>": {
"connection_config": {
"developer_token": "<YOUR-DEVELOPER-TOKEN>",
"login_customer_id": "<YOUR-MANAGER-ACCOUNT-CUSTOMER-ID>"
}
}
}
}If your end users each have their own manager account instead, leave login_customer_id out of the defaults — it'll appear as an optional field in the Connect UI for them to fill in themselves.
For agents
Pass developer_token under integrations_config_defaults.<INTEGRATION-ID>.connection_config when creating a connect session via the create connect session API — it's marked automated: true in the provider config, so it never appears in the Connect UI and must be supplied by your backend at session-creation time.
login_customer_id is a regular, optional connection_config field, not automated. Include it in the same defaults object if your integration always uses one fixed manager account; omit it if it varies per end user, and it'll be collected in the Connect UI instead.
Start building your integration
Follow the Quickstart to build your integration.
Most Google Ads scopes are marked "sensitive" by Google.
You can develop your integration in test mode, but you need to pass a security review to go live.
Follow our guide to prepare and pass as quickly as possible.
Publish your app (switch from Testing to Production)
To move your OAuth app from testing to production:
- Go to APIs & Services > OAuth consent screen > Audience.
- Click Publish App to switch your app from testing to production.
Important considerations
Refresh token expiration
For information on why Google refresh tokens expire, see Why is my Google refresh token expiring?. For Google OAuth basics, see Google's OAuth 2.0 documentation.
For more details on Google Ads scopes and API implementation, see Google Ads API documentation.