Stay organized with collections
Save and categorize content based on your preferences.
This guide walks you through how to set up OAuth 2.0 for API access using your
own credentials and either the desktop flow
or the web flow. These steps only need
to be done once, unless you revoke, delete, or need to change the allowed scopes
for your OAuth 2.0 credentials.
Download the client's JSON file by first clicking its Download OAuth
client icon and then the DOWNLOAD JSON button on the following screen.
Save the file to your home directory so that you now have the local file
~/client_secret_XXX.apps.googleusercontent.com.json (where XXX will be
values specific to your project). We'll use this file in the next step to
run the code example.
Set up the client library
In a terminal, run the GenerateUserCredentials code example. Use command-line flags to pass it the
OAuth 2.0 JSON file you downloaded.
You may use the following command to run the code example from the command line using Gradle:
This code example will prompt you to visit a URL where you must authorize the
app to access your Google Ads account on your behalf.
Paste this URL in your browser:
https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=****...
Navigate to the URL in a private browser session or an incognito window. Sign in with the
Google Account you use to access Google Ads. Usually, this is a login email to a Google Ads
manager account that contains all the accounts you need to manage under its
account hierarchy. Click Continue on the OAuth 2.0 consent screen.
You'll be taken to a page with a message indicating that the authorization
succeeded.
Authorization code was successfully retrieved.
Check the console output from `GenerateUserCredentials` for further instructions.
Return to the console where you're running the code example. You'll see that the code example
has completed and is displaying your refresh token and some instructions, followed by the
instructions you'll need to follow to configure the client library:
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-20 UTC."],[[["\u003cp\u003eThis guide outlines the process of setting up OAuth2 for Google Ads API access using your own credentials.\u003c/p\u003e\n"],["\u003cp\u003eYou'll need to create and download OAuth2 credentials from the Google API Console, then use them to authenticate via a web flow.\u003c/p\u003e\n"],["\u003cp\u003eA client library setup involves running a script that guides you through the authorization process and generates necessary tokens.\u003c/p\u003e\n"],["\u003cp\u003eFinally, you'll configure the client library by adding generated credentials and your developer token to an \u003ccode\u003eads.properties\u003c/code\u003e file.\u003c/p\u003e\n"]]],[],null,["\u003cbr /\u003e\n\n\u003cbr /\u003e\n\nThis guide walks you through how to set up OAuth 2.0 for API access using your\nown credentials and either the [desktop flow](/identity/protocols/oauth2/native-app)\nor the [web flow](/identity/protocols/oauth2/web-server). These steps only need\nto be done once, unless you revoke, delete, or need to change the allowed scopes\nfor your OAuth 2.0 credentials.\n\nCreate OAuth 2.0 credentials\n\n1. Follow the steps to [configure a Google API Console project for the\n Google Ads API](/google-ads/api/docs/oauth/cloud-project).\n\n2. Download the client's JSON file by first clicking its **Download OAuth\n client** icon and then the **DOWNLOAD JSON** button on the following screen.\n\n Save the file to your home directory so that you now have the local file\n `~/client_secret_XXX.apps.googleusercontent.com.json` (where XXX will be\n values specific to your project). We'll use this file in the next step to\n run the code example.\n\nSet up the client library The following steps run an interactive code example, which will require you to provide input.\n\n1. In a terminal, run the [`GenerateUserCredentials`](https://github.com/googleads/google-ads-java/blob/HEAD/google-ads-examples/src/main/java/com/google/ads/googleads/examples/authentication/GenerateUserCredentials.java) code example. Use command-line flags to pass it the\n OAuth 2.0 JSON file you downloaded.\n\n You may use the following command to run the code example from the command line using Gradle: \n\n ```\n ./gradlew --console=plain --quiet runExample \\\n --example=\"authentication.GenerateUserCredentials \\\n --oAuthClientFile ${HOME}/client_secret_XXX.apps.googleusercontent.com.json\"\n \n ```\n2. This code example will prompt you to visit a URL where you must authorize the\n app to access your Google Ads account on your behalf.\n\n ```\n Paste this URL in your browser:\n https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=****...\n \n ```\n\n Navigate to the URL in a private browser session or an incognito window. Sign in with the\n Google Account you use to access Google Ads. Usually, this is a login email to a Google Ads\n manager account that contains all the accounts you need to manage under its\n account hierarchy. Click **Continue** on the OAuth 2.0 consent screen.\n\n You'll be taken to a page with a message indicating that the authorization\n succeeded. \n\n ```\n Authorization code was successfully retrieved.\n\n Check the console output from `GenerateUserCredentials` for further instructions.\n \n ```\n3. Return to the console where you're running the code example. You'll see that the code example\n has completed and is displaying your refresh token and some instructions, followed by the\n instructions you'll need to follow to configure the client library:\n\n ```\n #Mon Apr 18 09:07:51 EDT 2022\n api.googleads.refreshToken=1/Yw.........................................\n api.googleads.clientId=...........-...............apps.googleusercontent.com\n api.googleads.developerToken=INSERT_DEVELOPER_TOKEN_HERE\n api.googleads.clientSecret=........................\n \n ```\n4. Copy the lines from the date comment `#` to the end of the output into your\n `ads.properties` file.\n\n Replace `INSERT_DEVELOPER_TOKEN_HERE` with your developer token.\n\n For the easiest setup, place the `ads.properties` file in your home directory."]]