---
title: "Update campaign"
type: reference
method: POST
path: /rest-api/campaign/{campaignId}/update.do
tag: "Campaigns"
---

# Update campaign

`POST https://YOUR-NETWORK-DOMAIN/rest-api/campaign/{campaignId}/update.do`

Updates the campaign with the given ID using form parameters. Only provided fields are changed; omitted fields retain their current values. Supports updating name, description, active status, weight, optimization settings (CTR, CPA, eCPM), autolinking, labels, priority, and self-serve campaign type. Activating or deactivating a campaign triggers the corresponding event notification. Fields the console's campaign card shows only with a permission are applied only with it enabled: weight (MANAGE_CAMPAIGN_WEIGHT), priority (MANAGE_PRIORITY), ctrOptimization (SET_CTR_OPTIMIZATION), cpaOptimization and cpaOptimizationActions (SET_CPA_OPTIMIZATION), ecpmOptimization (SET_ECPM_OPTIMIZATION), exchangeRate and allowImpressionAndClicksPricingUrlOverriding (EVENT_TRACKING_PRICE_OVERRIDING), selfServeCampaignType (SELF_SERVE_CAMPAIGN_TYPES), onlyOneBannerPerPage (SET_DONT_SHOW_BANNERS_OF_ONE_CAMPAIGN_ON_SAME_PAGE), onlyThisCampaignOnPage (SET_SHOW_BANNERS_OF_ONE_CAMPAIGN_ON_SAME_PAGE), showBannersOfOneCampaignAtTheSamePageAlias (SET_SHOW_BANNERS_OF_ONE_CAMPAIGN_ON_SAME_PAGE_ALIAS), campaignAliasForActionTracking (SET_CAMPAIGN_ALIAS_FOR_ACTION_TRACKING), allowNewPlacementsAutolinking and autolinkCategories (AUTO_LINKING_SETTINGS), allowUseForTemplate and targetTemplateName (TARGETING_TEMPLATE), labels and labelUpdateType (CAMPAIGN_LABELS), and enableActions, allowActionPricingUrlOverriding and maxActionPriceOverride (MANAGE_ACTION_TRACKING). Without the permission the field keeps its value and the rest of the request is saved. Parameters that were sent but not applied are listed in 'ignoredFields', each with its reason in 'ignoredFieldReasons'.

## Path params

| Name | Type | Required | Example | Description |
|---|---|---|---|---|
| `campaignId` | integer | yes | `2001` | Unique identifier of the campaign to update |

## Form params

| Name | Type | Required | Example | Description |
|---|---|---|---|---|
| `autolinkCategories` | array<integer> | no | `5` | IDs of the publisher categories whose new placements the campaign auto-links to, comma-separated or repeated — with none set, only banners carrying auto-link labels link, by label |
| `active` | boolean | no | `true` | Whether the campaign is active and serving ads |
| `allowActionPricingUrlOverriding` | boolean | no | `true` | Allow overriding action pricing URLs at the campaign level |
| `allowImpressionAndClicksPricingUrlOverriding` | boolean | no | `true` | Allow overriding impression and click pricing URLs |
| `allowNewPlacementsAutolinking` | boolean | no | `true` | When true, newly created placements matching the campaign's categories are automatically linked |
| `allowUseForTemplate` | boolean | no | `true` | Whether this campaign can be used as a template |
| `autoTagLandingUrl` | boolean | no | `true` | Whether the click redirect appends the click id to the landing page, so the macro does not have to be pasted into every creative. Off by default - it rewrites a URL the advertiser owns |
| `campaignAliasForActionTracking` | string | no | `summer-sale` | Custom alias for action tracking attribution, up to 64 characters |
| `cpaOptimization` | boolean | no | `true` | Enable CPA-based optimization for banner delivery |
| `cpaOptimizationActions` | array<integer> | no | `12` | Set of actions used for CPA optimization — IDs of the action entities, comma-separated or as repeated parameters |
| `ctrOptimization` | boolean | no | `true` | Enable CTR-based optimization for banner delivery |
| `description` | string | no | `Q3 promotion for returning mobile users` | Campaign description text |
| `ecpmOptimization` | boolean | no | `true` | Enable eCPM-based optimization for banner delivery |
| `enableActions` | boolean | no | `true` | Enable conversion action tracking for this campaign |
| `exchangeRate` | number | no | `1.0` | Currency conversion multiplier from campaign currency to the network's base currency (range 0.001–999.999) |
| `labelUpdateType` | string | no | `ADD` | How labels are applied. Allowed values: add (append), overwrite (replace all existing), remove (delete specified), clear (remove all) |
| `labels` | array<string> | no | `Q3 Retargeting` | Label names to associate with this campaign |
| `maxActionPriceOverride` | number | no | `50` | Upper bound, in campaign currency, on the conversion payout a tracking URL may set. A higher payout is clamped to this value and the conversion is still counted. Omit to keep the current bound, send it empty to remove it (0 is a bound of 0); 0 to 9999999.9999; only consulted when allowActionPricingUrlOverriding is enabled |
| `name` | string | no | `Summer 2025 Campaign` | Campaign display name, up to 512 characters, never blank. Left out on create, the campaign is named "Campaign <id>". |
| `onlyOneBannerPerPage` | boolean | no | `true` | Restrict delivery to one banner per page view |
| `onlyThisCampaignOnPage` | boolean | no | `true` | Restrict page to show only banners from this campaign |
| `priority` | string | no | `STANDARD_MEDIUM` | Delivery priority level for this campaign. Allowed values: STANDARD_HIGH, STANDARD_MEDIUM, STANDARD_LOW, PREMIUM, NON_GUARANTEED, HOUSE_ADS |
| `selfServeCampaignType` | string | no | `BANNER_DESKTOP` | Self-serve campaign type classification |
| `showBannersOfOneCampaignAtTheSamePageAlias` | string | no | `summer-sale` | Alias used for one-campaign-per-page restriction, up to 64 characters |
| `targetTemplateName` | string | no | `Mobile US targeting` | Name of the targeting template to apply, up to 50 characters |
| `weight` | integer | no | `50` | Relative delivery weight (0-32767) for weighted rotation |

## Responses

- `200` — Campaign updated successfully
- `400` — Bad request — invalid or missing parameters
- `401` — Authentication error
- `403` — Insufficient privileges to update campaign
- `404` — Campaign not found

## Example request

```bash
curl --request POST \
  --url 'https://YOUR-NETWORK-DOMAIN/rest-api/campaign/2001/update.do' \
  --header 'X-Api-Key: YOUR_API_KEY' \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'name=Summer 2025 Campaign' \
  --data-urlencode 'autolinkCategories=5' \
  --data-urlencode 'campaignAliasForActionTracking=summer-sale'
```

Source: https://epom.com/ad-server/docs/api/campaigns/post-campaign-update