← Realize PluginCONTENT HISTORY
WHAT CHANGED
Update to Realize Plugin
Snapshot Nov 10, 2026 · 00:10 UTC · version 0.5.5
Collection source: downloaded plugin package.
First saved snapshot
No earlier snapshot is available to establish a change.
Save Realize Plugin and check future changes in Following.
Up to 3 plugins free · no card required.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"description": "List and inspect Realize campaigns and their creatives/items. Use after an account_id is resolved.",
"included_files": [],
"name": "campaigns",
"skill_md_contents": "---\nname: campaigns\ndescription: List and inspect Realize campaigns and their creatives/items. Use after an account_id is resolved.\nallowed-tools: [\"Read\", \"AskUserQuestion\"]\n---\n\n# Campaigns\n\nInspection of campaigns and their items (creatives) for a given account using the campaign query tools currently exposed by the MCP.\n\n## Prerequisites\n\n- `account_id` resolved via the `accounts` skill. If missing, hand off there first.\n\n## Related skills\n\n- For **writes** — create or update a campaign or native item — hand off to the [`manage-campaigns`](../manage-campaigns/SKILL.md) skill. This skill stays read-only.\n\n## Tools this skill wraps\n\n| Tool | Required params | Paginated? |\n|---|---|---|\n| `mcp__realize-mcp__list_campaigns` | `account_id` | **Yes** — `page` / `page_size`, **max 10 per page** |\n| `mcp__realize-mcp__get_campaign` | `account_id`, `campaign_id` | — |\n| `mcp__realize-mcp__list_items` | `account_id`, `campaign_id` | **No** — full list in one call |\n| `mcp__realize-mcp__get_item` | `account_id`, `campaign_id`, `item_id` | — |\n\n`list_campaigns` **is paginated and caps at 10 rows per page** — page until a short page before claiming you have every campaign. `list_items` is not paginated: if a campaign has hundreds of items they all come back in one call, so filter or summarize in post-processing. None of these tools accept filter parameters.\n\n**The owning-account rule.** `get_campaign` and `list_items` need the campaign's **owning** account, which is the `advertiser_id` on the campaign row from `list_campaigns` — not necessarily the account you listed from. A NETWORK or parent account can *list* its children's campaigns but rejects campaign- and item-level calls on them (404 and 403 respectively). Always carry `advertiser_id` forward from the listing rather than reusing the account you searched with.\n\n## Typical flows\n\n**\"List my active campaigns.\"**\n1. `list_campaigns(account_id=...)` — then **keep paging until a page returns fewer than `page_size` rows.** The cap is 10 per page, so a single call covers only the smallest accounts; answering from it gives a wrong count and a wrong combined spend, presented as the whole account.\n2. Inspect the `status` field on each campaign and filter in memory to rows with an active/running status (the exact enum comes from the API response — e.g., `RUNNING`). Then summarize: count, combined spend, date range — and state how many campaigns you actually read.\n\n**\"What's the deal with campaign 98765?\"**\n1. `get_campaign(account_id=..., campaign_id=98765)` for configuration and status.\n2. `list_items(account_id=..., campaign_id=98765)` for the creative list.\n3. Summarize: objective, budget, targeting, creative count, any items flagged paused/rejected.\n\n**\"Show me the creatives for my top-spending campaign.\"**\n1. Combine with the `reports` skill: run a campaign-grain dynamic report sorted by spend DESC (`get_dynamic_report_settings` → `get_dynamic_report_data`), pick the top campaign. On a **GROUP or admin-network** account the dynamic tools 403 — use `get_campaign_breakdown_report` (`sort_field=\"spent\"`, `sort_direction=\"DESC\"`) instead; the `reports` skill owns that routing rule.\n2. `list_items(account_id=<the top campaign's `advertiser_id`>, campaign_id=<top>)` and list creatives with IDs, names, status. **Use the campaign's `advertiser_id`, not the account you reported on** — on a NETWORK / parent / GROUP account, passing the reporting account here returns 403.\n\n## Interpretation guidelines\n\n- **Always cite the account in your summary.** Make it obvious which account the numbers are from.\n- **Don't list raw JSON back at the user.** Pull the 3–5 fields that answer their question (status, spend, budget, objective) and surface those in prose.\n- **If the account is large**, ask what the user actually needs before paging through it. You will not know the size from the first call — it caps at 10 — so judge from the second page onward, or from the user's own description of the account. Most questions don't need the full list.\n\n## Gotchas\n\n- Treat `campaign_id` and `item_id` as **opaque identifiers** returned by the API. Pass them through to follow-up tool calls exactly as received — do not coerce to numbers or strip/format them.\n- An item's status is distinct from its campaign's status — a running campaign can have rejected items. Flag this when relevant.\n"
}SHA-256 of public snapshot: c08affa2336df7c5d5843dc3d58c88c7f6a850c861de63037d06663017d5ff14