Ad groups

Stored read: List ad groups

Available on: Meta TikTok Google Ads OpenAI

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 counts rows of the answer itself, not rows of each advertiser. When the answer holds nextCursor, more rows exist: send it back as cursor to get the next page.

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

Request

  • Base URL: https://api.adcrunch.dev
  • URL: https://api.adcrunch.dev/observe/ad-groups
  • Auth: HTTP bearer

Query parameters

idsstring

Ids to filter on, separated by commas. An id is the bare id its provider gives.

cursorstring

The nextCursor of the previous page. Omit it to get the first page. Send it with no change, and with the same filters as the request that answered it: a cursor from a different query gets a 400 invalid_cursor. Do not build or change a cursor.

limitinteger

The greatest number of rows on the page, from 1 to 500. The default is 100. A greater value gets a 400, with error of invalid_request.

advertiserIdstring

Read one ad account from what AdCrunch holds, prefixed acc_. One your organization does not own answers an empty list rather than a failure. To ask the provider instead, put the advertiser in the path.

'meta'
OR
'tiktok'
OR
'snapchat'
OR
'gads'
OR
'dv360'
OR
'x'
OR
'openai'
status'ACTIVE' | 'PAUSED' | 'DELETED' | 'ARCHIVED'

Read one status, normalized across the providers. TikTok ENABLE and DISABLE are read here as ACTIVE and PAUSED.

campaignIdstring

Read only what this campaign holds. Send the bare id its provider gives, which is the campaignId every row answers.

Response

The matching ad groups, and how many there are in all. Each row keeps its provider’s own type: adset, adgroup or ad_group.

nextCursorstring

Send this value as cursor to get the next page. It is absent on the last page.

Example response

{
  "data": [
    {
      "advertiserId": "acc_1203456789012345",
      "bidAmount": null,
      "bidStrategy": null,
      "budget": null,
      "budgetLevel": "campaign",
      "budgetType": null,
      "campaignId": "120210000000000",
      "createdAt": 1789610000000,
      "createdTime": 1789600000000,
      "currency": "EUR",
      "deletedAt": null,
      "endTime": null,
      "id": "120210000000001",
      "name": "Women 25-44, France",
      "path": "120210000000000/120210000000001",
      "provider": "meta",
      "roasFloor": null,
      "startTime": null,
      "status": "ACTIVE",
      "type": "adset",
      "updatedAt": null,
      "updatedTime": 1789900000000
    }
  ],
  "nextCursor": "eyJwIjpbMTc4OTYxMDAwMDAwMCwibWV0YSIsImFkc2V0IiwiMTIwMjEwMDAwMDAwMDAxIl0sInEiOiI1bHgzc2UzOTBpIn0"
}

Changes

No recorded changes to this operation across all 1 revision of this API.