adkit_manage
Manage AND report on Meta, Google, TikTok, Reddit, X, LinkedIn, Microsoft, and ChatGPT Ads.
Reporting & analytics — campaign performance, results, spend, ROAS, impressions, clicks, conversions, CPC/CPA: use entity:"results" (Google also supports action:"placements" and "search-terms"). Answers "how are my ads doing" / "what's my spend" / "show campaign performance".
Management — connect project accounts and create, edit, or publish supported ad resources. ChatGPT Ads supports normalized account assignment; its advertiser operations use entity:"platform-api-request".
Coverage differs per platform — the exact entities, actions, and params for each platform are documented under adkit_help({ path: "manage " }).
Most mutations create drafts by default; publish:true sends changes live and requires explicit user approval. Use AdKit field names in params (not raw platform fields); pass full request bodies as top-level data. Use platformOverrides for raw fields on supported resources. Unsupported native platform resources and workflows are reachable via the raw platform API: entity:"platform-api-request" action:"mutate" (project opt-in); adkit_feedback is the channel for reporting these AdKit gaps. File uploads: entity:"media" action:"request_upload_url" → PUT the bytes → reference the returned uploadId. For creatives/variants/images inside an ad set, use entity:"ads".
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Optional entity identifier for single-item actions like get, update, disconnect, pages, pixels, and similar routes. Do not use this for drafts publish/delete; those require ids[]. | |
| ids | No | Draft batch identifier list. Required for entity: "drafts" with action: "publish" or "delete", even for a single draft. Each array item must be exactly one draft ID. Good: ["id1","id2"]. Bad: ["id1,id2"]. | |
| data | No | Top-level AdKit request body merged over params for mutation requests after request shaping. | |
| action | Yes | Action: list, get, create, update, delete. Entity-specific actions are listed under adkit_help({ path: "manage <platform>" }). | |
| entity | Yes | Entity name. Common: campaigns, adsets, ads, accounts, media, research, results, drafts, platform-api-request. Platform-specific entities are listed under adkit_help({ path: "manage <platform>" }). | |
| params | No | Free-form request params. GET requests send params as query. Mutations send params as body fields by default, but some Google mutations route IDs like accountId/adGroupId/campaignId into query when the REST route expects them there. Batch/full AdKit bodies belong in top-level data. | |
| publish | No | Optional publish flag for create flows that support immediate execution. | |
| platform | No | Ad platform for the requested entity and action. | |
| accountId | No | Ad account to act on for the selected platform. Auto-resolved when the project has exactly one account on that platform; REQUIRED when multiple are connected. Get available ids from adkit_status or the platform accounts entity. | |
| projectId | No | Required. Get from adkit_projects. Auto-resolves only for single-project users. |