# List Ad Groups — TikTok Ads Manager

> List ad groups in a TikTok Ads account with optional filters. Returns ad group IDs, names, status, budget, schedule, and targeting. Use campaign IDs from List Campaigns to filter. Use ad group IDs returned here as input to List Ads or…

- Key: `tiktok_ads_manager-list-ad-groups`
- Type: Action (Read-only)
- Version: 0.0.2
- App: TikTok Ads Manager (`tiktok_ads_manager`) — https://pipedream.com/apps/tiktok-ads-manager.md
- This page (HTML): https://pipedream.com/apps/tiktok-ads-manager/actions/list-ad-groups
- Hints: read-only · open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/tiktok_ads_manager/actions/list-ad-groups/list-ad-groups.mjs

## Description

List ad groups in a TikTok Ads account with optional filters. Returns ad group IDs, names, status, budget, schedule, and targeting. Use campaign IDs from **List Campaigns** to filter. Use ad group IDs returned here as input to **List Ads** or **Create or Update Ad**. [See the documentation](https://business-api.tiktok.com/portal/docs/get-ad-groups/v1.3)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `advertiserId` | `string` | Yes | Your TikTok Ads Manager advertiser ID. Find it in the Ads Manager URL after aadvid= (e.g., aadvid=7123456789012345678). Also visible under Account Info in Business Center. |
| `campaignIds` | `string[]` | No | Filter by campaign IDs (max 100). Use List Campaigns to find IDs. |
| `adgroupIds` | `string[]` | No | Filter by specific ad group IDs (max 100). |
| `adgroupName` | `string` | No | Filter by ad group name. |
| `primaryStatus` | `string` | No | Filter by primary status. Default is STATUS_NOT_DELETE (all except deleted). Use STATUS_ALL to include deleted ad groups. |
| `secondaryStatus` | `string` | No | Filter by ad group secondary status. Example values: ADGROUP_STATUS_DELIVERY_OK, ADGROUP_STATUS_CAMPAIGN_DISABLE, ADGROUP_STATUS_DELETE. |
| `objectiveType` | `string` | No | Filter by advertising objective. Example values: REACH, TRAFFIC, VIDEO_VIEWS, CONVERSIONS, APP_PROMOTION. |
| `billingEvents` | `string[]` | No | Filter by billing event types. Example values: CPC, CPM, OCPM, CPV. |
| `creationFilterStartTime` | `string` | No | Return ad groups created after this time. Format: YYYY-MM-DD HH:MM:SS (UTC). A range within 6 months is recommended. |
| `creationFilterEndTime` | `string` | No | Return ad groups created before this time. Format: YYYY-MM-DD HH:MM:SS (UTC). A range within 6 months is recommended. |
| `page` | `integer` | No | Page number for paginated results. Starts at 1. |
| `pageSize` | `integer` | No | Number of results per page. Default: 10, max: 1000. |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "tiktok_ads_manager",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "tiktok_ads_manager-list-ad-groups",
  arguments: {
    advertiserId: "Advertiser ID",
    campaignIds: ["Campaign IDs"],
  },
})
```

**TypeScript**

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "tiktok_ads_manager-list-ad-groups",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    tiktok_ads_manager: { authProvisionId: "apn_xxxxxxx" },
    advertiserId: "Advertiser ID",
    campaignIds: ["Campaign IDs"],
  },
})

console.log(result)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "tiktok_ads_manager-list-ad-groups",
    "configured_props": {
      "tiktok_ads_manager": { "authProvisionId": "apn_xxxxxxx" },
      "advertiserId": "Advertiser ID",
      "campaignIds": ["Campaign IDs"]
    }
  }'
```

---

- App: https://pipedream.com/apps/tiktok-ads-manager.md · All apps: https://pipedream.com/apps
