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.
Note the client ID and client secret, then come back to this page.
Set up the client library
In a terminal, run the GenerateUserCredentials code example, which prompts you for your OAuth 2.0
client ID and client secret.
php GenerateUserCredentials.php
The code example prompts you to visit a URL where you must authorize your app
to access your Google Ads account on your behalf.
Paste this URL in your browser:
https://accounts.google.com/o/oauth2/v2/auth?response_type=code&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.
Your refresh token has been fetched. Check the console output 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:
Your refresh token is: 1/Yw**********
Copy the text below into a file named "google_ads_php.ini" in your home directory, and
replace "INSERT_DEVELOPER_TOKEN_HERE" with your developer token:
[GOOGLE_ADS]
developerToken = "INSERT_DEVELOPER_TOKEN_HERE"
[OAUTH2]
Copy the following lines to your 'google_ads_php.ini' file:
clientId = "***********************apps.googleusercontent.com"
clientSecret = "****"
refreshToken = "****"
[[["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-28 UTC."],[[["\u003cp\u003eThis guide explains how to set up OAuth2 for Google Ads API access using your own credentials through either a desktop or web flow.\u003c/p\u003e\n"],["\u003cp\u003eYou'll need to create OAuth2 credentials by configuring a Google API Console project and noting your client ID and secret.\u003c/p\u003e\n"],["\u003cp\u003eThe setup involves running a client library example that guides you through an authorization process using your Google account.\u003c/p\u003e\n"],["\u003cp\u003eUpon successful authorization, you'll receive a refresh token and instructions to configure your client library with the necessary properties.\u003c/p\u003e\n"]]],[],null,["# OAuth Desktop and Web Application Flows\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----------------------------\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. Note the *client ID* and *client secret*, then come back to this page.\n\nSet up the client library\n-------------------------\n\n| 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-php/blob/HEAD/examples/Authentication/GenerateUserCredentials.php) code example, which prompts you for your OAuth 2.0\n client ID and client secret.\n\n ```\n php GenerateUserCredentials.php\n ```\n2. The code example prompts you to visit a URL where you must authorize your app\n 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/v2/auth?response_type=code&access_type=offline&client_id=...\n ```\n\n Navigate to the URL in a private browser session or an incognito window.\n Sign in with the Google Account you use to access Google Ads. Usually, this is a login email\n to a Google Ads manager account that contains all the accounts you need to manage under\n its 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 succeeded. \n\n ```\n Your refresh token has been fetched. Check the console output for further\n instructions.\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 Your refresh token is: 1/Yw**********\n Copy the text below into a file named \"google_ads_php.ini\" in your home directory, and\n replace \"INSERT_DEVELOPER_TOKEN_HERE\" with your developer token:\n\n [GOOGLE_ADS]\n developerToken = \"INSERT_DEVELOPER_TOKEN_HERE\"\n [OAUTH2]\n Copy the following lines to your 'google_ads_php.ini' file:\n clientId = \"***********************apps.googleusercontent.com\"\n clientSecret = \"****\"\n refreshToken = \"****\"\n ```"]]