---
title: "POST /v4/advertisers/{+advertiserId}/campaigns"
method: POST
path: "/v4/advertisers/{+advertiserId}/campaigns"
tags: ["advertisers"]
---

# POST /v4/advertisers/{+advertiserId}/campaigns

`POST /v4/advertisers/{+advertiserId}/campaigns`

## Request

- Base URL: `https://displayvideo.googleapis.com`
- URL: `https://displayvideo.googleapis.com/v4/advertisers/{+advertiserId}/campaigns`
- Auth: one of:
  - OAuth 2 (implicit, authorization URL `https://accounts.google.com/o/oauth2/auth`, scopes: `https://www.googleapis.com/auth/display-video`) and OAuth 2 (authorization code, authorization URL `https://accounts.google.com/o/oauth2/auth`, token URL `https://accounts.google.com/o/oauth2/token`, scopes: `https://www.googleapis.com/auth/display-video`)
  - OAuth 2 (implicit, authorization URL `https://accounts.google.com/o/oauth2/auth`, scopes: `https://www.googleapis.com/auth/display-video-mediaplanning`) and OAuth 2 (authorization code, authorization URL `https://accounts.google.com/o/oauth2/auth`, token URL `https://accounts.google.com/o/oauth2/token`, scopes: `https://www.googleapis.com/auth/display-video-mediaplanning`)

Creates a new campaign. Returns the newly created campaign if successful.

## Path parameters

- `advertiserId` string, required

## Request body

- Campaign: A single campaign.
  - `advertiserId` string, int64: Output only. The unique ID of the advertiser the campaign belongs to.
  - `campaignBudgets` CampaignBudget[]: The list of budgets available to this campaign. If this field is not set, the campaign uses an unlimited budget.
    - `budgetAmountMicros` string, int64: Required. The total amount the linked insertion order segments can budget. The amount is in micros. Must be greater than 0. For example, 500000000 represents 500 standard units of the currency.
    - `budgetId` string, int64: The unique ID of the campaign budget. Assigned by the system. Do not set for new budgets. Must be included when updating or adding budgets to campaign_budgets. Otherwise, a new ID will be generated and assigned.
    - `budgetUnit` 'BUDGET_UNIT_UNSPECIFIED' | 'BUDGET_UNIT_CURRENCY' | 'BUDGET_UNIT_IMPRESSIONS': Required. Immutable. Specifies whether the budget is measured in currency or impressions.
    - `dateRange` DateRange: A date range.
      - `endDate` Date: Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
        - `day` integer: Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `month` integer: Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
        - `year` integer: Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
      - `startDate` Date: Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
        - `day` integer: Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `month` integer: Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
        - `year` integer: Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
    - `displayName` string: Required. The display name of the budget. Must be UTF-8 encoded with a maximum size of 240 bytes.
    - `externalBudgetId` string: Immutable. The ID identifying this budget to the external source. If this field is set and the invoice detail level of the corresponding billing profile is set to "Budget level PO", all impressions served against this budget will include this ID on the invoice. Must be unique under the campaign.
    - `externalBudgetSource` 'EXTERNAL_BUDGET_SOURCE_UNSPECIFIED' | 'EXTERNAL_BUDGET_SOURCE_NONE' | 'EXTERNAL_BUDGET_SOURCE_MEDIA_OCEAN': Required. The external source of the budget.
    - `invoiceGroupingId` string: Immutable. The ID used to group budgets to be included the same invoice. If this field is set and the invoice level of the corresponding billing profile is set to "Budget invoice grouping ID", all external_budget_id sharing the same invoice_grouping_id will be grouped in the same invoice.
    - `prismaConfig` PrismaConfig: Settings specific to the Mediaocean Prisma tool.
      - `prismaCpeCode` PrismaCpeCode: Google Payments Center supports searching and filtering on the component fields of this code.
        - `prismaClientCode` string: The Prisma client code.
        - `prismaEstimateCode` string: The Prisma estimate code.
        - `prismaProductCode` string: The Prisma product code.
      - `prismaType` 'PRISMA_TYPE_UNSPECIFIED' | 'PRISMA_TYPE_DISPLAY' | 'PRISMA_TYPE_SEARCH' | 'PRISMA_TYPE_VIDEO' | 'PRISMA_TYPE_AUDIO' | 'PRISMA_TYPE_SOCIAL' | 'PRISMA_TYPE_FEE': Required. The Prisma type.
      - `supplier` string: Required. The entity allocated this budget (DSP, site, etc.).
  - `campaignFlight` CampaignFlight: Settings that track the planned spend and duration of a campaign.
    - `plannedDates` DateRange: A date range.
      - `endDate` Date: Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
        - `day` integer: Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `month` integer: Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
        - `year` integer: Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
      - `startDate` Date: Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
        - `day` integer: Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
        - `month` integer: Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
        - `year` integer: Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
    - `plannedSpendAmountMicros` string, int64: The amount the campaign is expected to spend for its given planned_dates. This will not limit serving, but will be used for tracking spend in the DV360 UI. The amount is in micros. Must be greater than or equal to 0. For example, 500000000 represents 500 standard units of the currency.
  - `campaignGoal` CampaignGoal: Settings that control the goal of a campaign.
    - `campaignGoalType` 'CAMPAIGN_GOAL_TYPE_UNSPECIFIED' | 'CAMPAIGN_GOAL_TYPE_APP_INSTALL' | 'CAMPAIGN_GOAL_TYPE_BRAND_AWARENESS' | 'CAMPAIGN_GOAL_TYPE_OFFLINE_ACTION' | 'CAMPAIGN_GOAL_TYPE_ONLINE_ACTION': Required. The type of the campaign goal.
    - `performanceGoal` PerformanceGoal: Settings that control the performance goal of a campaign.
      - `performanceGoalAmountMicros` string, int64: The goal amount, in micros of the advertiser's currency. Applicable when performance_goal_type is one of: * `PERFORMANCE_GOAL_TYPE_CPM` * `PERFORMANCE_GOAL_TYPE_CPC` * `PERFORMANCE_GOAL_TYPE_CPA` * `PERFORMANCE_GOAL_TYPE_CPIAVC` * `PERFORMANCE_GOAL_TYPE_VCPM` For example 1500000 represents 1.5 standard units of the currency.
      - `performanceGoalPercentageMicros` string, int64: The decimal representation of the goal percentage in micros. Applicable when performance_goal_type is one of: * `PERFORMANCE_GOAL_TYPE_CTR` * `PERFORMANCE_GOAL_TYPE_VIEWABILITY` * `PERFORMANCE_GOAL_TYPE_CLICK_CVR` * `PERFORMANCE_GOAL_TYPE_IMPRESSION_CVR` * `PERFORMANCE_GOAL_TYPE_VTR` * `PERFORMANCE_GOAL_TYPE_AUDIO_COMPLETION_RATE` * `PERFORMANCE_GOAL_TYPE_VIDEO_COMPLETION_RATE` For example, 70000 represents 7% (decimal 0.07).
      - `performanceGoalString` string: A key performance indicator (KPI) string, which can be empty. Must be UTF-8 encoded with a length of no more than 100 characters. Applicable when performance_goal_type is set to `PERFORMANCE_GOAL_TYPE_OTHER`.
      - `performanceGoalType` 'PERFORMANCE_GOAL_TYPE_UNSPECIFIED' | 'PERFORMANCE_GOAL_TYPE_CPM' | 'PERFORMANCE_GOAL_TYPE_CPC' | 'PERFORMANCE_GOAL_TYPE_CPA' | 'PERFORMANCE_GOAL_TYPE_CTR' | 'PERFORMANCE_GOAL_TYPE_VIEWABILITY' | 'PERFORMANCE_GOAL_TYPE_CPIAVC' | 'PERFORMANCE_GOAL_TYPE_CPE' | 'PERFORMANCE_GOAL_TYPE_CPV' | 'PERFORMANCE_GOAL_TYPE_CLICK_CVR' | 'PERFORMANCE_GOAL_TYPE_IMPRESSION_CVR' | 'PERFORMANCE_GOAL_TYPE_VCPM' | 'PERFORMANCE_GOAL_TYPE_VTR' | 'PERFORMANCE_GOAL_TYPE_AUDIO_COMPLETION_RATE' | 'PERFORMANCE_GOAL_TYPE_VIDEO_COMPLETION_RATE' | 'PERFORMANCE_GOAL_TYPE_OTHER': Required. The type of the performance goal.
  - `campaignId` string, int64: Output only. The unique ID of the campaign. Assigned by the system.
  - `displayName` string: Required. The display name of the campaign. Must be UTF-8 encoded with a maximum size of 240 bytes.
  - `entityStatus` 'ENTITY_STATUS_UNSPECIFIED' | 'ENTITY_STATUS_ACTIVE' | 'ENTITY_STATUS_ARCHIVED' | 'ENTITY_STATUS_DRAFT' | 'ENTITY_STATUS_PAUSED' | 'ENTITY_STATUS_SCHEDULED_FOR_DELETION': Required. Controls whether or not the insertion orders under this campaign can spend their budgets and bid on inventory. * Accepted values are `ENTITY_STATUS_ACTIVE`, `ENTITY_STATUS_ARCHIVED`, and `ENTITY_STATUS_PAUSED`. * For CreateCampaign method, `ENTITY_STATUS_ARCHIVED` is not allowed.
  - `frequencyCap` FrequencyCap: Settings that control the number of times a user may be shown with the same ad during a given time period.
    - `maxImpressions` integer: The maximum number of times a user may be shown the same ad during this period. Must be greater than 0. Required when unlimited is `false` and max_views is not set.
    - `maxViews` integer: Optional. The maximum number of times a user may click-through or fully view an ad during this period until it is no longer served to them. Must be greater than 0. Only applicable to YouTube and Partners resources. Required when unlimited is `false` and max_impressions is not set.
    - `timeUnit` 'TIME_UNIT_UNSPECIFIED' | 'TIME_UNIT_LIFETIME' | 'TIME_UNIT_MONTHS' | 'TIME_UNIT_WEEKS' | 'TIME_UNIT_DAYS' | 'TIME_UNIT_HOURS' | 'TIME_UNIT_MINUTES': The time unit in which the frequency cap will be applied. Required when unlimited is `false`.
    - `timeUnitCount` integer: The number of time_unit the frequency cap will last. Required when unlimited is `false`. The following restrictions apply based on the value of time_unit: * `TIME_UNIT_MONTHS` - must be 1 * `TIME_UNIT_WEEKS` - must be between 1 and 4 * `TIME_UNIT_DAYS` - must be between 1 and 6 * `TIME_UNIT_HOURS` - must be between 1 and 23 * `TIME_UNIT_MINUTES` - must be between 1 and 59
    - `unlimited` boolean: Whether unlimited frequency capping is applied. When this field is set to `true`, the remaining frequency cap fields are not applicable.
  - `name` string: Output only. The resource name of the campaign.
  - `updateTime` string, google-datetime: Output only. The timestamp when the campaign was last updated. Assigned by the system.

## Response `200`

Successful response

## Changes

- **2026-10-21** `6329126f9fb6`: 4 info
  - the security scope `https://www.googleapis.com/auth/display-video` was added to the endpoint's security scheme `Oauth2`
  - the security scope `https://www.googleapis.com/auth/display-video` was added to the endpoint's security scheme `Oauth2c`
  - the security scope `https://www.googleapis.com/auth/display-video-mediaplanning` was removed from the endpoint's security scheme `Oauth2`
  - the security scope `https://www.googleapis.com/auth/display-video-mediaplanning` was removed from the endpoint's security scheme `Oauth2c`
- **2026-10-20** `583e0cff0ab9`: 4 info
  - the security scope `https://www.googleapis.com/auth/display-video` was added to the endpoint's security scheme `Oauth2`
  - the security scope `https://www.googleapis.com/auth/display-video` was added to the endpoint's security scheme `Oauth2c`
  - the security scope `https://www.googleapis.com/auth/display-video-mediaplanning` was removed from the endpoint's security scheme `Oauth2`
  - the security scope `https://www.googleapis.com/auth/display-video-mediaplanning` was removed from the endpoint's security scheme `Oauth2c`
- …earlier changes not shown

[Operation history](https://skmtc.dev/google/apis/displayvideo/changes/v4/advertisers/:advertiserId/campaigns/post.md)

---

[API](https://skmtc.dev/google/apis/displayvideo.md) - [All operations](https://skmtc.dev/google/apis/displayvideo/llms.txt) - [OpenAPI document](https://skmtc.dev/google/apis/displayvideo/revisions/6329126f9fb6?raw)
