어드밴티지+ 앱 캠페인

어드밴티지+ 앱 캠페인(이전의 자동화된 앱 광고)은 머신 러닝과 자동 시스템을 사용하여 앱 설치 광고에서 더 높은 성과를 달성합니다. 이 솔루션을 사용하면 캠페인을 확장하고 최종적으로는 업무 효율을 높이는 데 도움이 됩니다.

일반 앱 광고 vs. 어드밴티지+ 앱 캠페인:

수동 앱 광고어드밴티지+ 앱 캠페인
캠페인 1개
여러 개의 광고 세트
여러 개의 광고
캠페인 1개
광고 세트 1개
여러 개의 광고

수동으로 조정합니다.

머신 러닝으로 조정합니다.

크리에이티브 조합을 최대 50개까지 직접 테스트합니다.

크리에이티브 조합을 최대 50개까지 직접 테스트합니다.

현재 iOS 14 사용자를 대상으로 하는 SKAdNetwork 어드밴티지+ 앱 캠페인을 사용할 수 있습니다.

시작하기 전에

어드밴티지+ 앱 캠페인을 사용하려면 다음이 필요합니다.

  • Facebook 개발자 계정
  • ads_managementads_read 권한

광고에 예산을 제공하는 광고 계정에 GETPOST 호출을 보낼 권한이 있어야 합니다.

1단계: 캠페인 만들기

다음의 필수 및 선택 매개변수를 포함하여 /act_{ad_account_id}/campaigns에 대해 POST 요청을 보냅니다.

매개변수설명
adlabels
개체 리스트

어드밴티지+ 앱 캠페인과 연결된 광고 레이블입니다. 선택 사항.

buying_type
문자열

현재 어드밴티지+ 앱 캠페인은 buying_type AUCTION만 지원합니다. 필수 항목.

execution_options
enum 리스트

기본값: set. 기타 옵션:

  • validate_only: 이 옵션을 지정하면 API 호출이 변환을 실행하지 않고 각 필드 값에 대한 검증 규칙을 실행합니다.
  • include_recommendations: 이 옵션은 단독으로 사용할 수 없습니다. 이 옵션을 사용하면 광고 개체 구성에 대한 추천이 포함됩니다. 이 사양에 대한 추천이 있을 경우에만 별도의 추천 섹션이 응답에 포함됩니다.

호출이 검증 또는 검토를 통과하면 {"success": true} 응답을 받습니다. 호출이 검증 또는 검토를 통과하지 못하면 자세한 내용과 함께 오류가 반환됩니다. 선택 사항.

is_skadnetwork_attribution
문자열

SKAdsNetwork 캠페인을 식별합니다. 선택 사항

name
문자열

어드밴티지+ 앱 캠페인의 이름입니다.

objective
enum

캠페인 목표입니다. 이 광고 유형에 APP_INSTALLS를 지정합니다. 필수 항목.

promoted_object
개체

이 광고 세트가 모든 광고에서 홍보하는 개체입니다. 어드밴티지+ 앱 캠페인의 경우 application_idobject_store_url을 제공합니다.


최적화 목표가 APP_INSTALLS가 아닌 경우 다음을 제공하세요.

표준 이벤트맞춤 이벤트

application_id, object_store_urlcustom_event_type

application_id, object_store_url, custom_event_strcustom_event_type = OTHER 지정

is_skadnetwork_attribution이 true로 설정된 경우 필수입니다.

smart_promotion_type
개체 리스트

어드밴티지+ 앱 캠페인으로 지정하려면 스마트 홍보 유형을 SMART_APP_PROMOTION으로 설정해야 합니다. 선택 사항.

special_ad_categories
개체 리스트

현재 어드밴티지+ 앱 캠페인은 특별 광고 카테고리를 지원하지 않습니다. 이 개체를 빈 리스트(예: [])로 지정하세요. 필수 항목.

status
enum

유효한 옵션: PAUSEDACTIVE.

상태가 PAUSED면 모든 활성 광고 세트와 광고가 일시 정지되고 유효 상태인 CAMPAIGN_PAUSED가 됩니다. 필수 항목.

topline_id
숫자 문자열 또는 정수

주요 광고 ID입니다. 선택 사항.

캠페인 생성 호출 예시

curl -X POST \
  -F 'name=Advantage+ app campaigns sample campaign' \
  -F 'objective=APP_INSTALLS' \
  -F 'status=ACTIVE' \
  -F 'special_ad_categories=[]' \
  -F 'smart_promotion_type=SMART_APP_PROMOTION' \
  -F 'access_token={access-token}' \
https://graph.facebook.com/v21.0/act_{ad-account-id}/campaigns

이미 캠페인이 있고 이를 업데이트하려면 실행 후, 캠페인 업데이트를 참조하세요.

2단계: 캠페인 생성 확인(선택 사항)

어드밴티지+ 앱 캠페인이 생성되었는지 확인할 수 있는 옵션이 있습니다. 이를 위해서는 smart_promotion_type 필드를 포함한 GET 요청을 /{ad-campaign-id}로 보내세요. 유효한 어드밴티지+ 앱 캠페인은 SMART_APP_PROMOTION을 반환합니다.

캠페인 확인 호출 예시

curl -X GET -G \
  -d 'fields="smart_promotion_type"' \
  -d 'access_token={access-token}' \
https://graph.facebook.com/v21.0/{ad-campaign-id}

유효한 어드밴티지+ 앱 캠페인이 생성되었을 때 응답 예시는 다음과 같습니다.

{
  "smart_promotion_type": "SMART_APP_PROMOTION",
  "id": {ad-campaign-id}
}

3단계: 광고 세트 만들기

광고 캠페인을 생성했다면 광고 세트를 만듭니다. 광고 세트는 동일한 일일 또는 총 예산, 일정, 입찰 유형, 입찰 정보와 타게팅 데이터를 공유하는 광고 그룹입니다.

광고 세트를 만들려면 /act_{ad_account_id}/adsetsPOST 요청을 보내세요. 다음 매개변수를 포함할 수 있습니다.

매개변수설명

adlabels

개체 리스트

이 개체와 연결할 레이블 리스트를 지정합니다.

선택 사항.

bid_amount

정수

bid_strategyLOWEST_COST_WITH_BID_CAP으로 설정된 경우 필수입니다.

이 광고 세트의 입찰가 한도 또는 목표 비용입니다. 최저가 입찰 전략에 사용한 입찰가 한도는 optimization_goal을 기준으로 성과에 지불하려는 최대 입찰가입니다. 목표 비용 입찰 전략에 사용한 목표 비용은 Facebook 입찰을 통해 평균적으로 목표를 달성하고 지출하는 동안 비용을 안정화할 수 있습니다.


bid_amount 광고 레벨이 지정된 경우 이 값을 업데이트하면 이전 광고 레벨 입찰을 덮어씁니다.


입찰가 단위는 USD, EUR 등의 통화에서는 센트이고 JPY, KRW 등의 통화에서는 기본 단위를 의미합니다. 입찰가는 각 통화에 설정되고 미국 화폐 기준 최저 1센트입니다. 다른 통화의 최저 입찰가는 제공되는 미국 달러 금액과 유사한 금액입니다.

bid_constraints

개체 리스트

bid_strategylowest_cost_with_min_roas로 설정된 경우 필수입니다.

광고 세트 예산과 마찬가지로 최소 ROAS(광고 지출에 대한 최소 수익) 입찰은 이를 사용하여 ROAS 하한을 제공하지만, bid_amountbid_constraints와 함께 사용할 수 없습니다.

bid_strategy

enum

이 광고 세트에서 해당 비즈니스 목표에 알맞은 입찰 전략을 선택합니다. 각 전략은 장단점이 있고 특정 optimization_goals에 제공될 수도 있습니다. 자세한 내용은 입찰 개요, 입찰 전략을 참조하세요.


어드밴티지+ 앱 캠페인에 다음 전략을 사용할 수 있습니다.

  • LOWEST_COST_WITHOUT_CAP
  • LOWEST_COST_WITH_BID_CAP
  • LOWEST_COST_WITH_MIN_ROAS
필수 항목.
billing_event
enum

이 광고 세트가 사용하는 청구 이벤트입니다. 자동화된 앱 광고에 IMPRESSIONS를 지정하세요. 필수 항목.

campaign_id
숫자 문자열 또는 정수

이 광고 세트를 추가하려는 유효한 어드밴티지+ 앱 캠페인의 ID입니다. 필수 항목.

campaign_attribution

enum

이 광고 세트에서 사용하는 캠페인 기여 유형입니다.


  • Meta의 취합된 이벤트 측정을 사용하고자 하는 경우 이 필드를 AEM으로 설정합니다.
  • Apple의 SKAdNetwork를 사용하고자 하는 경우 이 필드를 SKADNETWORK로 설정해야 합니다.

하나의 캠페인에 여러 광고 세트가 있는 경우 캠페인 기여 유형은 모든 광고 세트에서 동일해야 합니다.

이 필드는 iOS 14 이상 캠페인을 만들 때 필수입니다.

daily_budget

int64

계정 통화로 정의된 일일 예산입니다. 기간(end_timestart_time 간의 간격)이 24시간 이상인 광고 세트에만 허용됩니다.

daily_budget 또는 lifetime_budget이 0보다 커야 합니다.

선택 사항.

end_time

datetime

lifetime_budget이 지정된 경우 필수입니다.

daily_budget으로 광고 세트를 만들 때 광고 세트가 종료 날짜 없이 계속 유지되도록 하려면 end_time=0으로 지정하세요. 시간은 UTC UNIX 타임스탬프로 입력해야 합니다.


예: 2015-03-12 23:59:59-07:00 또는 2015-03-12 23:59:59 PDT.

lifetime_budget

int64

계정 통화로 지정된 총 예산입니다. 이를 지정하면 end_time도 지정해야 합니다.

daily_budget 또는 lifetime_budget이 0보다 커야 합니다.

선택 사항.
name
문자열

어드밴티지+ 앱 캠페인 광고 세트의 이름입니다. 필수 항목.

optimization_goal
enum

광고 세트를 최적화할 목표입니다. 어드밴티지+ 앱 캠페인은 다음과 같은 최적화 목표를 지원합니다.

  • APP_INSTALLS: 앱을 설치할 가능성이 큰 사용자에 대해 최적화합니다.
  • OFFSITE_CONVERSIONS: 사이트에서 전환할 가능성이 큰 사용자에 대해 최적화합니다.
  • APP_INSTALLS_AND_OFFSITE_CONVERSIONS: 앱을 설치하고 사이트에서 전환할 가능성이 큰 사용자에 대해 최적화합니다.
  • VALUE: 지정된 기여 기간 내의 최대 구매 금액 합계에 대해 최적화합니다.
필수 항목.
promoted_object
개체

이 광고 세트가 모든 광고에서 홍보하는 개체입니다. 어드밴티지+ 앱 캠페인의 경우 application_idobject_store_url을 제공합니다.


최적화 목표가 APP_INSTALLS가 아닌 경우 다음을 제공하세요.

표준 이벤트맞춤 이벤트

application_id, object_store_urlcustom_event_type

application_id, object_store_url, custom_event_strcustom_event_type = OTHER 지정

SKAdNetwork를 제외한 모든 캠페인에 필수입니다. SKAdNetwork 캠페인에서는 선택 사항입니다.

status

enum

ACTIVEPAUSED만 생성에 유효합니다. 다른 상태는 업데이트에 사용할 수 있습니다. 광고 세트가 PAUSED로 설정되면 모든 활성 광고가 일시 정지되고 유효 상태인 ADSET_PAUSED가 됩니다.

필수 항목.

start_time

datetime

세트의 시작 시간입니다. 예: 2015-03-12 23:59:59-07:00 또는 2015-03-12 23:59:59 PDT. UTC UNIX 타임스탬프로 입력해야 합니다.

targeting

타게팅 개체

어드밴티지+ 앱 캠페인 광고 세트의 타게팅 구조입니다. 유효한 타게팅 옵션은 geo_locationslocales입니다. 타게팅 필드를 참조하세요.


예를 들면 다음과 같습니다.

{
   "geo_location": {
     "countries": [“US”]
     },
   "locales": [8]
}

어드밴티지+ 앱 캠페인은 운영 체제 타게팅을 지원하지 않지만 SKAdsNetwork 어드밴티지+ 앱 캠페인은 iOS14.5 이상 사용자만 타게팅합니다.

필수 항목.

time_start

datetime

이 광고 세트 게재를 시작하는 시간입니다.

time_stop

datetime

이 광고 세트 게재를 중단하는 시간입니다.

타게팅 필드

매개변수설명

geo_locations

배열

필수 인수 국가를 통해 광고 세트의 타겟을 제한하는 데 사용합니다. 유효한 값: countries. 2자리 ISO 3166 형식 코드의 배열입니다.

필수 항목.

locales

배열

한 위치의 공통 언어가 아닌 다른 언어를 사용하는 사람들을 타게팅합니다. 이 필드를 사용하려면 언어 ID를 제공합니다(예: 독일어는 5). 자세한 내용은 타게팅 검색, 로캘을 참조하세요.

광고 세트 생성 호출 예시

curl -X POST \
  -F 'name=Advantage+ app campaigns sample ad set' \
  -F 'campaign_id={campaign-id}' \
  -F 'optimization_goal=APP_INSTALLS' \
  -F 'promoted_object={ "application_id": "{app-id}", "object_store_url": "{store-object-id} }' \
  -F 'daily_budget=<num>' \
  -F 'billing_event=IMPRESSIONS' \
  -F 'targeting={"geo_locations": {"countries": ["US"]}}' \
  -F 'access_token={access-token}' \
https://graph.facebook.com/v21.0/act_{ad-account-id}/adsets

이미 광고 세트가 있고 이를 업데이트하려면 실행 후, 광고 세트 업데이트를 참조하세요.

최적화 호환성

공고 세트 레벨에서 최적화 목표, 입찰 전략 및 맞춤 이벤트 유형을 지정해야 합니다. 이 필드의 유효한 조합은 아래의 표와 같습니다.

최적화 목표입찰 전략맞춤 이벤트 유형

APP_INSTALLS

LOWEST_COST_WITHOUT_CAPLOWEST_COST_WITH_BID_CAP

해당 사항 없음.

APP_INSTALLS_AND_OFFSITE_CONVERSIONS

LOWEST_COST_WITHOUT_CAP

PURCHASE

OFFSITE_CONVERSIONS

LOWEST_COST_WITHOUT_CAPLOWEST_COST_WITH_BID_CAP

모든 표준 앱 이벤트(예: PURCHASE, ADD_TO_CART, INITIATED_CHECKOUT).

VALUE

LOWEST_COST_WITHOUT_CAPLOWEST_COST_WITH_MIN_ROAS

PURCHASE

SKAdNetwork 세트 생성 호출 예시

curl -X POST \
  -F 'name=Advantage+ app campaigns sample campaign' \
  -F 'objective=APP_INSTALLS' \
  -F 'status=ACTIVE' \
  -F 'special_ad_categories=[]' \
  -F 'smart_promotion_type=SMART_APP_PROMOTION' \
  -F 'is_skadnetwork_attribution=true' \
  -F 'promoted_object={ "application_id": "{app-id}", "object_store_url": "{object-store-url}" }' \ 
  -F 'access_token={access-token}' \
https://graph.facebook.com/act_{ad-account-id}/campaigns

4단계: 크리에이티브를 제공하고 광고 만들기

광고 세트를 만들고 나서 이를 /act_{ad_account_id}/ads 엔드포인트에 게시하여 광고를 만들 수 있습니다. 다음 매개변수를 포함할 수 있습니다.

매개변수설명

adset_id

int64

필수 항목.
광고 세트의 ID입니다.

adlabels

개체 리스트

선택 사항.
이 광고와 연결된 광고 레이블입니다.

creative

AdCreative

필수 항목.
이 광고에서 사용할 광고 크리에이티브의 크리에이티브 사양입니다. 유효한 필드는 object_story_spec, asset_feed_spec, use_page_actor_override입니다. 자세한 내용은 크리에이티브 필드를 참조하세요.


크리에이티브는 다음 형식으로 제공할 수 있습니다.

{
  "creative_id":  {creative-id}
}

다음과 같이 크리에이티브 사양을 제공합니다.

{
  "creative": {
    \"name\": \"<NAME>\", 
    \"object_story_spec\": <SPEC>
  }
}

execution_options

enum 리스트

선택 사항.
기본값: set.
다른 옵션:

  • validate_only: 이 옵션을 지정하면 API 호출이 변환을 실행하지 않고 각 필드의 값에 대해 검증 규칙을 실행합니다.
  • synchronous_ad_review: 이 옵션은 단독으로 사용할 수 없습니다. 항상 validate_only와 함께 지정해야 합니다. 이 옵션을 지정하면 API 호출이 광고 무결성 검증을 실행하며, 여기에는 검증 로직과 더불어 메시지 언어 검사, 이미지 20% 텍스트 규칙 등이 포함됩니다.
  • include_recommendations: 이 옵션은 단독으로 사용할 수 없습니다. 이 옵션을 사용하면 광고 개체 구성에 대한 추천이 포함됩니다. 이 사양에 대한 추천이 있을 경우에만 별도의 추천 섹션이 응답에 포함됩니다.

호출이 검증 또는 검토를 통과하면 {"success": true} 응답을 받습니다. 호출이 검증 또는 검토를 통과하지 못하면 자세한 내용과 함께 오류가 반환됩니다.

name

문자열

필수 항목.
광고의 이름입니다.

status

AdCreative

유형: enum

필수 항목.
생성 시 유효한 옵션: ACTIVEPAUSED. 테스트 중에는 의도치 않게 지출이 발생하지 않도록 광고를 PAUSED 상태로 설정하는 것이 좋습니다.

크리에이티브 필드

매개변수설명

asset_feed_spec

AdAssetFeedSpec

/adcreatives를 사용할 때 필수입니다.

노출 위치 소재 맞춤화다언어 광고에서 다양한 광고 노출 위치나 다른 언어로 표시된 크리에이티브 자산을 맞춤 설정하는 데 사용합니다. JSON 문자열 형식으로 지정됩니다.


이용 가능한 필드:

  • images
  • videos
  • carousels
  • bodies
  • call_to_action_types
  • titles
  • descriptions
  • link_urls
  • ad_formats
  • optimization_type
  • asset_customization_rules

각 필드에 대한 자세한 내용은 자산 피드 옵션을 참조하세요.

object_story_spec

AdCreativeObjectStorySpec
필수 항목.

광고에 이미지나 동영상을 첨부하거나 슬라이드 광고 형식을 사용하고 싶을 경우에 사용하세요. 새로운 비공개 페이지 게시물을 만들어서 이를 광고로 바꾸고 싶은 경우에도 사용할 수 있습니다.


이용 가능한 필드:

  • page_id(숫자 문자열) - 필수 항목. Facebook 페이지의 ID입니다. 이 페이지에서 비공개 페이지 게시물이 생성됩니다. 사용자는 페이지의 관리자 또는 편집자 역할이 있어야 합니다.
  • instagram_actor_id(숫자 문자열) - 선택 사항. 스토리를 게시할 Instagram 사용자 계정입니다.
  • link_data - 앱 광고: 만들기에 나와 있는 지침에 따라 행동 유도, 사진, 슬라이드를 지정합니다.
  • video_data - 앱 광고: 동영상을 포함하여 만들기에 나와 있는 지침에 따라 동영상을 지정합니다.

use_page_actor_override

AdCreative

true로 설정하면 앱 광고와 연결된 Facebook 페이지가 표시됩니다.

광고 생성 호출 예시

크리에이티브 사양 형식으로 크리에이티브를 제공할 경우:

curl -X POST \
  -F 'name=Advantage+ app campaigns sample ad' \
  -F 'adset_id={adset-id}' \
  -F 'creative={"name": {name}, "object_story_spec": {specifications}}' \
  -F 'access_token={access-token}' \
https://graph.facebook.com/v21.0/act_{ad-account-id}/ads

creative_id를 사용하고 싶은 경우 먼저 /adcreatives 호출을 통해 크리에이티브를 제공해야 합니다.

curl -X POST \
-F 'object_story_spec={object-story-specifications}' \
-F 'asset_feed_spec={asset-feed-specifications}' \
-F 'access_token={access-token}' \
https://graph.facebook.com/v21.0/act_act_{ad-account-id}/adcreatives

호출에 성공하면 이전의 호출에서 creative_id가 반환되고 이를 /ads 호출에 사용할 수 있습니다.

curl -X POST \
  -F 'name=Advantage+ app campaigns sample ad' \
  -F 'adset_id={adset-id}' \
  -F 'creative={creative-id}' \
  -F 'access_token={access-token}' \
https://graph.facebook.com/v21.0/act_{ad-account-id}/ads

이미 광고가 있고 이를 업데이트하려면 실행 후, 광고 업데이트를 참조하세요.

고정 이미지/동영상의 예시

curl -X POST \
  -F 'name=Advantage+ app campaigns static image/video sample ad' \
  -F 'adset_id={adset-id}' \
  -F 'creative={
        "media_type": "SINGLE_IMAGE",
        "object_story_spec": {
          "instagram_actor_id": "{instagram-actor-id}",
          "page_id": "{page-id}",
          "link_data": {
            "call_to_action": {
              "type": "INSTALL_MOBILE_APP"
            },
            "image_hash": "{image-hash}",
            "link": "{link}",
            "message": "{message}",
            "name": "{name}"
          }
        }
      }' \
  -F 'access_token={access-token}' \
https://graph.facebook.com/v21.0/act_{ad-account-id}/ads

노출 위치 소재 맞춤화의 예시

여러 광고 노출 위치에 표시된 크리에이티브 자산을 맞춤 설정하려는 경우입니다 자세한 내용은 노출 위치 소재 맞춤화 페이지를 참조하세요.

curl -X POST \
-F 'object_story_spec={
  "instagram_actor_id": "{instagram-actor-id}",
  "page_id": "{page-id}"
    }' \
-F 'asset_feed_spec={
  "ad_formats": [
    "SINGLE_IMAGE"
  ],
  "asset_customization_rules": [
    {
      "customization_spec": {
        "publisher_platforms": [
          "facebook"
        ],
        "facebook_positions": [
          "feed",
          "instream_video"
        ]
      },
      "image_label": {
        "name": "{image-label1}"
      }
    },
    {
      "customization_spec": {
        "publisher_platforms": [
          "instagram"
        ],
        "instagram_positions": [
          "stream"
        ]
      },
      "image_label": {
        "name": "{image-label2}"
      }
    }
  ],
  "bodies": [
    {
      "text": "{text}"
    }
  ],
  "call_to_action_types": [
    "INSTALL_MOBILE_APP"
  ],
  "images": [
    {
      "hash": "{image-hash1}",
      "adlabels": [
        {
          "name": "{image-label1}"
        }
      ]
    },
    {
      "hash": "{image-hash2}",
      "adlabels": [
        {
          "name": "{image-label2}"
        }
      ]
    }
  ],
  "link_urls": [
    {
      "website_url": "{website-url}",
      "display_url": "{display-url}",
      "deeplink_url": "{deeplink-url}"
    }
  ],
  "titles": [
    {
      "text": "{title}"
    }
  ]
}' \
-F 'access_token={access-token}' \
https://graph.facebook.com/v21.0/act_act_{ad-account-id}/adcreatives

다언어 광고의 예시

광고의 이미지, 동영상, 텍스트 및 본문과 같이 광고 크리에이티브의 다양한 부분을 맞춤 설정하여 서로 다른 언어를 구사하는 사용자에게 도달하도록 하려는 경우입니다. 자세한 내용은 다언어 광고 페이지를 참조하세요.

curl -X POST \
-F 'object_story_spec={
  "instagram_actor_id": "{instagram-actor-id}",
  "page_id": "{page-id}"
    }' \
-F 'asset_feed_spec={
  "ad_formats": [
    "SINGLE_IMAGE"
  ],
  "asset_customization_rules": [
    {
      "is_default": true,
      "customization_spec": {
        "locales": [
          24
        ]
      },
      "title_label": {
        "name": "{title-label-english}"
      },
      "body_label": {
        "name": "{body-label-english}"
      },
      "link_url_label": {
        "name": "{link-label-english}"
      },
      "image_label": {
        "name": "{image-label1}"
      }
    },
    {
      "customization_spec": {
        "locales": [
          9,
          44
        ]
      },
      "title_label": {
        "name": "{title-label-french}"
      },
      "body_label": {
        "name": "{body-label-french}"
      },
      "link_url_label": {
        "name": "{link-label-french}"
      },
      "image_label": {
        "name": "{image-label2}"
      }
    }
  ],
  "bodies": [
    {
      "text": "Primary Text in English",
      "adlabels": [
        {
          "name": "{body-label-english}"
        }
      ]
    },
    {
      "text": "Primary Text in French",
      "adlabels": [
        {
          "name": "{body-label-french}"
        }
      ]
    }
  ],
  "call_to_action_types": [
    "INSTALL_MOBILE_APP"
  ],
  "images": [
    {
      "hash": "{image-hash1}",
      "adlabels": [
        {
          "name": "{image-label1}"
        }
      ]
    },
    {
      "hash": "{image-hash2}",
      "adlabels": [
        {
          "name": "{image-label2}"
        }
      ]
    }
  ],
  "link_urls": [
    {
      "website_url": "{website-url}",
      "display_url": "{display-url}",
      "deeplink_url": "{deeplink-url}",
      "adlabels": [
        {
          "name": "{link-label-english}"
        }
      ]
    },
    {
      "website_url": "{website-url}",
      "display_url": "{display-url}",
      "deeplink_url": "{deeplink-url}",
      "adlabels": [
        {
          "name": "{link-label-french}"
        }
      ]
    }
  ],
  "titles": [
    {
      "text": "English Title",
      "adlabels": [
        {
          "name": "{title-label-english}"
        }
      ]
    },
    {
      "text": "French Title",
      "adlabels": [
        {
          "name": "{title-label-french}"
        }
      ]
    }
  ]
}' \
-F 'access_token={access-token}' \
https://graph.facebook.com/v21.0/act_act_{ad-account-id}/adcreatives

다중 텍스트의 예시

기본 텍스트 또는 제목을 2개 이상 제공하려는 경우입니다.

curl -X POST \
-F 'object_story_spec={
  "instagram_actor_id": "{instagram-actor-id}",
  "page_id": "{page-id}"
    }' \
-F 'asset_feed_spec={
  "asset_feed_spec": {
    "optimization_type": "DEGREES_OF_FREEDOM",
    "bodies": [
      {
        "text": "Primary Text 1"
      },
      {
        "text": "Primary Text 2"
      },
      {
        "text": "Primary Text 3"
      },
      {
        "text": "Primary Text 4"
      },
      {
        "text": "Primary Text 5"
      }
    ],
    "call_to_action_types": [
      "INSTALL_MOBILE_APP"
    ],
    "images": [
      {
        "hash": "{image-hash}"
      }
    ],
    "link_urls": [
      {
        "website_url": "{website-url}",
        "display_url": "{display-url}",
        "deeplink_url": "{deeplink-url}"
      }
    ],
    "titles": [
      {
        "text": "Title 1"
      },
      {
        "text": "Title 2"
      },
      {
        "text": "Title 3"
      },
      {
        "text": "Title 4"
      },
      {
        "text": "Title 5"
      }
    ]
  }
}' \
-F 'access_token={access-token}' \
https://graph.facebook.com/v21.0/act_act_{ad-account-id}/adcreatives

노출 위치 소재 맞춤화 + 다중 텍스트의 예시

curl -X POST \
-F 'object_story_spec={
  "instagram_actor_id": "{instagram-actor-id}",
  "page_id": "{page-id}"
    }' \
-F 'asset_feed_spec={
  "ad_formats": [
    "SINGLE_IMAGE"
  ],
  "asset_customization_rules": [
    {
      "customization_spec": {
        "publisher_platforms": [
          "facebook"
        ],
        "facebook_positions": [
          "feed",
          "instream_video"
        ]
      },
      "image_label": {
        "name": "{image-label1}"
      },
      "body_label": {
        "name": "{body-label1}"
      },
      "title_label": {
        "name": "{title-label1}"
      }
    },
    {
      "customization_spec": {
        "publisher_platforms": [
          "instagram"
        ],
        "instagram_positions": [
          "stream"
        ]
      },
      "image_label": {
        "name": "{image-label2}"
      },
      "body_label": {
        "name": "{body-label2}"
      },
      "title_label": {
        "name": "{title-label2}"
      }
    }
  ],
  "bodies": [
    {
      "text": "Primary Text 1",
      "adlabels": [
        {
          "name": "{body-label1}"
        },
        {
          "name": "{body-label2}"
        }
      ]
    },
    {
      "text": "Primary Text 2",
      "adlabels": [
        {
          "name": "{body-label1}"
        },
        {
          "name": "{body-label2}"
        }
      ]
    },
    {
      "text": "Primary Text 3",
      "adlabels": [
        {
          "name": "{body-label1}"
        },
        {
          "name": "{body-label2}"
        }
      ]
    },
    {
      "text": "Primary Text 4",
      "adlabels": [
        {
          "name": "{body-label1}"
        },
        {
          "name": "{body-label2}"
        }
      ]
    },
    {
      "text": "Primary Text 5",
      "adlabels": [
        {
          "name": "{body-label1}"
        },
        {
          "name": "{body-label2}"
        }
      ]
    }
  ],
  "call_to_action_types": [
    "INSTALL_MOBILE_APP"
  ],
  "images": [
    {
      "hash": "{image-hash1}",
      "adlabels": [
        {
          "name": "{image-label1}"
        }
      ]
    },
    {
      "hash": "{image-hash2}",
      "adlabels": [
        {
          "name": "{image-label2}"
        }
      ]
    }
  ],
  "link_urls": [
    {
      "website_url": "{website-url}",
      "display_url": "{display-url}",
      "deeplink_url": "{deeplink-url}"
    }
  ],
  "titles": [
    {
      "text": "Title 1",
      "adlabels": [
        {
          "name": "{title-label1}"
        },
        {
          "name": "{title-label2}"
        }
      ]
    },
    {
      "text": "Title 2",
      "adlabels": [
        {
          "name": "{title-label1}"
        },
        {
          "name": "{title-label2}"
        }
      ]
    },
    {
      "text": "Title 3",
      "adlabels": [
        {
          "name": "{title-label1}"
        },
        {
          "name": "{title-label2}"
        }
      ]
    },
    {
      "text": "Title 4",
      "adlabels": [
        {
          "name": "{title-label1}"
        },
        {
          "name": "{title-label2}"
        }
      ]
    },
    {
      "text": "Title 5",
      "adlabels": [
        {
          "name": "{title-label1}"
        },
        {
          "name": "{title-label2}"
        }
      ]
    }
  ]
}' \
-F 'access_token={access-token}' \
https://graph.facebook.com/v21.0/act_act_{ad-account-id}/adcreatives

실행 후

어드밴티지+ 앱 캠페인을 실행하고 나서 광고 개체를 업데이트하거나 읽어야 하는 경우가 있을 수 있습니다. 아래에서 해당 작업을 수행하는 방법을 참조하세요. 광고 인사이트 정보의 경우 자산 피드 사양, 인사이트 문서를 참조하세요.

캠페인 업데이트

자동화된 앱 광고 캠페인을 업데이트해야 할 경우 /{campaign_id}에 대한 POST 요청을 보냅니다. API 호출에 다음과 같은 매개변수를 사용할 수 있습니다.

매개변수설명

adlabels

개체 리스트

어드밴티지+ 앱 캠페인과 연결해야 하는 광고 레이블입니다.

execution_options

enum 리스트

기본값: set. 다른 이용 가능한 옵션:

  • validate_only: 이 옵션을 지정하면 API 호출이 변환을 수행하지 않고 각 필드 값에 대해 검증 규칙을 실행합니다.
  • include_recommendations: 이 옵션은 단독으로 사용할 수 없습니다. 이 옵션을 사용하면 광고 개체 구성에 대한 추천이 포함됩니다. 이 사양에 대한 추천이 있을 경우에만 별도의 추천 섹션이 응답에 포함됩니다.

호출이 검증 또는 검토를 통과하면 {"success": true} 응답을 받습니다. 호출이 검증 또는 검토를 통과하지 못하면 자세한 내용과 함께 오류가 반환됩니다.

name

문자열

어드밴티지+ 앱 캠페인에 부여할 새 이름입니다.

status

enum

업데이트 API 호출에 다음 상태를 사용할 수 있습니다.

  • ACTIVE
  • PAUSED
  • DELETED
  • ARCHIVED

광고 캠페인을 PAUSED로 설정하면 활성화된 하위 개체가 일시 정지되고 유효 상태인 CAMPAIGN_PAUSED가 됩니다.

topline_id

숫자 문자열 또는 정수

주요 광고 ID입니다.

캠페인 업데이트 예시

curl -X POST \
-F 'name=Advantage+ app campaigns Update Sample Campaign' \
-F 'status=PAUSED' \
-F 'access_token={access-token}' \
https://graph.facebook.com/v21.0/{campaign-id}

광고 세트 업데이트

자동화된 앱 광고 세트를 업데이트해야 할 경우 /{ad_set_id}에 대한 POST 요청을 보냅니다. API 호출에 다음과 같은 매개변수를 사용할 수 있습니다.

매개변수설명

adlabels

개체 리스트

이 개체와 연결할 레이블 리스트를 지정합니다. 선택 사항.

bid_amount

정수

bid_strategyLOWEST_COST_WITH_BID_CAP으로 설정된 경우 필수입니다.

이 광고 세트의 입찰가 한도 또는 목표 비용입니다. 최저가 입찰 전략에 사용한 입찰가 한도는 optimization_goal을 기준으로 성과에 지불하려는 최대 입찰가입니다. 목표 비용 입찰 전략에 사용한 목표 비용은 Facebook 입찰을 통해 평균적으로 목표를 달성하고 지출하는 동안 비용을 안정화할 수 있습니다.


bid_amount 광고 레벨이 지정된 경우 이 값을 업데이트하면 이전 광고 레벨 입찰을 덮어씁니다.


입찰가 단위는 USD, EUR 등의 통화에서는 센트이고 JPY, KRW 등의 통화에서는 기본 단위를 의미합니다. 입찰가는 각 통화에 설정되고 미국 화폐 기준 최저 1센트입니다. 다른 통화의 최저 입찰가는 제공되는 미국 달러 금액과 유사한 금액입니다.

bid_strategy

enum

이 광고 세트에서 해당 비즈니스 목표에 알맞은 입찰 전략을 선택합니다. 각 전략은 장단점이 있고 특정 optimization_goals에 제공될 수도 있습니다. 자세한 내용은 입찰 개요, 입찰 전략을 참조하세요.

어드밴티지+ 앱 캠페인 세트를 업데이트할 때 다음 전략을 사용할 수 있습니다.

  • LOWEST_COST_WITHOUT_CAP
  • LOWEST_COST_WITH_BID_CAP

캠페인 예산 최적화를 활성화하면 상위 캠페인 수준에서 bid_strategy를 설정하세요.

daily_budget

int64

계정 통화로 정의된 일일 예산입니다. 기간(end_timestart_time 간의 간격)이 24시간 이상인 광고 세트에만 허용됩니다. daily_budget 또는 lifetime_budget이 0보다 커야 합니다.

end_time

datetime

종료 시간입니다(lifetime_budget을 지정할 경우 필수). UTC UNIX 타임스탬프로 입력해야 합니다. 예: 2015-03-12 23:59:59-07:00 또는 2015-03-12 23:59:59 PDT.


일일 예산을 설정하여 광고 세트를 만들 때 종료 날짜 없이 광고 세트가 유지되도록 하려면 end_time=0으로 설정합니다.

execution_options

enum 리스트

선택 사항.

기본값: set. 기타 옵션:

  • validate_only: 이 옵션을 지정하면 API 호출이 변환을 실행하지 않고 각 필드 값에 대한 검증 규칙을 실행합니다.
  • include_recommendations: 이 옵션은 단독으로 사용할 수 없습니다. 이 옵션을 사용하면 광고 개체 구성에 대한 추천이 포함됩니다. 이 사양에 대한 추천이 있을 경우에만 별도의 추천 섹션이 응답에 포함됩니다.

호출이 검증 또는 검토를 통과하면 {"success": true} 응답을 받습니다. 호출이 검증 또는 검토를 통과하지 못하면 자세한 내용과 함께 오류가 반환됩니다.

lifetime_budget

int64

계정 통화로 지정된 총 예산입니다. 이를 지정하면 end_time도 지정해야 합니다. daily_budget 또는 lifetime_budget이 0보다 커야 합니다.

promoted_object

개체

특정 캠페인 목표에 필수입니다.

이 광고 세트가 모든 광고에서 홍보하는 개체입니다.


최적화 목표가 APP_INSTALLS가 아닌 경우, 다음 옵션을 사용할 수 있습니다.

  • custom_event_type
  • custom_event_str(custom_event_type = OTHER일 경우)

start_time

datetime

세트의 시작 시간입니다. UTC UNIX 타임스탬프로 입력해야 합니다. 예: 2015-03-12 23:59:59-07:00 또는 2015-03-12 23:59:59 PDT.

status

enum

업데이트에 이용 가능한 옵션:

  • ACTIVE
  • PAUSED
  • DELETED
  • ARCHIVED

time_start

datetime

이 광고 세트 게재를 시작하는 시간입니다.

time_stop

datetime

이 광고 세트 게재를 중단하는 시간입니다.

광고 세트 업데이트 예시

curl -X POST \
  -F 'name=Advantage+ app campaigns sample updated ad set' \
  -F 'bid_strategy=LOWEST_COST_WITH_BID_CAP' \
  -F 'bid_amount=200' \
  -F 'access_token={access-token}' \
https://graph.facebook.com/v21.0/{ad-set-id}

광고 업데이트

자동화된 앱 광고를 업데이트하려면 /{ad_id}에 대해 POST 요청을 보냅니다. API 호출에 다음과 같은 매개변수를 사용할 수 있습니다.

매개변수설명

name

문자열

광고 이름입니다.

adlabels

개체 리스트

이 광고와 연결된 광고 레이블입니다.

execution_options

enum 리스트

선택 사항.

기본값: set. 기타 옵션:

  • validate_only: 이 옵션을 지정하면 API 호출이 변환을 실행하지 않고 각 필드의 값에 대해 검증 규칙을 실행합니다.
  • synchronous_ad_review: 이 옵션은 단독으로 사용할 수 없습니다. 항상 validate_only와 함께 지정해야 합니다. 이 옵션을 지정하면 API 호출이 광고 무결성 검증을 실행하며, 여기에는 검증 로직과 더불어 메시지 언어 검사, 이미지 20% 텍스트 규칙 등이 포함됩니다.
  • include_recommendations: 이 옵션은 단독으로 사용할 수 없습니다. 이 옵션을 사용하면 개체 구성에 대한 추천이 포함됩니다. 이 사양에 대한 추천이 있을 경우에만 별도의 추천 섹션이 응답에 포함됩니다.

호출이 검증 또는 검토를 통과하면 {"success": true} 응답을 받습니다. 호출이 검증 또는 검토를 통과하지 못하면 자세한 내용과 함께 오류가 반환됩니다.

status

enum

선택 사항은 다음과 같습니다.

  • ACTIVE
  • PAUSED
  • DELETED
  • ARCHIVED

테스트 중에는 의도치 않게 지출이 발생하지 않도록 광고를 PAUSED 상태로 설정하는 것이 좋습니다.

creative

AdCreative

이 광고에서 사용할 광고 크리에이티브의 크리에이티브 사양입니다. 유효한 필드는 크리에이티브 필드에서 확인할 수 있습니다. 크리에이티브 사양을 다음과 같이 제공합니다.

{
  "creative": {
    \"name\": \"<NAME>\", 
    \"object_story_spec\": <SPEC>
   }
}

광고 업데이트 예시

curl -X POST \
-F 'name=Advantage+ app campaigns sample update ad' \
-F 'creative={"name": {name}, "object_story_spec": {specifications}}' \
-F 'access_token={access-token}' \
https://graph.facebook.com/{ad-id}