Stay organized with collections
Save and categorize content based on your preferences.
In this step, you identify a Google Ads account to make API calls to. The account
can either be a production (live) account or a test account. Each approach has
its advantages and disadvantages.
Production accounts
Test accounts
Advantages
Easier to write and test code that works against specific account
contents.
Easier to write and test code that processes live reporting
data.
Test accounts don't serve ads, hence programming bugs
won't affect your live campaigns.
Works with developer tokens that have Test Access level.
Disadvantages
A programming bug in the development phase could affect live
campaign serving, leading to issues such as poor campaign performance,
incorrect serving, or financial losses.
The developer token should have at least the Basic Access level to
in order to make API calls.
You must reconstruct campaigns within test accounts to test code
that works against specific account contents.
Since test accounts don't serve ads, features related to live serving
such as reporting stats, policy violation errors, or processing offline
conversion imports are not supported, making it difficult to test those
features.
We recommend using a test account while developing your application when
possible. For instructions, see Create test accounts and
campaigns.
An alternative is to set up a production account with a low account budget,
such as $1/day, explicitly for testing features that are not supported by a
test account.
Choice of feature set
When choosing an account for making API call, an additional consideration is
the list of features you'd want to use with the API. Even if you choose to use
a production account, there are some features that are account-specific, for
example:
For billing features, you need an account that is on monthly invoicing.
Some new features in the account might be restricted by allowlists.
Before finalizing the account to make API calls against, check the
documentation of the specific feature to make sure that the feature doesn't
have additional restrictions.
Identify the login customer ID and customer ID
To make an API call to a Google Ads customer, you must grant access and
appropriate permissions to your service account to the customer account
either directly or through a linked manager account. To do this, you need
administrator access to the customer account.
Start by signing in to your Google Ads account as an administrator. In some cases,
you might have more than one customer account to choose from. The account you
select establishes the login customer ID, which is a required header for some
API calls.
After you've identified the Google Ads customer to make API calls to, note the
following details:
The 10-digit customer ID of the customer account to which you plan to make
API calls against. This is sometimes referred to as the operating customer.
The 10-digit login customer ID of the customer account you're signed in to.
If you're signed in to the operating customer, the login customer ID is the
same as the customer ID. If you signed into a manager account of the
operating customer, the login customer ID is the customer ID of the manager
account.
Grant access to the service account
While signed in to your Google Ads account as an administrator, navigate to
Admin > Access and security.
Click the + button under the Users tab.
Type the service account email address into the Email input box. Select
the appropriate level of account access level and click the Add account
button. Note that Email access level is not supported for service accounts.
The service account is granted access.
By default, you cannot grant administrator access to a service account. If your
API calls require administrator access, you can upgrade the access as follows.
Click the drop-down arrow next to the access level of the service account
in the Access level column.
[[["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-09-03 UTC."],[[["\u003cp\u003eChoose a Google Ads account (production or test) to make API calls, noting its email address for generating OAuth 2.0 refresh tokens.\u003c/p\u003e\n"],["\u003cp\u003eTest accounts are recommended for development to prevent affecting live campaigns; however, they don't support features related to live serving.\u003c/p\u003e\n"],["\u003cp\u003eProduction accounts, with a low budget, can be used to test features unsupported by test accounts, but a programming bug can affect live campaigns.\u003c/p\u003e\n"],["\u003cp\u003eEnsure the selected account supports the desired features as some features have account-specific restrictions.\u003c/p\u003e\n"],["\u003cp\u003eTo make API calls, you need access to the customer account, the 10-digit customer ID, email address for OAuth 2.0 token generation, and the 10-digit login customer ID.\u003c/p\u003e\n"]]],[],null,["# Prepare the customer account\n\n**Note:** The current step of this tutorial depends on the [type of application](/google-ads/api/docs/get-started/choose-application-type) you are building. We strongly recommend using service account to make API calls. However, the user authentication option is also provided as an alternative. The rest of this tutorial will be customized based on your choice. \nService accounts User authentication\n\nIn this step, you identify a Google Ads account to make API calls to. The account\ncan either be a production (live) account or a test account. Each approach has\nits advantages and disadvantages.\n\n|---------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| | ##### Production accounts | ##### Test accounts |\n| ##### Advantages | - Easier to write and test code that works against specific account contents. - Easier to write and test code that processes live reporting data. | - Test accounts *don't* serve ads, hence programming bugs won't affect your live campaigns. - Works with developer tokens that have Test Access level. |\n| ##### Disadvantages | - A programming bug in the development phase could affect live campaign serving, leading to issues such as poor campaign performance, incorrect serving, or financial losses. - The developer token should have at least the Basic Access level to in order to make API calls. | - You must reconstruct campaigns within test accounts to test code that works against specific account contents. - Since test accounts don't serve ads, features related to live serving such as reporting stats, policy violation errors, or processing offline conversion imports are not supported, making it difficult to test those features. |\n\nWe recommend using a test account while developing your application when\npossible. For instructions, see [Create test accounts and\ncampaigns](/google-ads/api/docs/best-practices/test-accounts#create).\n\nAn alternative is to set up a production account with a low account budget,\nsuch as $1/day, explicitly for testing features that are not supported by a\ntest account.\n\nChoice of feature set\n---------------------\n\nWhen choosing an account for making API call, an additional consideration is\nthe list of features you'd want to use with the API. Even if you choose to use\na production account, there are some features that are account-specific, for\nexample:\n\n- For billing features, you need an account that is on monthly invoicing.\n- Some new features in the account might be restricted by allowlists.\n\nBefore finalizing the account to make API calls against, check the\ndocumentation of the specific feature to make sure that the feature doesn't\nhave additional restrictions.\n\nIdentify the login customer ID and customer ID\n----------------------------------------------\n\nTo make an API call to a Google Ads customer, you must grant access and\nappropriate permissions to your service account to the customer account\neither directly or through a linked manager account. To do this, you need\nadministrator access to the customer account.\n\nStart by signing in to your Google Ads account as an administrator. In some cases,\nyou might have more than one customer account to choose from. The account you\nselect establishes the login customer ID, which is a required header for some\nAPI calls.\n\nAfter you've identified the Google Ads customer to make API calls to, note the\nfollowing details:\n\n- The 10-digit customer ID of the customer account to which you plan to make\n API calls against. This is sometimes referred to as the operating customer.\n\n- The 10-digit login customer ID of the customer account you're signed in to.\n If you're signed in to the operating customer, the login customer ID is the\n same as the customer ID. If you signed into a manager account of the\n operating customer, the login customer ID is the customer ID of the manager\n account.\n\nGrant access to the service account\n-----------------------------------\n\n1. While signed in to your Google Ads account as an administrator, navigate to\n **Admin \\\u003e Access and security**.\n\n2. Click the **+** button under the **Users** tab.\n\n3. Type the service account email address into the **Email** input box. Select\n the appropriate level of account access level and click the **Add account**\n button. Note that Email access level is not supported for service accounts.\n\n4. The service account is granted access.\n\nBy default, you cannot grant administrator access to a service account. If your\nAPI calls require administrator access, you can upgrade the access as follows.\n\n1. Click the drop-down arrow next to the access level of the service account\n in the **Access level** column.\n\n2. Select **Admin** from the drop-down list."]]