---
search:
  tags:
    - Ad groups
    - GET
seo:
  description: >-
    Lists the ad groups of every ad account your organization connects, across
    the… Reference for the GET /observe/ad-groups endpoint in the AdCrunch API.
sidebar:
  label: List ad groups
  badge: GET
title: List ad groups
type: openapi-operation
---
Lists the ad groups of every ad account your organization connects, across the providers, newest first.

## One concept, three words

An ad group is a Meta **ad set**, a TikTok **ad group** and a Google Ads **ad group**. This path reads all three at once, and every row keeps the word its own provider writes, in `type`. AdCrunch renames nothing: a Meta `adset` and a Google `ad_group` are not the same object, and a caller that must speak to the provider needs the provider’s word.

## Narrowing

Send `campaignId` to read one campaign’s ad groups, and `provider` to read one platform. `limit` and `offset` page the answer itself, not each advertiser.

## Budget

An ad group that carries its own budget answers it in `budget`, in **whole units** of its `currency`, and a `budgetLevel` of `ad_group`. One whose campaign carries the budget answers a null `budget` and a `budgetLevel` of `campaign`: read the campaign for the amount. Every Google Ads ad group is the second kind, because Google Ads keeps every budget on the campaign.

## What is not here

Performance Max campaigns have **no ad groups**. Google’s automation delivers them through an asset group instead, which is a child of the campaign and a sibling of an ad group — so a Performance Max campaign answers nothing here, and that is not a fault. Read `/observe/asset-groups` for those.

`GET /observe/ad-groups`
