---
updatedAt: 2026-06-28T20:00:39.000Z
---

Fetch the complete documentation index at: https://developers.taboola.com/backstage-api/llms.txt. Use this file to discover all available pages before exploring further. Append .md to any documentation page URL to get its markdown version.

# Publisher Targeting (Blocking)

## Overview

You can block publishers at the *campaign* level - *this* topic describes some typical flows.

<Callout icon="📘" theme="info">
  You can also block publishers at the _account_ level (i.e. for _all_ campaigns). See: [Account Level Blocking](https://developers.taboola.com/backstage-api/docs/block-publishers-at-the-account-level).
</Callout>

## Flow

### *Update* Targeting

1. Use the [campaigns](https://developers.taboola.com/backstage-api/reference/update-a-campaign) endpoint to *update* the [publisher\_targeting](https://developers.taboola.com/backstage-api/docs/campaign-publisher-targeting) field:

```http Request URL (campaigns)
POST /backstage/api/1.0/demo-advertiser/campaigns/1234
```
```json Request Object (apply suppressions)
{
   "publisher_targeting": {
      "type": "EXCLUDE",
      "value": [
         "demo-publisher-1",
         "demo-publisher-2",
         "demo-publisher-3"
      ]
   }
}
```

> 📘 Publisher Networks
>
> * Blocking of publisher *networks* is not supported via the API.
> * When you apply *campaign-level* publisher targeting, the API will *first* strip out any network ids - and *then* suppress the *remaining* publisher ids.
> * If you need to block a publisher *network*, reach out to your Taboola Account Manager.

> 📘
>
> Publisher targeting supports EXCLUDE (*suppression*) only. The INCLUDE operation is *not* supported.

2. In the updated Campaign Object, the `value` property stores the targeted collection:

```json Response Object (apply supressions)
{
   // other Campaign fields...
   "publisher_targeting": {
      "type": "EXCLUDE",
      "value": [
         "demo-publisher-1",
         "demo-publisher-2",
         "demo-publisher-3"
      ],
      "href": null
   }
}
```

> 📘 Blocked at both levels
>
> * Publishers blocked at *both* the campaign *and* account levels, show at the account level *only*. (They are *not* returned by the `campaigns` endpoint.)
> * The same holds true for a *network* blocked at the *account* level. *Campaign-level* blocks (for *any* publishers under that network) are *not* returned by the `campaigns` endpoint.
> * Blocking of publisher *networks* is not supported via the API. (If do you need to block a publisher network, please reach out to your Taboola Account Manager.)

### *Remove* Targeting (Target ALL)

1. Use the [campaigns](https://developers.taboola.com/backstage-api/reference/update-a-campaign) endpoint to submit a `type` property of "ALL":

```http Request URL (campaigns)
POST /backstage/api/1.0/demo-advertiser/campaigns/1234
```
```json Request Object (remove all suppressions)
{
   "publisher_targeting": {
      "type": "ALL"
   }
}
```

2. In the updated Campaign Object, the `value` property is now an empty collection:

```json Response Object (Target ALL)
{
   // other Campaign fields...
   "publisher_targeting": {
      "type": "ALL",
      "value": [],
      "href": null
   }
}
```

> 📘 For the `publisher_targeting` field, `href` is always `null`.

### *Patch* Targeting

An *update* operation (above) *overwrites* any existing targeting. You can also *patch* the existing targeting (*without* re-submitting the entire collection). See: [Patching Targeted Publishers](https://developers.taboola.com/backstage-api/docs/patching-targeted-publishers).