Apply for early access

Informational8 min read · verified 2026-09-19

Google Ads account limits: campaigns, ad groups, keywords

A Google Ads account allows 10,000 campaigns (active and paused), 20,000 ad groups per campaign, 20,000 keywords and other targeting items per ad group, 5 million per account, and 10,000 negative keywords per campaign.

Yehor Dementiev · Updated September 19, 2026

A single Google Ads account can hold 10,000 campaigns (active and paused), 20,000 ad groups per campaign, 20,000 keywords or other targeting items per ad group, 5 million ad group targeting items and 4 million ads in total, plus 10,000 negative keywords per campaign. Shared negative keyword lists hold 5,000 keywords each, and an account can have 20 lists.

Last verified: September 19, 2026

Most accounts never come close. The ones that do are almost always agency accounts built by templates, feeds or old single-keyword ad group (SKAG) structures, and those accounts hit the wall in the middle of a launch. This page lists the numbers Google publishes, what happens when you reach one, and a script to check usage across every account in your MCC. For limits on the manager account itself, see Google Ads MCC limits. All limits in this silo are collected on the Google Ads limits hub.

ItemLimitNotes
Campaigns per account10,000Includes active and paused
Performance Max campaigns per account100Google Ads API system limits
Ad groups per campaign20,000Local and App campaigns: 100
Ad group targeting items per ad group20,000Keywords, placements, audience lists
Ad group targeting items per account5,000,000Same item types, summed over the account
Campaign targeting items per account1,000,000E.g. location targets, campaign-level negative keywords
Location targets per campaign10,50010,000 individual + 500 proximity, targeted and excluded
Enabled responsive search ads per ad group3See responsive search ad limits
Active text and non-image ads per ad group50
Image or gallery ads per ad group300
Ads per account4,000,000Includes active and paused
Negative keywords per campaign10,000
Negative keyword lists per account20Manager accounts get their own 20
Keywords per negative keyword list5,000Manager or client account
Account-level negative keywords1,000
Shared budgets per account11,000
Campaign-level assets per account50,000
Ad group-level assets per account250,000

Sources: Google Ads Help — About your Google Ads account limits, Google Ads Help — About negative keyword lists (lists per account, account-level negatives), Google Ads API — System limits (Performance Max campaigns, shared budgets).

Two points people miss:

  • Keywords are not their own limit. Google counts "ad group targeting items", so the 20,000 per ad group and 5 million per account are shared by keywords, placements and audience lists together.
  • Experiments count. Google's help page says an experiment duplicates the ad groups, ads, keywords and targets of the base campaign, and those copies count toward the account totals. An account with a 3-million-keyword campaign cannot run a full experiment on it: the copy would take the account to 6 million targeting items, past the 5 million limit.

Google does not publish a limit for how many campaigns one negative keyword list can be applied to, and it does not publish a keyword-only limit separate from targeting items.

What happens when you hit a limit

Nothing breaks in the campaigns already running. The next create operation fails:

  • In the Google Ads UI and Editor, the change is rejected with an entity limit error. Advertisers in the Google Ads Community report the wording as "Exceeded entity limit in this account. Existing count: … Limit: …".
  • Through the Google Ads API (and tools built on it), the request is rejected with ResourceCountLimitExceededError, e.g. ACCOUNT_LIMIT, CAMPAIGN_LIMIT or ADGROUP_LIMIT (system limits).

Paused vs removed. Google's limits explicitly include paused items, so pausing old campaigns or ads gives you no room. The practical fix is to remove structures you will never use again. Removing is permanent, though. A removed campaign cannot be restored, only rebuilt or duplicated, and its performance data stays visible (Enable, pause, or remove a campaign). Google's limits page does not spell out how removed items are counted, so if you are close to a limit, remove in a batch and re-check the count before launching.

Google also states it may throttle or exclude ad entities from accounts that "undermine the stability" of its systems, so do not treat the limits as a target.

Why agencies hit these limits

Three account patterns cause nearly every case:

  • Template sprawl. Each new location, service or promotion gets a full copy of the campaign set. 40 locations × 12 services × 3 match-type campaigns is 1,440 campaigns before anything is paused, and nothing ever gets removed.
  • SKAG-era accounts. Single-keyword ad groups from older builds multiply ad groups and ads: 50,000 keywords in SKAGs means 50,000 ad groups, each with its own ads and negatives. Those accounts are often still live, fully paused but still counted.
  • Feed-generated campaigns. Scripts or tools that build one ad group per product, SKU or listing reach 20,000 ad groups per campaign or 5 million targeting items per account faster than anyone expects, especially with large inventories.

When to consolidate. If an account is over roughly 70–80% of any limit, or if most of its ad groups get too little traffic to learn from, consolidate: fewer campaigns grouped by budget and goal, themed ad groups instead of SKAGs, shared negative keyword lists instead of repeated campaign-level negatives, and removing (not pausing) structures you will never re-enable. Consolidation also makes Smart Bidding work better, because each campaign gets more conversion data.

Check usage across all your client accounts

The Google Ads UI does not show a usage meter for these limits. The quickest check is a Google Ads script that runs at MCC level and counts non-removed campaigns, ad groups and keywords per client account. GAQL has no COUNT(), so the script counts rows:

// Run from a manager account (MCC). Logs counts per client account.
const QUERIES = {
  campaigns: "SELECT campaign.id FROM campaign WHERE campaign.status != 'REMOVED'",
  adGroups: "SELECT ad_group.id FROM ad_group " +
    "WHERE ad_group.status != 'REMOVED' AND campaign.status != 'REMOVED'",
  keywords: "SELECT ad_group_criterion.criterion_id FROM ad_group_criterion " +
    "WHERE ad_group_criterion.type = 'KEYWORD' " +
    "AND ad_group_criterion.negative = FALSE " +
    "AND ad_group_criterion.status != 'REMOVED'"
};

function countRows(query) {
  const rows = AdsApp.search(query);
  let n = 0;
  while (rows.hasNext()) { rows.next(); n++; }
  return n;
}

function main() {
  const accounts = AdsManagerApp.accounts().get();
  while (accounts.hasNext()) {
    const account = accounts.next();
    AdsManagerApp.select(account);
    const c = countRows(QUERIES.campaigns);
    const g = countRows(QUERIES.adGroups);
    const k = countRows(QUERIES.keywords);
    Logger.log(account.getCustomerId() + ' ' + account.getName() +
      ': ' + c + ' campaigns (' + (c / 100).toFixed(1) + '% of 10,000), ' +
      g + ' ad groups, ' + k + ' keywords');
  }
}

Notes on the script:

  • The keyword query counts positive keywords only. The 5 million limit covers all ad group targeting items, so for an exact figure drop the type = 'KEYWORD' filter and the negative filter.
  • status != 'REMOVED' matches Google's "active and paused" wording.
  • For accounts with millions of rows, the script can hit the scripts execution time limit. Run it on the large accounts one at a time, or push the counts into a spreadsheet and schedule it.
  • The field names (campaign.status, ad_group.status, ad_group_criterion.type, ad_group_criterion.negative, ad_group_criterion.status) are from the GAQL ad_group_criterion reference.

Monitoring every client account with AdsCockpit

A one-off script tells you where each account stands today. The accounts that hit limits are the ones that keep growing, and growing accounts tend to have other problems first: budgets spread over too many campaigns, ad groups with too little data, cost per conversion drifting away from the client's target. AdsCockpit Monitoring handles that side. You set a rule once, AdsCockpit checks every account in your MCC against it on synced data, and when an account matches it opens a task for your team or sends a webhook to the tools you already use. Keep the script above on a schedule for the structural counts, and let rules catch the performance side before a client calls.

FAQ

How many campaigns can a Google Ads account have?

10,000 campaigns per account, and that count includes paused campaigns as well as active ones. Pausing a campaign does not free up room.

How many keywords can one ad group have?

Up to 20,000 ad group targeting items per ad group. Keywords, placements and audience lists all count toward that number, and the whole account is capped at 5 million ad group targeting items.

What is the negative keyword limit in Google Ads?

10,000 negative keywords per campaign. Shared negative keyword lists hold up to 5,000 keywords each, and an account can have up to 20 lists. Account-level negative keywords are capped at 1,000.

Can Google raise the account limits?

Google's help page says it cannot approve increases beyond the set limits to accommodate experiments, and experiment copies count toward your account totals. In practice, plan to stay under the published limits.

Do experiments count toward account limits?

Yes. When you create an experiment, Google Ads duplicates the ad groups, ads, keywords and targets of the base campaign, and those duplicates count toward the account-level limits.

Early access

Set up, watch and report on every client from one login.

Apply for early access

Limited spots · no commitment

What happens next

  1. Apply

  2. Personal reply

  3. Free 30-minute onboarding call

Questions first? Send a message