기존 광고를 미리 보고 만들려는 광고의 미리 보기를 생성합니다. 생성된 미리 보기는 광고 크리에이티브를 기반으로 합니다. 광고 미리 보기에는 페이지 액세스 토큰이 아니라 사용자 액세스 토큰을 제공합니다. 예를 들어 기존 광고 크리에이티브를 다음과 같이 미리 볼 수 있습니다.
curl -X GET \
-d 'ad_format="DESKTOP_FEED_STANDARD"' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/<CREATIVE_ID>/previews
또는 외부 웹사이트 도메인 광고의 경우 크리에이티브 사양을 사용하여 미리 볼 수 있습니다.
curl -X GET \
-d 'creative="<CREATIVE_SPEC>"' \
-d 'ad_format="<AD_FORMAT>"' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/generatepreviews
미리 보기는 다음과 같은 몇 가지 방법으로 생성할 수 있습니다.
기존 광고에 광고 ID를 사용하려면 광고의 previews
코드를 사용하세요.
https://graph.facebook.com/<API_VERSION>/<AD_ID>/previews
기존 광고 크리에이티브 ID를 사용하려면 광고 크리에이티브의 previews
코드를 사용하세요.
https://graph.facebook.com/<API_VERSION>/<AD_CREATIVE_ID>/previews
광고 크리에이티브 사양은 다음과 같은 두 가지 엔드포인트 옵션 중 하나로 사용할 수 있습니다.
/generatepreviews
— 이 호출에 전달된 크리에이티브는 특정 광고 계정과 연결해서는 안 됩니다.어드밴티지+ 카탈로그 광고의 경우, object_story_spec 전체를 /generatepreviews 엔드포인트에 전달하고 어드밴티지+ 카탈로그 광고, 미리 보기에 나와 있는 product_item_ids
도 사용합니다.
광고 계정의 미리 보기는 광고 계정에서 역할이 부여된 사용자에게만 표시됩니다. generatepreviews
에지를 사용하여 생성한 미리 보기는 모든 사람에게 표시됩니다.
https://graph.facebook.com/API_VERSION>/act_<AD_ACCOUNT_ID>/generatepreviews https://graph.facebook.com/API_VERSION>/generatepreviews
위의 4가지 엔드포인트는 모두 광고 미리 보기 개체를 반환합니다.
object_story_spec
코드를 사용하여 미리 보기를 만듭니다.
use FacebookAds\Object\AdAccount;
use FacebookAds\Object\AdCreative;
use FacebookAds\Object\Fields\AdCreativeFields;
use FacebookAds\Object\Fields\AdPreviewFields;
use FacebookAds\Object\Fields\AdCreativeLinkDataFields;
use FacebookAds\Object\Fields\AdCreativeObjectStorySpecFields;
use FacebookAds\Object\AdCreativeLinkData;
use FacebookAds\Object\AdCreativeObjectStorySpec;
use FacebookAds\Object\Values\AdPreviewAdFormatValues;
use FacebookAds\Object\Values\AdCreativeCallToActionTypeValues;
$link_data = new AdCreativeLinkData();
$link_data->setData(array(
AdCreativeLinkDataFields::LINK => '<URL>',
AdCreativeLinkDataFields::MESSAGE => 'Message',
AdCreativeLinkDataFields::NAME => 'Name',
AdCreativeLinkDataFields::DESCRIPTION => 'Description',
AdCreativeLinkDataFields::CALL_TO_ACTION => array(
'type' => AdCreativeCallToActionTypeValues::SIGN_UP,
'value' => array(
'link' => '<URL>',
),
),
));
$story = new AdCreativeObjectStorySpec();
$story->setData(array(
AdCreativeObjectStorySpecFields::PAGE_ID => <PAGE_ID>,
AdCreativeObjectStorySpecFields::LINK_DATA => $link_data,
));
$creative = new AdCreative();
$creative->setData(array(
AdCreativeFields::OBJECT_STORY_SPEC => $story,
));
$account = new AdAccount('act_<AD_ACCOUNT_ID>');
$account->getGeneratePreviews(array(), array(
AdPreviewFields::CREATIVE => $creative,
AdPreviewFields::AD_FORMAT => AdPreviewAdFormatValues::DESKTOP_FEED_STANDARD,
));
from facebookads.adobjects.adaccount import AdAccount
from facebookads.adobjects.adpreview import AdPreview
from facebookads.adobjects.adcreative import AdCreative
from facebookads.adobjects.adcreativelinkdata import AdCreativeLinkData
from facebookads.adobjects.adcreativeobjectstoryspec \
import AdCreativeObjectStorySpec
link_data = AdCreativeLinkData()
link_data.update({
AdCreativeLinkData.Field.link: url,
AdCreativeLinkData.Field.message: "Message",
AdCreativeLinkData.Field.name: "Name",
AdCreativeLinkData.Field.description: "Description",
AdCreativeLinkData.Field.call_to_action: {
"type": "SIGN_UP",
"value": {
"link": url,
"link_caption": "CTA caption",
},
},
})
story = AdCreativeObjectStorySpec()
story.update({
AdCreativeObjectStorySpec.Field.link_data: link_data,
AdCreativeObjectStorySpec.Field.page_id: '<PAGE_ID>',
})
creative = AdCreative()
creative.update({
AdCreative.Field.object_story_spec: story,
})
account = AdAccount('act_<AD_ACCOUNT_ID>')
params = {
'ad_format': AdPreview.AdFormat.desktop_feed_standard,
'creative': creative.export_data(),
}
ad_preview = account.get_generate_previews(params=params)
print(ad_preview)
APINodeList<AdPreview> adPreviews = new AdAccount(act_<AD_ACCOUNT_ID>, context).getGeneratePreviews()
.setCreative(
new AdCreative()
.setFieldObjectStorySpec(
new AdCreativeObjectStorySpec()
.setFieldLinkData(
new AdCreativeLinkData()
.setFieldCallToAction(
new AdCreativeLinkDataCallToAction()
.setFieldType(AdCreativeLinkDataCallToAction.EnumType.VALUE_SIGN_UP)
.setFieldValue(
new AdCreativeLinkDataCallToActionValue()
.setFieldLink(<URL>)
.setFieldLinkCaption("CTA Caption")
)
)
.setFieldDescription("Description")
.setFieldLink(<URL>)
.setFieldMessage("Message")
.setFieldName("Name")
)
.setFieldPageId(<PAGE_ID>)
)
)
.setAdFormat(AdPreview.EnumAdFormat.VALUE_DESKTOP_FEED_STANDARD)
.execute();
curl -G \
--data-urlencode 'creative={
"object_story_spec": {
"link_data": {
"call_to_action": {"type":"SIGN_UP","value":{"link":"<URL>"}},
"description": "Description",
"link": "<URL>",
"message": "Message",
"name": "Name"
},
"page_id": "<PAGE_ID>"
}
}' \
-d 'ad_format=DESKTOP_FEED_STANDARD' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/generatepreviews
object_story_id
코드를 사용하여 멀티 프로덕트 광고 미리 보기를 만듭니다. object_story_id
코드를 가져오려면 먼저 멀티 프로덕트 광고를 만듭니다.
curl -X GET \
-d 'creative={
"object_story_id": "<PAGE_ID>_<POST_ID>"
}' \
-d 'ad_format="DESKTOP_FEED_STANDARD"' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/generatepreviews
object_story_spec
코드를 사용하여 앱 광고 미리 보기를 만듭니다. 이 방법으로만 앱 광고 미리 보기를 생성할 수 있습니다.
curl -X GET \
-d 'creative={
"object_story_spec": {
"link_data": {
"call_to_action": {
"type": "USE_APP",
"value": {
"link": "<URL>"
}
},
"description": "Description",
"link": "<URL>",
"message": "Message",
"name": "Name",
"picture": "<IMAGE_URL>"
},
"page_id": "<PAGE_ID>"
}
}' \
-d 'ad_format="MOBILE_FEED_STANDARD"' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/generatepreviews
INSTAGRAM_EXPLORE_GRID_HOME 광고 형식을 사용한 Instagram 탐색 주택 광고 미리 보기
curl -X GET \
-d 'ad_format="INSTAGRAM_EXPLORE_GRID_HOME"' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0
/<AD_ID>/previews
이는 다음과 같은 결과를 반환합니다.
{ "data": [ { "body": "<iframe src=\"https://www.facebook.com/ads/api/preview_iframe.php?d=AQKuwYcWpyFgVKLORPWQi52_uTud4v8PpMoDtyBfntL65i0iFtgkiXWN5S4JMBhq-UMKQmvxXFexVxu-5l5Xbf4WWRP48sCAtn3ArQAXwbdrD5qH0EL2z34K-gAgYyENd80cOGAdhVreKGJZvPkLbjDS3iDkdqdNNJQ6yaAFTmUpaz__cjgmhVVCUW68wU3UOZwqlv376mkijYR57Sm2OlyES4U6ivMPNGDx4xnZEd5d8kWyagDD-lPbCaGEk0nnQF5mnyeV9pFqdByhq-IqN6n0ZhSWjCPXZQa84wu5GNQ70YR2w7QxEYoiWCgI2WP0Z2OPeUMiNOf9bhYB-TBZJZ7G6HylsOnzzII9FQ8-0K-b_Q&t=AQJws9t-TtIGrKoFtCM\" width=\"274\" height=\"213\" scrolling=\"yes\" style=\"border: none;\"></iframe>" } ] }
INSTAGRAM_SEARCH_CHAIN 광고 형식을 사용하는 Instagram 검색 결과 광고 미리 보기
curl -X GET \
-d 'ad_format="INSTAGRAM_SEARCH_CHAIN"' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0
/<AD_ID>/previews
이는 다음과 같은 결과를 반환합니다.
{ "data": [ { "body": "<iframe src=\"https://www.facebook.com/ads/api/preview_iframe.php?d=AQKVMPdwuorP3mliXRaOi0TCSvsGRfucEzBTnB4jghArle84f8kBjvJmX3gmdjniUjohKA3GUppDZqljStZwxxRRxkQl9Y4R1o5wV4zRGE3xO3NHf1_qBbFM_uEIGAnAvptMWo_DLpbiIqIYFMjxbXNELzmZQsR0gnbBjaXM9i6gkI29dnHPqnm4xGvPxo2w8RWeXfWvmik2C96_2PrhrRhh4NKL3SOmFC9JDVsTp9Z6SYDlLVcLJWwpRKmciAZqEMOnMEFgepVTZ39yJ4ZiAMRo76RK9XNVGcornsUBtxI8cZHKtdW7nmj3ivq09_NGGUnFiJdJaPm-Mk-obM3K0QyOvgHKwnmLn7wvMiizJeXPEWAcSBa4DPUFLAO1mSuaKla0VQ6tzAM4BqFU9LJOG1-zZmPec7wKxQGDcrXoCOKfv2xkLyzECc-oDS0JJgvxxlo&t=AQI8ECKvkemIoVDaDrs\" width=\"274\" height=\"213\" scrolling=\"yes\" style=\"border: none;\"></iframe>" } ], "__www_request_id__": "AzCC2RoeSL0rMbSPTYDyDHa" }