---
title: "Create a new broadcast ad"
method: POST
path: "/measurement/campaigns/{campaign_id}/broadcast_ads"
tags: ["Broadcast ads"]
---

# Create a new broadcast ad

`POST /measurement/campaigns/{campaign_id}/broadcast_ads`

Generates a tag to be fired when the broadcast exposure occurs. Ads are part of a Campaign. If an ad with the provided `orderIds` already exists within the same campaign, the existing ad is returned rather than creating a new one.

## Path parameters

- `campaign_id` string, required

## Request body

- object — Provide the ad payload under `measurementBroadcastAd`. The `measurementDynamicAd` key is accepted for backwards compatibility but deprecated.
  - `measurementBroadcastAd` BroadcastAdCreateAttributes
    - `name` string, required — The name of the ad.
    - `uid` string — The unique identifier for the ad.
    - `defaultAdServer` 'acast' | 'adarcade' | 'adswizz' | 'amperwave' | 'art19' | 'audioboom' | 'audiohook' | 'audiomeans' | 'barstool' | 'basis' | 'beeswax' | 'beeswax_pod' | 'beeswax_stream' | 'dax' | 'dovetail' | 'dv_360' | 'frequency_ads' | 'gam' | 'gt_impression' | 'iheart_pd' | 'iheart_stream' | 'mediamath' | 'megaphone' | 'omny' | 'podbean' | 'redcircle' | 'sas' | 'simplecast' | 'soundcast' | 'soundstack' | 'spgam' | 'spotify' | 'spreaker' | 'tap' | 'transistor' | 'triton' | 'triton_pd' | 'triton_streaming' | 'ttd' | 'xandr' | 'xandr_pod' | 'xandr_stream'
    - `orderIds` integer[], required — The Salesforce order ID(s) for this ad. Must be provided as an array; only the first value will be processed.
    - `source` 'national' | 'market', required
  - `measurementDynamicAd` BroadcastAdCreateAttributes
    - `name` string, required — The name of the ad.
    - `uid` string — The unique identifier for the ad.
    - `defaultAdServer` 'acast' | 'adarcade' | 'adswizz' | 'amperwave' | 'art19' | 'audioboom' | 'audiohook' | 'audiomeans' | 'barstool' | 'basis' | 'beeswax' | 'beeswax_pod' | 'beeswax_stream' | 'dax' | 'dovetail' | 'dv_360' | 'frequency_ads' | 'gam' | 'gt_impression' | 'iheart_pd' | 'iheart_stream' | 'mediamath' | 'megaphone' | 'omny' | 'podbean' | 'redcircle' | 'sas' | 'simplecast' | 'soundcast' | 'soundstack' | 'spgam' | 'spotify' | 'spreaker' | 'tap' | 'transistor' | 'triton' | 'triton_pd' | 'triton_streaming' | 'ttd' | 'xandr' | 'xandr_pod' | 'xandr_stream'
    - `orderIds` integer[], required — The Salesforce order ID(s) for this ad. Must be provided as an array; only the first value will be processed.
    - `source` 'national' | 'market', required

## Response `200`

OK — An ad with the provided `orderIds` already exists within this campaign; the existing ad is returned.

- object
  - `measurementBroadcastAd` BroadcastAdResponseBody
    - `id` string
    - `name` string
    - `uid` string
    - `adServer` 'acast' | 'adarcade' | 'adswizz' | 'amperwave' | 'art19' | 'audioboom' | 'audiohook' | 'audiomeans' | 'barstool' | 'basis' | 'beeswax' | 'beeswax_pod' | 'beeswax_stream' | 'dax' | 'dovetail' | 'dv_360' | 'frequency_ads' | 'gam' | 'gt_impression' | 'iheart_pd' | 'iheart_stream' | 'mediamath' | 'megaphone' | 'omny' | 'podbean' | 'redcircle' | 'sas' | 'simplecast' | 'soundcast' | 'soundstack' | 'spgam' | 'spotify' | 'spreaker' | 'tap' | 'transistor' | 'triton' | 'triton_pd' | 'triton_streaming' | 'ttd' | 'xandr' | 'xandr_pod' | 'xandr_stream'
    - `streaming` boolean — Whether this ad is a streaming ad.
    - `campaign` CampaignWithParent
      - `id` string
      - `name` string
      - `startDate` string, date
      - `endDate` string, date
      - `attributionMethodology` 'last_touch' | 'equal_credit'
      - `operativeId` string
      - `salesforceId` string
      - `customEvents` CustomViewEvent[]
        - `id` integer — Magellan AI's ID for the custom view event.
        - `label` string
        - `pattern` string
      - `pixel` Pixel
        - `id` string
        - `name` string
        - `brand` object
          - `crmBrandId` string
          - `name` string
    - `flights` object[]
      - `startDate` string, date, required
      - `endDate` string, date, required
      - `expectedImpressions` integer
      - `impressionCap` integer
      - `cpm` number
      - `costPerSpot` number
      - `uid` string
  - `measurementDynamicAd` BroadcastAdResponseBody
    - `id` string
    - `name` string
    - `uid` string
    - `adServer` 'acast' | 'adarcade' | 'adswizz' | 'amperwave' | 'art19' | 'audioboom' | 'audiohook' | 'audiomeans' | 'barstool' | 'basis' | 'beeswax' | 'beeswax_pod' | 'beeswax_stream' | 'dax' | 'dovetail' | 'dv_360' | 'frequency_ads' | 'gam' | 'gt_impression' | 'iheart_pd' | 'iheart_stream' | 'mediamath' | 'megaphone' | 'omny' | 'podbean' | 'redcircle' | 'sas' | 'simplecast' | 'soundcast' | 'soundstack' | 'spgam' | 'spotify' | 'spreaker' | 'tap' | 'transistor' | 'triton' | 'triton_pd' | 'triton_streaming' | 'ttd' | 'xandr' | 'xandr_pod' | 'xandr_stream'
    - `streaming` boolean — Whether this ad is a streaming ad.
    - `campaign` CampaignWithParent
      - `id` string
      - `name` string
      - `startDate` string, date
      - `endDate` string, date
      - `attributionMethodology` 'last_touch' | 'equal_credit'
      - `operativeId` string
      - `salesforceId` string
      - `customEvents` CustomViewEvent[]
        - `id` integer — Magellan AI's ID for the custom view event.
        - `label` string
        - `pattern` string
      - `pixel` Pixel
        - `id` string
        - `name` string
        - `brand` object
          - `crmBrandId` string
          - `name` string
    - `flights` object[]
      - `startDate` string, date, required
      - `endDate` string, date, required
      - `expectedImpressions` integer
      - `impressionCap` integer
      - `cpm` number
      - `costPerSpot` number
      - `uid` string
  - `notice` string — Runtime deprecation notice for `measurementDynamicAd`. Present on all broadcast-ad responses while the deprecated alias is still returned.

## Other responses

- `201` — Created
- `401` — Unauthorized
- `404` — Not Found
- `422` — Unprocessable Content

---

[API](https://skmtc.net/magellan/apis/magellan-ai-api.md) · [All operations](https://skmtc.net/magellan/apis/magellan-ai-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/magellan/magellan-ai-api/revisions/a5681791212b/schema)
