---
title: "create_native_structure_campaign. Metadata MCP tool reference"
url: https://metadata.io/developers/tools/create_native_structure_campaign
description: "Create a multi-channel campaign using the platform's \"Channel First Structure\" (N×N×N) — the UI also labels it \"Native Structure\" / \"Platform-First Structure\". Writes tool on the Metadata MCP server, with its full JSON Schema."
source: metadata.io
---

# create_native_structure_campaign

Create a multi-channel campaign using the platform's "Channel First Structure" (N×N×N) — the UI also labels it "Native Structure" / "Platform-First Structure".

Writes [campaigns](https://metadata.io/developers/tools/#cat-campaigns)

## What it does

The server's current schema requires `campaignType`, `name`, `startDate`, `endDate`, and `budgetGroup` inside `campaign_data`. Add a channel with valid containers and ad/offer references; `{}` is incomplete.

For Reddit, the schema describes `target_group` targeting and makes `audience` optional. The copied server description below contains an older claim that an audience is required. Use `get_integrations_status` to check connections and `create_reddit_target_group` for Reddit targeting.

**Offer compatibility needs confirmation.** The server description says Lead Gen campaigns require LG offers, but also says Reddit and Google containers require landing-page offers. These statements conflict. Confirm the campaign type and offer pairing in the platform or with [support](https://metadata.io/developers/support) before creating or launching those combinations. The schema alone does not resolve this conflict.

The server description and schema are preserved below. No campaign was created to test this documentation.

## Arguments

| Argument | Type |   | Notes |
|---|---|---|---|
| `campaign_data` | object | required | Complete Channel First / Native Structure (N×N×N) campaign configuration. Each channel takes a `containers` list; each container groups one audience with an `ad_offers` list of {ad, offer} pairs. |

## Request

**Request template, not a complete runnable example.** Replace placeholders, empty objects, arrays, and zero values with valid account-specific inputs. Read required fields and nested constraints in the full schema. Confirm the account, connected channels, and referenced assets before calling a write tool.

## Response

## Related

Other campaigns tools:

- [add_and_edit_campaign_elements](https://metadata.io/developers/tools/add_and_edit_campaign_elements) Destructive
- [add_and_edit_native_campaign_elements](https://metadata.io/developers/tools/add_and_edit_native_campaign_elements) Destructive
- [check_campaign_launch_readiness](https://metadata.io/developers/tools/check_campaign_launch_readiness) Read
- [connect_channel](https://metadata.io/developers/tools/connect_channel) Writes
- [create_budget_group](https://metadata.io/developers/tools/create_budget_group) Writes
- [create_campaign](https://metadata.io/developers/tools/create_campaign) Writes
- [create_update_offer](https://metadata.io/developers/tools/create_update_offer) Destructive
- [disconnect_channel](https://metadata.io/developers/tools/disconnect_channel) Destructive

[Browse the tool catalog](https://metadata.io/developers/tools/) · [machine-readable index](https://metadata.io/developers/tools.json)
