---
title: "Create campaign"
type: reference
method: POST
path: /rest-api/campaign/create.do
tag: "Campaigns"
---

# Create campaign

`POST https://YOUR-NETWORK-DOMAIN/rest-api/campaign/create.do`

Creates a new campaign under the specified advertiser and returns the created campaign details. The advertiser must exist and not be deleted. If the active status is not provided, the system default activity status is used. Supports all campaign fields including name, optimization settings, autolinking categories, labels, priority, and self-serve type. Sends the campaign-created notification. The response has the same shape as /rest-api/campaign/{campaignId}.do; its status array reads status-not-active until the campaign serves traffic. 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'.

## Form params

| Name | Type | Required | Example | Description |
|---|---|---|---|---|
| `advertiserId` | integer | yes | `1001` | ID of the advertiser under which to create the campaign |
| `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 created successfully
- `400` — Bad request
- `401` — Authentication error
- `403` — Insufficient permissions to create campaign
- `404` — Advertiser not found

## Example request

```bash
curl --request POST \
  --url 'https://YOUR-NETWORK-DOMAIN/rest-api/campaign/create.do' \
  --header 'X-Api-Key: YOUR_API_KEY' \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'advertiserId=1001' \
  --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-create