Send feedback
OAuth Service Account Flow
Stay organized with collections
Save and categorize content based on your preferences.
This guide will walk you through how to setup OAuth2 for API access using your
own credentials using service accounts .
These steps only need to be done once, unless you revoke or delete your OAuth2
credentials.
Create OAuth2 credentials
Note: This flow requires a Google Workspace domain and
the service account that you created needs to be granted domain wide delegation
access by a super administrator for the domain.
Generate a service (delegate) account ID and a *.JSON
file
by following the linked instructions, then come back to this page.
Set up client library
Set the private key JSON file path and delegate account ID in your
configuration. If you're using a googleads.properties
file, add the following:
jsonKeyFilePath=PRIVATE_KEY_FILE_PATH
impersonatedEmail=DELEGATE_ACCOUNT
If you're using environment variables, add the following to your Bash
configuration or environment:
export GOOGLE_ADS_JSON_KEY_FILE_PATH = PRIVATE_KEY_FILE_PATH
export GOOGLE_ADS_IMPERSONATED_EMAIL = DELEGATE_ACCOUNT_ID
Key Point: When loading configurations, the library first looks for credentials
from the OAuth2 desktop or web app flows, and then uses them if found. So if you
want to use a Service Account authentication, make sure credentials for the
other flows are not present in your configuration.
Send feedback
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License , and code samples are licensed under the Apache 2.0 License . For details, see the Google Developers Site Policies . Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2024-08-13 UTC.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"Missing the information I need"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Too complicated / too many steps"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Out of date"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Samples / code issue"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Other"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Easy to understand"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Solved my problem"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Other"
}]
Need to tell us more?
{"lastModified": "Last updated 2024-08-13 UTC."}
[[["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 2024-08-13 UTC."]]