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
Generate a service 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 path in your configuration. If you're authenticating
using impersonation, also set the
user to impersonate.
If you're using an ads.properties
file, add the following:
api.googleads.serviceAccountSecretsPath=PRIVATE_KEY_FILE_PATH
# Only add this key if you are using impersonation.
api.googleads.serviceAccountUser=USER_TO_IMPERSONATE
See the configuration guide for
additional details.
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 2025-08-25 UTC.
[null,null,["Last updated 2025-08-25 UTC."],[[["\u003cp\u003eThis guide explains how to set up OAuth2 for API access using service accounts with your own credentials.\u003c/p\u003e\n"],["\u003cp\u003eThe setup process involves generating a service account ID and a JSON file, and then configuring your client library with the necessary credentials.\u003c/p\u003e\n"],["\u003cp\u003eThis setup needs to be done only once and requires a Google Workspace domain with domain-wide delegation access granted to the service account.\u003c/p\u003e\n"]]],[],null,["# OAuth Service Account Flow\n\nThis guide will walk you through how to setup OAuth2 for API access using your\nown credentials using [service accounts](/google-ads/api/docs/oauth/service-accounts).\nThese steps only need to be done once, unless you revoke or delete your OAuth2\ncredentials.\n\nCreate OAuth2 credentials\n-------------------------\n\n[Generate a **service account ID and a \\*.JSON\nfile**](/google-ads/api/docs/oauth/service-accounts#service_account_access_setup) by\nfollowing the linked instructions, then come back to this page.\n\nSet up client library\n---------------------\n\nSet the private key JSON path in your configuration. If you're [authenticating\nusing impersonation](/google-ads/api/docs/oauth/service-accounts#impersonation), also set the\nuser to impersonate.\n\nIf you're using an `ads.properties` file, add the following: \n\n api.googleads.serviceAccountSecretsPath=\u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-s\"\u003ePRIVATE_KEY_FILE_PATH\u003c/span\u003e\u003c/var\u003e\n # Only add this key if you are using impersonation.\n api.googleads.serviceAccountUser=\u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-s\"\u003eUSER_TO_IMPERSONATE\u003c/span\u003e\u003c/var\u003e\n\nSee the [configuration guide](/google-ads/api/docs/client-libs/java/config-file) for\nadditional details."]]