OAuth Desktop and Web Application Flows

This guide walks you through how to set up OAuth2 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 OAuth2 credentials.

Create OAuth2 credentials

  1. Follow the steps to configure a Google API Console project for the Google Ads API.

  2. 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

  1. In a terminal, run the GenerateUserCredentials example. Use command line flags to pass it the JSON file you downloaded in the previous step.

    To run from the command line using Gradle

    ./gradlew --console=plain --quiet runExample \
      --example="authentication.GenerateUserCredentials \
      --oAuthClientFile ${HOME}/client_secret_XXX.apps.googleusercontent.com.json"
  2. The example will prompt you to visit a URL where you'll need to allow the OAuth2 credentials to access your Google Ads account on your behalf.

    Paste this URL in your browser:

    Navigate to the URL in a private browser session or an incognito window. Sign in with the same Google account you use to access Google Ads. Click Continue on the OAuth2 consent screen.

    Consent screen

  3. 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.

  4. Return to the console where you're running the example. You'll see that the example has completed and is displaying your refresh token and some instructions, followed by the properties you'll need to configure the client library:

    #Mon Apr 18 09:07:51 EDT 2022
  5. Copy the lines from the date comment # to the end of the output into your ads.properties file.

    Replace INSERT_DEVELOPER_TOKEN_HERE with your developer token.

    For the easiest setup, place the ads.properties file in your home directory.