meta_copy_adset
Copy a Meta ad set into its own campaign or into another campaign of the ad account, with no ad. The copy always arrives paused.
Ask to copy an ad set that works, into its own campaign or into another campaign. Meta makes one new ad set with the settings of the source and adds “ - Copy” to its name. meta_rename gives the copy a full name. The copy has no ad, and it arrives paused, so it delivers nothing until you activate it. You can give the copy a new start time and a new end time.
Copy the FR BE 25-54 ad set into the Summer Scale campaign, from June 1 to June 30.
The agent calls meta_copy_adset, then get_mutation_status, and you see the id of the copy and the budget that it carries. Under a campaign budget, the copy spends the budget of its campaign. Change what runs on Meta shows how to put the ads of the source into the copy.
Reference
Copy a Meta ad set on a live ad account, into its own campaign or into another campaign of the same ad account. The copy has no ad: to copy an ad into it, call meta_create_ad with the new ad set and the creativeId of the source ad. A copy is shallow: Meta copies this one object with its settings, and none of the objects under it. The copy starts paused, and Meta adds “ - Copy” to its name. To give the copy a full name, use meta_rename. The result gives the id of the copy and the budget that the copy carries, which is what an activate can spend. A copy starts its own learning phase. Meta refuses some copies: an Advantage+ shopping campaign and an Advantage+ app campaign cannot be copied, and a copy that targets the EU needs the default payor and the default beneficiary of the ad account. No argument makes the copy active. AdCrunch refuses a source that is not in this ad account with not_found. Runs asynchronously: returns a workflowId — call get_mutation_status with it to get the id of the copy and its budget: { "dailyBudget": 50 } or { "lifetimeBudget": 500 } in whole units of the ad account currency, or "campaign" when the copy spends the budget of its campaign. Under ad set budgets, the copy adds a second budget of the same size. That budget is what the copy can spend after you activate it with meta_set_status. To change it, call meta_update_budget on the paused copy.
Input
| Argument | Type | Required | Description |
|---|---|---|---|
advertiserId |
string | yes | Advertiser account ID (acc_<id>). Must belong to the active organization. |
campaignId |
string | no | The Meta ID of the campaign that receives the copy, digits only — including one you created or copied moments ago. Omit it to keep the copy in the campaign of the source. The copy takes the settings of that campaign: under a campaign budget, it spends the campaign budget, else it keeps the budget of the source. An ad set with no budget of its own needs a campaign with a campaign budget, else the copy ends with invalid_request. Meta decides whether the campaign accepts the copy. |
endTime |
string | no | When delivery of the copy stops, as an ISO 8601 timestamp. Omit it to keep the end time of the source. |
id |
string | yes | The Meta ID of the ad set to copy, digits only. It must be in this ad account. Find one with meta_list_adsets. |
startTime |
string | no | When delivery of the copy starts, as an ISO 8601 timestamp. Omit it to keep the start time of the source. A copy of an ad set that has ended starts when Meta makes it, with the duration of the source. |
Output
A successful call returns this object in structuredContent.
| Field | Type | Always present | Description |
|---|---|---|---|
workflowId |
string | yes | The id of the change. The change has not reached Meta yet. Give this id to get_mutation_status to find out how the change ended. |
Failure codes
A failed call has isError set, and structuredContent.error holds one of these codes. Errors describes the shape of a failed call.
not_foundprovider_not_connectedmissing_write_accessforbiddeninvalid_requestinternal_error
Scope
The token must hold mutation:write. Auth & scopes lists each scope.
Annotations
A client reads these hints. A hint that the tool does not declare has the default value of the MCP specification.
- Writes. The tool can change data.
- Destructive. The tool can make a change that you cannot undo. A client can ask you to confirm before it calls the tool.
- Not idempotent. A second call with the same arguments can change more.
- Open world. The tool reaches a system outside AdCrunch, such as an ad platform.
Example
The arguments:
{
"advertiserId": "acc_1485443900032333",
"campaignId": "120215678901234567",
"id": "120215678901234890"
}
The result, in structuredContent:
{
"workflowId": "3f9c2b7e-8a41-4d6e-9b05-c1e7a2d4f860"
}