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-08-20 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,["**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\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\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\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."]]