> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appeeky.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Campaigns & Ad Groups

> List, inspect, pause, resume, and update Apple Search Ads campaigns and ad groups

Campaigns and ad groups define where ads run, how budgets are applied, and which targeting rules are active. These endpoints operate on your connected Apple Search Ads organization.

<Warning>
  Update endpoints write to Apple Search Ads. Use them only when the customer expects campaign or ad group changes.
</Warning>

***

## List Campaigns

```bash curl theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl "https://api.appeeky.com/v1/connect/apple-ads/campaigns?limit=20&offset=0" \
  -H "X-API-Key: YOUR_APPEEKY_KEY"
```

Query parameters:

| Name     | Description                   |
| -------- | ----------------------------- |
| `limit`  | Number of campaigns to return |
| `offset` | Pagination offset             |

Response includes campaign IDs, names, status, countries, budget, serving state, and Apple metadata when available.

***

## Update a Campaign

```bash curl theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl -X PUT "https://api.appeeky.com/v1/connect/apple-ads/campaigns/2143596801" \
  -H "X-API-Key: YOUR_APPEEKY_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "ENABLED",
    "name": "Brand - US",
    "dailyBudgetAmount": {
      "amount": "25.00",
      "currency": "USD"
    }
  }'
```

Supported fields:

| Field               | Description               |
| ------------------- | ------------------------- |
| `status`            | `ENABLED` or `PAUSED`     |
| `name`              | Campaign name             |
| `dailyBudgetAmount` | Daily budget money object |

You can send one field or multiple fields in the same update.

***

## List Ad Groups

```bash curl theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl "https://api.appeeky.com/v1/connect/apple-ads/campaigns/2143596801/adgroups?limit=20&offset=0" \
  -H "X-API-Key: YOUR_APPEEKY_KEY"
```

Ad groups contain bids, Search Match settings, audience rules, and keyword targets.

***

## Update an Ad Group

```bash curl theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl -X PUT "https://api.appeeky.com/v1/connect/apple-ads/campaigns/2143596801/adgroups/2147258884" \
  -H "X-API-Key: YOUR_APPEEKY_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "ENABLED",
    "name": "Generic screenshot keywords",
    "defaultBidAmount": {
      "amount": "0.80",
      "currency": "USD"
    }
  }'
```

Supported fields:

| Field              | Description                  |
| ------------------ | ---------------------------- |
| `status`           | `ENABLED` or `PAUSED`        |
| `name`             | Ad group name                |
| `defaultBidAmount` | Default CPT bid money object |

***

## Pause and Resume Flow

Campaign-level pause:

```bash curl theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl -X PUT "https://api.appeeky.com/v1/connect/apple-ads/campaigns/2143596801" \
  -H "X-API-Key: YOUR_APPEEKY_KEY" \
  -H "Content-Type: application/json" \
  -d '{"status":"PAUSED"}'
```

Resume campaign:

```bash curl theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl -X PUT "https://api.appeeky.com/v1/connect/apple-ads/campaigns/2143596801" \
  -H "X-API-Key: YOUR_APPEEKY_KEY" \
  -H "Content-Type: application/json" \
  -d '{"status":"ENABLED"}'
```

Ad groups can also be paused independently:

```bash curl theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl -X PUT "https://api.appeeky.com/v1/connect/apple-ads/campaigns/2143596801/adgroups/2147258884" \
  -H "X-API-Key: YOUR_APPEEKY_KEY" \
  -H "Content-Type: application/json" \
  -d '{"status":"ENABLED"}'
```

<Note>
  `status: ENABLED` only clears a user pause. If Apple returns serving issues such as `CONTENT_PROVIDER_UNLINKED`, billing issues, missing ad groups, or no eligible ads, fix those in [Search Ads](https://searchads.apple.com).
</Note>

***

## Typical Read Workflow

1. List campaigns.
2. Pick a `campaignId`.
3. List ad groups for that campaign.
4. Pull [keyword reports](/docs/apple-search-ads-reports#keyword-performance-report) or [search terms](/docs/apple-search-ads-reports#search-terms-report).
5. Decide whether to update bids, statuses, targeting keywords, or negative keywords.

***

## Related Docs

* [Targeting Keywords](/docs/apple-search-ads-keywords)
* [Negative Keywords](/docs/apple-search-ads-negative-keywords)
* [Reports](/docs/apple-search-ads-reports)
