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

# Create Insertion Order

> Creates a DV360 insertion order under a campaign with optimization objective, KPI, pacing, budget segments, and frequency cap

Creates a DV360 insertion order under a campaign with optimization objective, KPI, pacing, budget segments, and frequency cap. Amounts are entered in the advertiser's currency and converted to DV360 micros automatically. The API creates insertion orders as drafts; activate with dv360\_update\_insertion\_order\_status.

|                       |                                |
| --------------------- | ------------------------------ |
| **App**               | DV360                          |
| **Operation ID**      | `dv360_create_insertion_order` |
| **Type**              | Action                         |
| **Connection**        | `dv360` (required)             |
| **Credits per run**   | 2                              |
| **Agent / MCP tool**  | Yes                            |
| **Requires approval** | Yes (write operation)          |

## Inputs

| Field                           | Type                                          | Required | Default                                          | Description                                                                                                                                                                                                                                                                                                                                                                         |
| ------------------------------- | --------------------------------------------- | -------- | ------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `account`                       | DynamicAccount                                | Yes      | -                                                | Select the DV360 advertiser that owns the campaign.                                                                                                                                                                                                                                                                                                                                 |
| `campaign_id`                   | string or SelectItem                          | Yes      | -                                                | ID of the DV360 campaign the insertion order belongs to.                                                                                                                                                                                                                                                                                                                            |
| `insertion_order_name`          | string                                        | Yes      | -                                                | Display name of the insertion order. Max 240 bytes.                                                                                                                                                                                                                                                                                                                                 |
| `insertion_order_type`          | string or SelectableOption                    | No       | `{'value': 'RTB', 'label': 'Real-time bidding'}` | RTB (real-time bidding, default) or OVER\_THE\_TOP.                                                                                                                                                                                                                                                                                                                                 |
| `optimization_objective`        | string or SelectableOption                    | Yes      | -                                                | What the insertion order optimizes for: CONVERSION (sales and conversions), CLICK (traffic to websites and apps), BRAND\_AWARENESS (impressions of specific quality), CUSTOM (defined by the assigned custom bidding algorithm), or NO\_OBJECTIVE (any KPI or bidding strategy can be used).                                                                                        |
| `kpi_type`                      | string or SelectableOption                    | Yes      | -                                                | KPI metric. Money KPIs (use kpi\_amount): CPM, CPC, CPA, CPIAVC, CPE, CPV, VCPM, CPCL, CPCV. Percentage KPIs (use kpi\_percentage): CTR, VIEWABILITY, CLICK\_CVR, IMPRESSION\_CVR, VTR, AUDIO\_COMPLETION\_RATE, VIDEO\_COMPLETION\_RATE, TOS10. OTHER uses kpi\_string. CUSTOM\_IMPRESSION\_VALUE\_OVER\_COST requires kpi\_algorithm\_id. MAXIMIZE\_PACING needs no value.        |
| `kpi_amount`                    | number                                        | No       | -                                                | KPI amount in the advertiser's currency (for example 2.5 for a \$2.50 CPM). Required for money KPIs; converted to DV360 micros automatically.                                                                                                                                                                                                                                       |
| `kpi_percentage`                | number                                        | No       | -                                                | KPI percentage (for example 70 for 70%). Required for percentage KPIs; converted to DV360 percentage micros automatically.                                                                                                                                                                                                                                                          |
| `kpi_string`                    | string                                        | No       | -                                                | KPI description text. Required when kpi\_type is OTHER.                                                                                                                                                                                                                                                                                                                             |
| `kpi_algorithm_id`              | string                                        | No       | -                                                | Custom bidding algorithm ID. Required when kpi\_type is CUSTOM\_IMPRESSION\_VALUE\_OVER\_COST.                                                                                                                                                                                                                                                                                      |
| `pacing_period`                 | string or SelectableOption                    | No       | `{'value': 'DAILY', 'label': 'Daily'}`           | Budget spending window: DAILY (default) or FLIGHT (spread over the budget segment flight).                                                                                                                                                                                                                                                                                          |
| `pacing_type`                   | string or SelectableOption                    | No       | `{'value': 'EVEN', 'label': 'Even'}`             | Spending speed: EVEN (default), AHEAD (flight pacing only), or ASAP (with daily pacing, requires daily\_max\_spend).                                                                                                                                                                                                                                                                |
| `daily_max_spend`               | number                                        | No       | -                                                | Daily maximum spend in the advertiser's currency; converted to micros automatically. With daily pacing, provide this or daily\_max\_impressions, not both.                                                                                                                                                                                                                          |
| `daily_max_impressions`         | integer                                       | No       | -                                                | Daily maximum impressions. With daily pacing, provide this or daily\_max\_spend, not both.                                                                                                                                                                                                                                                                                          |
| `automation_type`               | string or SelectableOption                    | No       | `{'value': 'NONE', 'label': 'None'}`             | Insertion order automation: NONE (default, no automation), BUDGET (automatic budget allocation across line items), or BID\_BUDGET (automatic bid and budget optimization).                                                                                                                                                                                                          |
| `budget_segments`               | array (also accepts a comma-separated string) | Yes      | -                                                | The insertion order's budget segments in the advertiser's currency, as a list of up to 20 rows. Each row requires budget\_amount (currency, converted to micros automatically), start\_date and end\_date (YYYY-MM-DD), and an optional description. Example row: \{"budget\_amount": 5000, "start\_date": "2026-08-01", "end\_date": "2026-08-31", "description": "August budget"} |
| `unlimited_frequency_cap`       | boolean                                       | No       | `True`                                           | When true (default), no insertion-order frequency cap. Set false to cap impressions per user with the frequency\_cap\_\* fields.                                                                                                                                                                                                                                                    |
| `frequency_cap_max_impressions` | integer                                       | No       | -                                                | Maximum impressions per user for the chosen time window. Required when unlimited\_frequency\_cap is false.                                                                                                                                                                                                                                                                          |
| `frequency_cap_time_unit`       | string or SelectableOption                    | No       | -                                                | Frequency cap window unit: LIFETIME, MONTHS, WEEKS, DAYS, HOURS, or MINUTES. Required when unlimited\_frequency\_cap is false.                                                                                                                                                                                                                                                      |
| `frequency_cap_time_unit_count` | integer                                       | No       | -                                                | How many time units the window lasts. Required when unlimited\_frequency\_cap is false, except for LIFETIME.                                                                                                                                                                                                                                                                        |

### SelectItem

| Field   | Type   | Required | Default | Description                                                                                          |
| ------- | ------ | -------- | ------- | ---------------------------------------------------------------------------------------------------- |
| `value` | string | Yes      | -       | The value of the selectable item.                                                                    |
| `label` | string | Yes      | -       | The label of the selectable item, used for display purposes. If not provided, defaults to the value. |

### SelectableOption

| Field   | Type   | Required | Default | Description |
| ------- | ------ | -------- | ------- | ----------- |
| `value` | string | Yes      | -       |             |
| `label` | string | Yes      | -       |             |

## Output

**Type**: `Dict`

Returns the created DV360 insertion order details.

**Fields**: `insertion_order_id`, `insertion_order_name`, `entity_status`, `campaign_id`, `advertiser_id`, `insertion_order`
