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

# Update advertiser Seller preference

> Set Inherit, On, or Off for one advertiser and one exact Seller

`PUT /api/v2/buyer/storefronts/{storefrontId}/advertisers/{advertiserId}/activation-preference`

Sets whether one advertiser inherits, uses, or does not use one exact Seller.
The caller must have the `ADMIN` or `SUPER_ADMIN` account role, and the
advertiser must belong to the authenticated buyer account.

## Availability

Advertiser-level Seller preferences are available to every buyer account. If
the platform cannot confirm that they are on for your account, for example
during a brief service disruption, this operation and the `save_connection`
`advertiserActivation` intent return `403 ACCESS_DENIED` with the message
`Advertiser-scoped seller activation is not enabled`. Retry the request later.
Account-wide [Seller selection](/v2/buyer/storefronts/tasks/update-selection-override)
still works in the meantime, but it applies to every advertiser in the account.

## Scope boundary

Use this operation while managing one advertiser. It changes only the edge
between that advertiser and the selected Seller. To change Seller selection
for every current and future advertiser in the buyer account, use
[Update Seller selection](/v2/buyer/storefronts/tasks/update-selection-override)
instead.

## Decisions

* `DEFAULT` removes the explicit preference and inherits account selection and
  automatic market/channel matching.
* `ENABLED` uses the Seller for this advertiser only.
* `DISABLED` does not use the Seller for this advertiser only.

Hard marketplace and transaction ineligibility always wins. Account-wide
`ALWAYS_INCLUDE` and `ALWAYS_EXCLUDE` selection also remains authoritative; a
stored advertiser preference takes effect when account selection is `DEFAULT`.
This operation does not create or remove an authorization grant and does not
change billing or data-sharing permission.

## Request

```bash theme={null}
curl -X PUT \
  "https://api.apostra.com/api/v2/buyer/storefronts/42/advertisers/84/activation-preference" \
  -H "Authorization: Bearer $SCOPE3_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "decision": "DISABLED"
  }'
```

## Parameters

| Field | In | Type | Required | Notes |
| - | - | - | - | - |
| `storefrontId` | path | positive integer | Yes | Exact Seller/Storefront ID |
| `advertiserId` | path | positive integer | Yes | Advertiser owned by the buyer account |
| `decision` | body | enum | Yes | `DEFAULT`, `ENABLED`, or `DISABLED` |

## Response

```json theme={null}
{
  "buyerCustomerId": 123,
  "advertiserId": "84",
  "storefrontId": "42",
  "decision": "DISABLED"
}
```

## Public V3 equivalent

Call `save_connection` with one advertiser activation intent:

```json theme={null}
{
  "sellerId": "42",
  "advertiserActivation": {
    "advertiserId": "84",
    "decision": "DISABLED"
  }
}
```

The `selection` and `advertiserActivation` intents are mutually exclusive.

## Errors

* `400 VALIDATION_ERROR` — an ID or decision is invalid.
* `401 UNAUTHORIZED` — the bearer token is missing or invalid.
* `403 ACCESS_DENIED` — the caller is not an administrator, the advertiser
  does not belong to this buyer account, or advertiser-level Seller
  preferences are not yet enabled for this account (see Availability).
* `404 NOT_FOUND` — the Seller does not exist.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.