> ## 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.

# Negative Keywords

> Manage campaign-level and ad-group-level Apple Search Ads negative keywords

Negative keywords prevent ads from showing on unwanted searches. They are one of the safest ways to control spend when Search Match or broad keywords pull in irrelevant traffic.

Apple Search Ads supports negative keywords at two levels:

| Level                      | Scope                          |
| -------------------------- | ------------------------------ |
| Campaign negative keywords | Apply across the campaign      |
| Ad group negative keywords | Apply only inside one ad group |

***

## Campaign Negative Keywords

### List

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

### Find

```bash curl theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl -X POST "https://api.appeeky.com/v1/connect/apple-ads/campaigns/2143596801/negativekeywords/find" \
  -H "X-API-Key: YOUR_APPEEKY_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "conditions": [
      {
        "field": "text",
        "operator": "CONTAINS",
        "values": ["free"]
      }
    ],
    "pagination": {
      "offset": 0,
      "limit": 50
    }
  }'
```

### Create

```bash curl theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl -X POST "https://api.appeeky.com/v1/connect/apple-ads/campaigns/2143596801/negativekeywords/bulk" \
  -H "X-API-Key: YOUR_APPEEKY_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "keywords": [
      { "text": "free", "matchType": "BROAD" },
      { "text": "template", "matchType": "EXACT" }
    ]
  }'
```

### Update

```bash curl theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl -X PUT "https://api.appeeky.com/v1/connect/apple-ads/campaigns/2143596801/negativekeywords/bulk" \
  -H "X-API-Key: YOUR_APPEEKY_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "keywords": [
      { "id": 2251741048, "text": "free app", "matchType": "BROAD" }
    ]
  }'
```

### Delete

```bash curl theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl -X POST "https://api.appeeky.com/v1/connect/apple-ads/campaigns/2143596801/negativekeywords/delete" \
  -H "X-API-Key: YOUR_APPEEKY_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "keywordIds": [2251741048]
  }'
```

***

## Ad Group Negative Keywords

Ad group negative endpoints use the same body shapes but include `adGroupId` in the path.

### List

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

### Create

```bash curl theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl -X POST "https://api.appeeky.com/v1/connect/apple-ads/campaigns/2143596801/adgroups/2147258884/negativekeywords/bulk" \
  -H "X-API-Key: YOUR_APPEEKY_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "keywords": [
      { "text": "free", "matchType": "BROAD" }
    ]
  }'
```

Other ad group negative endpoints:

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
POST /campaigns/:campaignId/adgroups/:adGroupId/negativekeywords/find
PUT /campaigns/:campaignId/adgroups/:adGroupId/negativekeywords/bulk
POST /campaigns/:campaignId/adgroups/:adGroupId/negativekeywords/delete
```

***

## When to Use Campaign vs Ad Group Negatives

| Situation                                          | Recommended level |
| -------------------------------------------------- | ----------------- |
| Query is irrelevant for the whole app              | Campaign          |
| Query is irrelevant only for one theme or audience | Ad group          |
| Search Match is finding unrelated traffic          | Campaign first    |
| Broad keyword pulls mixed traffic                  | Ad group first    |

***

## Practical ASO Use

Use [Search Terms Reports](/docs/apple-search-ads-reports#search-terms-report) to find waste:

* High impressions, low taps
* Taps but no installs
* Queries unrelated to the app's value prop
* Queries that imply a free product when your app is paid
* Brand terms for competitors you do not want to target

Then add negative keywords to reduce spend and keep exploration focused.
