Add & Edit Campaign Elements
add_and_edit_campaign_elementsAdd audiences, ads, offers, or targeting and edit supported settings of a Precision Optimization campaign. Returns the updated configuration and per-operation results or errors. Campaign structure and current platform state constrain which edits are permitted. LinkedIn ads can be added as named Metadata platform ad groups (ads.groups) when the user asks for them. CRITICAL: PARTIAL EDITS ONLY. Only campaignId is required. Supply other fields only for the user's requested changes, never by copying the whole campaign read result. A budget-group-only move uses campaign_data={"campaignId": 12345, "budgetGroup": "Destination"}. Omit name, startDate, endDate and channel blocks unless the user also requested those edits. Campaign-level startDate/endDate writes apply to every channel, including switched-off channels, so replaying a campaign's aggregate dates can overwrite distinct channel dates. On a draft, sending one date keeps the other as saved; when the saved one cannot stay (a start date already passed, an end before the new start, channels saved with different dates) nothing changes and errors says which date to ask the user for. For a budget-only move, read the campaign before and after and verify each channel's startDate/endDate and enabled state are unchanged, alongside the new budget group. The handler returns budget_move_verification for a completed move without date or channel edits. verified=true confirms every channel's identity, dates and switch state and the destination group. verified=false also populates errors: stop further moves and report the changed fields or incomplete readback, even when success=true because the budget group already changed. No schedule rollback is attempted. Do not report dates preserved without that readback; report any mismatch explicitly.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_data | Yes | Campaign data with fields to edit and/or elements to add |