Create a duplicate ad set based on an existing one.
The Marketing API has it is own rate limiting logic. If you are encountering errors mentioning a reached limit, see Rate Limiting.
Endpoint to read the copies of an Ad Set.
GET /v21.0/{ad-set-id}/copies HTTP/1.1
Host: graph.facebook.com
/* PHP SDK v5.0.0 */
/* make the API call */
try {
// Returns a `Facebook\FacebookResponse` object
$response = $fb->get(
'/{ad-set-id}/copies',
'{access-token}'
);
} catch(Facebook\Exceptions\FacebookResponseException $e) {
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
/* make the API call */
FB.api(
"/{ad-set-id}/copies",
function (response) {
if (response && !response.error) {
/* handle the result */
}
}
);
/* make the API call */
new GraphRequest(
AccessToken.getCurrentAccessToken(),
"/{ad-set-id}/copies",
null,
HttpMethod.GET,
new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
/* handle the result */
}
}
).executeAsync();
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
initWithGraphPath:@"/{ad-set-id}/copies"
parameters:params
HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
id result,
NSError *error) {
// Handle the result
}];
매개변수 | 설명 |
---|---|
date_preset enum{today, yesterday, this_month, last_month, this_quarter, maximum, data_maximum, last_3d, last_7d, last_14d, last_28d, last_30d, last_90d, last_week_mon_sun, last_week_sun_sat, last_quarter, last_year, this_week_mon_today, this_week_sun_today, this_year} | Preset date range used to aggregate insights metrics |
effective_status list<enum{ACTIVE, PAUSED, DELETED, PENDING_REVIEW, DISAPPROVED, PREAPPROVED, PENDING_BILLING_INFO, CAMPAIGN_PAUSED, ARCHIVED, ADSET_PAUSED, IN_PROCESS, WITH_ISSUES}> | Filter adsets by effective status |
is_completed boolean | Filter adsets by completed status |
time_range {'since':YYYY-MM-DD,'until':YYYY-MM-DD} | Time range used to aggregate insights metrics |
이 에지로부터 읽는 경우 JSON 형식의 결과를 반환합니다:
{ "
data
": [], "paging
": {}, "summary
": {} }
data
paging
summary
수치 등 에지에 관해 집계된 정보입니다. 요약 매개변수에 가져오려면 해당 필드를 지정하세요(예: summary=insights
).
필드 | 설명 |
---|---|
insights Edge<AdsInsights> | Analytics summary for all objects |
total_count unsigned int32 | Total number of objects |
오류 | 설명 |
---|---|
200 | Permissions error |
If you are coping an adset that already finished, the copy will be scheduled to start at the creation's time with the same duration of the original adset.
This endpoint supports asynchronous batch requests, which enables you to send up to 50 requests in a single HTTP request. If you want to copy large amount of objects, you should use asynchronous batch request. To do so, set deep_copy
to true
, and you can copy the adset and all of its ads in one sub-request. For example if you have two adsets and each of them has 50 ads, you can copy 2 adsets and all their ads:
curl -F 'access_token=...'\ -F 'asyncbatch=[{ "method":"POST", "relative_url":"<ad-set-id>/copies","name":"async_copy1", body":"name=copy_adset_1&deep_copy=true" },{ "method":"POST", "relative_url":"<ad-set-id>/copies","name":"async_copy2", body": "name=copy_adset_2&deep_copy=true"}]' \ https://graph.facebook.com/<VERSION>
To copy an ad set targeted in the European Union's Digital Services Act (DSA) regulated locations, please set the payor/beneficiary information first. Otherwise the copying request may respond with one of the following errors:
Payor missing error
{ "error": { "message": "Invalid parameter", "type": "FacebookApiException", "code": 100, "error_data": "{\"blame_field_specs\":[[\"dsa_payor\"]]}", "error_subcode": 3858079, "is_transient": false, "error_user_title": "No payor provided in DSA regulated region", "error_user_msg": "The DSA requires ads to provide payor information in regulated regions. Updating/creating ad needs to provide payor of the ad.", "fbtrace_id": "fbtrace_id" }, "__fb_trace_id__": "fbtrace_id", "__www_request_id__": "request_id" }Beneficiary missing error
{ "error": { "message": "Invalid parameter", "type": "FacebookApiException", "code": 100, "error_data": "{\"blame_field_specs\":[[\"dsa_beneficiary\"]]}", "error_subcode": 3858081, "is_transient": false, "error_user_title": "No payor/beneficiary provided in DSA regulated location", "error_user_msg": "The DSA requires ads to provide beneficiary information in regulated regions. Updating/creating ad needs to provide beneficiary of the ad.", "fbtrace_id": "fbtrace_id" }, "__fb_trace_id__": "fbtrace_id", "__www_request_id__": "request_id" }
copies
에지에 POST 요청을 만들 수 있습니다: 매개변수 | 설명 |
---|---|
campaign_id numeric string or integer | Single ID of a campaign to make parent of the copy. The copy inherits all campaign settings, such as budget from the parent.Ignore if you want to keep the copy under the original campaign parent. |
deep_copy boolean | 기본 값: false Whether to copy all the child ads. Limits: the total number of children ads to copy should not exceed 3 for a synchronous call and 51 for an asynchronous call. |
end_time datetime | The end time of the set, e.g. |
rename_options JSON or object-like arrays | Rename options |
start_time datetime | The start time of the set, e.g. |
status_option enum {ACTIVE, PAUSED, INHERITED_FROM_SOURCE} | 기본 값: PAUSED
|
copied_adset_id
로 표시되는 노드를 읽습니다.copied_adset_id
: numeric string, ad_object_ids
: List [ad_object_type
: enum {unique_adcreative, ad, ad_set, campaign, opportunities, privacy_info_center, topline, ad_account}, source_id
: numeric string, copied_id
: numeric string, 오류 | 설명 |
---|---|
100 | Invalid parameter |
200 | Permissions error |
80004 | There have been too many calls to this ad-account. Wait a bit and try again. For more info, please refer to https://developers.facebook.com/docs/graph-api/overview/rate-limiting#ads-management. |