개인정보 설정

필수 기능

보안 및 사이트 기본 기능에 필요합니다.

항상 켜짐

Landing 진단 및 마스킹된 리플레이

이 탭에서만 쓰는 익명 ID로 공개 사이트 방문, 이탈 및 가입 링크 상호작용을 측정하며 계정과 연결하지 않습니다. 모든 텍스트는 마스킹되고 양식은 기록에서 차단됩니다.

선택적 사용 분석

PostHog 사용 분석을 허용하시겠어요? 하단에서 언제든 선택을 바꿀 수 있습니다.

이 공개 웹사이트의 세션 리플레이도 허용

선택 사항인 사이트 간 모드의 리플레이는 입력값과 비공개 콘텐츠를 가린 상태로 공개 페이지와 상호작용을 보여 줍니다. App 리플레이는 별도로 선택합니다.

선택 사항인 분석을 허용해야 합니다. 이 사이트 간 모드의 리플레이는 기본적으로 꺼져 있습니다. 위의 Landing 모드는 별도로 실행됩니다.

브라우저 분석 설정은 계정 분석을 켜지 않습니다.

검색은 사용할 때만 로드됩니다. 아래에서 모든 분류를 살펴보세요.

MCP 도구

광고 작업 준비

sosoapi_ads_actions_prepare

정확한 campaign/adset/ad/creative/saved-audience 명령과 검토한 영향을 고정합니다. 새 항목은 PAUSED로 시작하며, 활성화나 예산 영향에는 별도의 실제 운영 권한이 필요합니다.

Markdown으로 읽기

프로필 및 전송 방식

프로필: full · 전송 방식: stdio, http

클라이언트에 표시할 도구는 core 또는 full로 선택하세요. 권한은 변경되지 않습니다. 로컬 파일 업로드에는 stdio가 필요하며 HTTP에서는 사용할 수 없습니다. 검색에 출력 스키마를 포함하려면 SOSOAPI_OUTPUT_SCHEMAS=1을 설정하세요. 이 설정과 관계없이 도구는 구조화된 결과를 반환합니다.

권한 및 부수 효과

주석은 클라이언트의 도구 설명을 돕습니다. 각 호출은 계속 사용자 인증, 역할, 리소스 접근, 기능 권한을 확인합니다.

{
  "readOnlyHint": false,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": true
}

입력 필드

필수는 상위 객체와 선택 분기 안에서 필수라는 뜻입니다. 필수 자식이 선택적 상위 객체를 필수로 만들지는 않습니다. 아래 규칙과 필드명은 계약에서 복사했습니다.

입력 필드
필드 / 분기유형 / 필수 여부제약 조건
$object상위 객체에서 필수
  • additionalProperties: false
workspace_idstring상위 객체에서 필수
  • format: "uuid"
advertising_account_idstring상위 객체에서 필수
  • format: "uuid"
mutation_idstring상위 객체에서 필수
  • format: "uuid"
commandobject상위 객체에서 필수—
commandanyOf 1object상위 객체에서 필수
  • additionalProperties: false
command.operationanyOf 1string상위 객체에서 필수
  • enum: ["create_campaign"]
command.nameanyOf 1string상위 객체에서 필수
  • minLength: 1
  • maxLength: 200
command.budgetanyOf 1object선택 / 항목
  • additionalProperties: false
command.budget.kindanyOf 1string상위 객체에서 필수
  • enum: ["daily","lifetime"]
command.budget.amount_minoranyOf 1string상위 객체에서 필수
  • pattern: "^[1-9]\\d{0,11}$"
command.objectiveanyOf 1string상위 객체에서 필수
  • enum: ["OUTCOME_AWARENESS","OUTCOME_ENGAGEMENT","OUTCOME_LEADS","OUTCOME_SALES","OUTCOME_TRAFFIC","OUTCOME_APP_PROMOTION"]
command.special_ad_categoriesanyOf 1array선택 / 항목
  • maxItems: 4
command.special_ad_categories[]anyOf 1string선택 / 항목
  • enum: ["CREDIT","EMPLOYMENT","HOUSING","ISSUES_ELECTIONS_POLITICS"]
command.statusanyOf 1string선택 / 항목
  • enum: ["PAUSED"]
commandanyOf 2object상위 객체에서 필수
  • additionalProperties: false
command.operationanyOf 2string상위 객체에서 필수
  • enum: ["update_campaign"]
command.object_idanyOf 2string상위 객체에서 필수
  • pattern: "^[1-9]\\d{1,24}$"
command.nameanyOf 2string선택 / 항목
  • minLength: 1
  • maxLength: 200
command.budgetanyOf 2object선택 / 항목
  • additionalProperties: false
command.budget.kindanyOf 2string상위 객체에서 필수
  • enum: ["daily","lifetime"]
command.budget.amount_minoranyOf 2string상위 객체에서 필수
  • pattern: "^[1-9]\\d{0,11}$"
command.statusanyOf 2string선택 / 항목
  • enum: ["ACTIVE","PAUSED","ARCHIVED"]
commandanyOf 3object상위 객체에서 필수
  • additionalProperties: false
command.operationanyOf 3string상위 객체에서 필수
  • enum: ["create_adset"]
command.campaign_idanyOf 3string상위 객체에서 필수
  • pattern: "^[1-9]\\d{1,24}$"
command.nameanyOf 3string상위 객체에서 필수
  • minLength: 1
  • maxLength: 200
command.budgetanyOf 3object선택 / 항목
  • additionalProperties: false
command.budget.kindanyOf 3string상위 객체에서 필수
  • enum: ["daily","lifetime"]
command.budget.amount_minoranyOf 3string상위 객체에서 필수
  • pattern: "^[1-9]\\d{0,11}$"
command.targetinganyOf 3object상위 객체에서 필수
  • additionalProperties: false
command.targeting.geo_locationsanyOf 3object상위 객체에서 필수
  • additionalProperties: false
command.targeting.geo_locations.countriesanyOf 3array상위 객체에서 필수
  • minItems: 1
  • maxItems: 25
command.targeting.geo_locations.countries[]anyOf 3string선택 / 항목
  • pattern: "^[A-Z]{2}$"
command.targeting.age_minanyOf 3integer선택 / 항목
  • minimum: 18
  • maximum: 65
command.targeting.age_maxanyOf 3integer선택 / 항목
  • minimum: 18
  • maximum: 65
command.targeting.gendersanyOf 3array선택 / 항목
  • minItems: 1
  • maxItems: 2
command.targeting.genders[]anyOf 3number선택 / 항목—
command.targeting.genders[]anyOf 3 / anyOf 1number선택 / 항목
  • enum: [1]
command.targeting.genders[]anyOf 3 / anyOf 2number선택 / 항목
  • enum: [2]
command.targeting.localesanyOf 3array선택 / 항목
  • maxItems: 25
command.targeting.locales[]anyOf 3integer선택 / 항목
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
command.targeting.publisher_platformsanyOf 3array상위 객체에서 필수
  • minItems: 1
  • maxItems: 3
command.targeting.publisher_platforms[]anyOf 3string선택 / 항목
  • enum: ["facebook","instagram","threads"]
command.targeting.facebook_positionsanyOf 3array선택 / 항목
  • maxItems: 4
command.targeting.facebook_positions[]anyOf 3string선택 / 항목
  • enum: ["feed","story","facebook_reels","video_feeds"]
command.targeting.instagram_positionsanyOf 3array선택 / 항목
  • maxItems: 4
command.targeting.instagram_positions[]anyOf 3string선택 / 항목
  • enum: ["stream","story","reels","explore"]
command.targeting.threads_positionsanyOf 3array선택 / 항목
  • maxItems: 1
command.targeting.threads_positions[]anyOf 3string선택 / 항목
  • enum: ["threads_stream"]
command.targeting.custom_audience_idsanyOf 3array선택 / 항목
  • maxItems: 4
command.targeting.custom_audience_ids[]anyOf 3string선택 / 항목
  • pattern: "^[1-9]\\d{1,24}$"
command.targeting.excluded_custom_audience_idsanyOf 3array선택 / 항목
  • maxItems: 4
command.targeting.excluded_custom_audience_ids[]anyOf 3string선택 / 항목
  • pattern: "^[1-9]\\d{1,24}$"
command.billing_eventanyOf 3string상위 객체에서 필수
  • enum: ["IMPRESSIONS","LINK_CLICKS"]
command.optimization_goalanyOf 3string상위 객체에서 필수
  • enum: ["REACH","IMPRESSIONS","LINK_CLICKS","LANDING_PAGE_VIEWS","OFFSITE_CONVERSIONS","LEAD_GENERATION"]
command.bid_strategyanyOf 3string선택 / 항목
  • enum: ["LOWEST_COST_WITHOUT_CAP"]
command.start_timeanyOf 3string선택 / 항목
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
command.end_timeanyOf 3string선택 / 항목
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
command.promoted_objectanyOf 3object선택 / 항목
  • additionalProperties: false
command.promoted_object.page_idanyOf 3string선택 / 항목
  • pattern: "^[1-9]\\d{1,24}$"
command.promoted_object.pixel_idanyOf 3string선택 / 항목
  • pattern: "^[1-9]\\d{1,24}$"
command.promoted_object.custom_event_typeanyOf 3string선택 / 항목
  • enum: ["PURCHASE","LEAD","COMPLETE_REGISTRATION","ADD_TO_CART"]
command.statusanyOf 3string선택 / 항목
  • enum: ["PAUSED"]
commandanyOf 4object상위 객체에서 필수
  • additionalProperties: false
command.operationanyOf 4string상위 객체에서 필수
  • enum: ["update_adset"]
command.object_idanyOf 4string상위 객체에서 필수
  • pattern: "^[1-9]\\d{1,24}$"
command.nameanyOf 4string선택 / 항목
  • minLength: 1
  • maxLength: 200
command.budgetanyOf 4object선택 / 항목
  • additionalProperties: false
command.budget.kindanyOf 4string상위 객체에서 필수
  • enum: ["daily","lifetime"]
command.budget.amount_minoranyOf 4string상위 객체에서 필수
  • pattern: "^[1-9]\\d{0,11}$"
command.statusanyOf 4string선택 / 항목
  • enum: ["ACTIVE","PAUSED","ARCHIVED"]
command.targetinganyOf 4object선택 / 항목
  • additionalProperties: false
command.targeting.geo_locationsanyOf 4object상위 객체에서 필수
  • additionalProperties: false
command.targeting.geo_locations.countriesanyOf 4array상위 객체에서 필수
  • minItems: 1
  • maxItems: 25
command.targeting.geo_locations.countries[]anyOf 4string선택 / 항목
  • pattern: "^[A-Z]{2}$"
command.targeting.age_minanyOf 4integer선택 / 항목
  • minimum: 18
  • maximum: 65
command.targeting.age_maxanyOf 4integer선택 / 항목
  • minimum: 18
  • maximum: 65
command.targeting.gendersanyOf 4array선택 / 항목
  • minItems: 1
  • maxItems: 2
command.targeting.genders[]anyOf 4number선택 / 항목—
command.targeting.genders[]anyOf 4 / anyOf 1number선택 / 항목
  • enum: [1]
command.targeting.genders[]anyOf 4 / anyOf 2number선택 / 항목
  • enum: [2]
command.targeting.localesanyOf 4array선택 / 항목
  • maxItems: 25
command.targeting.locales[]anyOf 4integer선택 / 항목
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
command.targeting.publisher_platformsanyOf 4array상위 객체에서 필수
  • minItems: 1
  • maxItems: 3
command.targeting.publisher_platforms[]anyOf 4string선택 / 항목
  • enum: ["facebook","instagram","threads"]
command.targeting.facebook_positionsanyOf 4array선택 / 항목
  • maxItems: 4
command.targeting.facebook_positions[]anyOf 4string선택 / 항목
  • enum: ["feed","story","facebook_reels","video_feeds"]
command.targeting.instagram_positionsanyOf 4array선택 / 항목
  • maxItems: 4
command.targeting.instagram_positions[]anyOf 4string선택 / 항목
  • enum: ["stream","story","reels","explore"]
command.targeting.threads_positionsanyOf 4array선택 / 항목
  • maxItems: 1
command.targeting.threads_positions[]anyOf 4string선택 / 항목
  • enum: ["threads_stream"]
command.targeting.custom_audience_idsanyOf 4array선택 / 항목
  • maxItems: 4
command.targeting.custom_audience_ids[]anyOf 4string선택 / 항목
  • pattern: "^[1-9]\\d{1,24}$"
command.targeting.excluded_custom_audience_idsanyOf 4array선택 / 항목
  • maxItems: 4
command.targeting.excluded_custom_audience_ids[]anyOf 4string선택 / 항목
  • pattern: "^[1-9]\\d{1,24}$"
command.start_timeanyOf 4string선택 / 항목
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
command.end_timeanyOf 4string선택 / 항목
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
commandanyOf 5object상위 객체에서 필수
  • additionalProperties: false
command.operationanyOf 5string상위 객체에서 필수
  • enum: ["create_ad"]
command.nameanyOf 5string상위 객체에서 필수
  • minLength: 1
  • maxLength: 200
command.adset_idanyOf 5string상위 객체에서 필수
  • pattern: "^[1-9]\\d{1,24}$"
command.creative_idanyOf 5string상위 객체에서 필수
  • pattern: "^[1-9]\\d{1,24}$"
command.statusanyOf 5string선택 / 항목
  • enum: ["PAUSED"]
commandanyOf 6object상위 객체에서 필수
  • additionalProperties: false
command.operationanyOf 6string상위 객체에서 필수
  • enum: ["update_ad"]
command.object_idanyOf 6string상위 객체에서 필수
  • pattern: "^[1-9]\\d{1,24}$"
command.nameanyOf 6string선택 / 항목
  • minLength: 1
  • maxLength: 200
command.creative_idanyOf 6string선택 / 항목
  • pattern: "^[1-9]\\d{1,24}$"
command.statusanyOf 6string선택 / 항목
  • enum: ["ACTIVE","PAUSED","ARCHIVED"]
commandanyOf 7object상위 객체에서 필수
  • additionalProperties: false
command.operationanyOf 7string상위 객체에서 필수
  • enum: ["create_creative"]
command.nameanyOf 7string상위 객체에서 필수
  • minLength: 1
  • maxLength: 200
command.object_story_specanyOf 7object선택 / 항목
  • additionalProperties: false
command.object_story_spec.page_idanyOf 7string상위 객체에서 필수
  • pattern: "^[1-9]\\d{1,24}$"
command.object_story_spec.instagram_user_idanyOf 7string선택 / 항목
  • pattern: "^[1-9]\\d{1,24}$"
command.object_story_spec.link_dataanyOf 7object상위 객체에서 필수
  • additionalProperties: false
command.object_story_spec.link_data.linkanyOf 7string상위 객체에서 필수
  • format: "uri"
  • maxLength: 2048
command.object_story_spec.link_data.messageanyOf 7string상위 객체에서 필수
  • maxLength: 5000
command.object_story_spec.link_data.nameanyOf 7string선택 / 항목
  • minLength: 1
  • maxLength: 200
command.object_story_spec.link_data.image_hashanyOf 7string상위 객체에서 필수
  • pattern: "^[a-fA-F0-9]{16,128}$"
command.object_story_spec.link_data.call_to_actionanyOf 7string선택 / 항목
  • enum: ["LEARN_MORE","SHOP_NOW","SIGN_UP","CONTACT_US"]
command.object_story_idanyOf 7string선택 / 항목
  • pattern: "^[1-9]\\d{1,24}_[1-9]\\d{1,24}$"
commandanyOf 8object상위 객체에서 필수
  • additionalProperties: false
command.operationanyOf 8string상위 객체에서 필수
  • enum: ["create_saved_audience"]
command.nameanyOf 8string상위 객체에서 필수
  • minLength: 1
  • maxLength: 200
command.targetinganyOf 8object상위 객체에서 필수
  • additionalProperties: false
command.targeting.geo_locationsanyOf 8object상위 객체에서 필수
  • additionalProperties: false
command.targeting.geo_locations.countriesanyOf 8array상위 객체에서 필수
  • minItems: 1
  • maxItems: 25
command.targeting.geo_locations.countries[]anyOf 8string선택 / 항목
  • pattern: "^[A-Z]{2}$"
command.targeting.age_minanyOf 8integer선택 / 항목
  • minimum: 18
  • maximum: 65
command.targeting.age_maxanyOf 8integer선택 / 항목
  • minimum: 18
  • maximum: 65
command.targeting.gendersanyOf 8array선택 / 항목
  • minItems: 1
  • maxItems: 2
command.targeting.genders[]anyOf 8number선택 / 항목—
command.targeting.genders[]anyOf 8 / anyOf 1number선택 / 항목
  • enum: [1]
command.targeting.genders[]anyOf 8 / anyOf 2number선택 / 항목
  • enum: [2]
command.targeting.localesanyOf 8array선택 / 항목
  • maxItems: 25
command.targeting.locales[]anyOf 8integer선택 / 항목
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
command.targeting.publisher_platformsanyOf 8array상위 객체에서 필수
  • minItems: 1
  • maxItems: 3
command.targeting.publisher_platforms[]anyOf 8string선택 / 항목
  • enum: ["facebook","instagram","threads"]
command.targeting.facebook_positionsanyOf 8array선택 / 항목
  • maxItems: 4
command.targeting.facebook_positions[]anyOf 8string선택 / 항목
  • enum: ["feed","story","facebook_reels","video_feeds"]
command.targeting.instagram_positionsanyOf 8array선택 / 항목
  • maxItems: 4
command.targeting.instagram_positions[]anyOf 8string선택 / 항목
  • enum: ["stream","story","reels","explore"]
command.targeting.threads_positionsanyOf 8array선택 / 항목
  • maxItems: 1
command.targeting.threads_positions[]anyOf 8string선택 / 항목
  • enum: ["threads_stream"]
command.targeting.custom_audience_idsanyOf 8array선택 / 항목
  • maxItems: 4
command.targeting.custom_audience_ids[]anyOf 8string선택 / 항목
  • pattern: "^[1-9]\\d{1,24}$"
command.targeting.excluded_custom_audience_idsanyOf 8array선택 / 항목
  • maxItems: 4
command.targeting.excluded_custom_audience_ids[]anyOf 8string선택 / 항목
  • pattern: "^[1-9]\\d{1,24}$"
commandanyOf 9object상위 객체에서 필수
  • additionalProperties: false
command.operationanyOf 9string상위 객체에서 필수
  • enum: ["update_saved_audience"]
command.object_idanyOf 9string상위 객체에서 필수
  • pattern: "^[1-9]\\d{1,24}$"
command.nameanyOf 9string선택 / 항목
  • minLength: 1
  • maxLength: 200
command.targetinganyOf 9object선택 / 항목
  • additionalProperties: false
command.targeting.geo_locationsanyOf 9object상위 객체에서 필수
  • additionalProperties: false
command.targeting.geo_locations.countriesanyOf 9array상위 객체에서 필수
  • minItems: 1
  • maxItems: 25
command.targeting.geo_locations.countries[]anyOf 9string선택 / 항목
  • pattern: "^[A-Z]{2}$"
command.targeting.age_minanyOf 9integer선택 / 항목
  • minimum: 18
  • maximum: 65
command.targeting.age_maxanyOf 9integer선택 / 항목
  • minimum: 18
  • maximum: 65
command.targeting.gendersanyOf 9array선택 / 항목
  • minItems: 1
  • maxItems: 2
command.targeting.genders[]anyOf 9number선택 / 항목—
command.targeting.genders[]anyOf 9 / anyOf 1number선택 / 항목
  • enum: [1]
command.targeting.genders[]anyOf 9 / anyOf 2number선택 / 항목
  • enum: [2]
command.targeting.localesanyOf 9array선택 / 항목
  • maxItems: 25
command.targeting.locales[]anyOf 9integer선택 / 항목
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
command.targeting.publisher_platformsanyOf 9array상위 객체에서 필수
  • minItems: 1
  • maxItems: 3
command.targeting.publisher_platforms[]anyOf 9string선택 / 항목
  • enum: ["facebook","instagram","threads"]
command.targeting.facebook_positionsanyOf 9array선택 / 항목
  • maxItems: 4
command.targeting.facebook_positions[]anyOf 9string선택 / 항목
  • enum: ["feed","story","facebook_reels","video_feeds"]
command.targeting.instagram_positionsanyOf 9array선택 / 항목
  • maxItems: 4
command.targeting.instagram_positions[]anyOf 9string선택 / 항목
  • enum: ["stream","story","reels","explore"]
command.targeting.threads_positionsanyOf 9array선택 / 항목
  • maxItems: 1
command.targeting.threads_positions[]anyOf 9string선택 / 항목
  • enum: ["threads_stream"]
command.targeting.custom_audience_idsanyOf 9array선택 / 항목
  • maxItems: 4
command.targeting.custom_audience_ids[]anyOf 9string선택 / 항목
  • pattern: "^[1-9]\\d{1,24}$"
command.targeting.excluded_custom_audience_idsanyOf 9array선택 / 항목
  • maxItems: 4
command.targeting.excluded_custom_audience_ids[]anyOf 9string선택 / 항목
  • pattern: "^[1-9]\\d{1,24}$"
전체 JSON Schema
{
  "type": "object",
  "properties": {
    "workspace_id": {
      "type": "string",
      "format": "uuid"
    },
    "advertising_account_id": {
      "type": "string",
      "format": "uuid"
    },
    "mutation_id": {
      "type": "string",
      "format": "uuid"
    },
    "command": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "operation": {
              "type": "string",
              "enum": [
                "create_campaign"
              ]
            },
            "name": {
              "$ref": "#/$defs/s4"
            },
            "budget": {
              "$ref": "#/$defs/s2"
            },
            "objective": {
              "type": "string",
              "enum": [
                "OUTCOME_AWARENESS",
                "OUTCOME_ENGAGEMENT",
                "OUTCOME_LEADS",
                "OUTCOME_SALES",
                "OUTCOME_TRAFFIC",
                "OUTCOME_APP_PROMOTION"
              ]
            },
            "special_ad_categories": {
              "maxItems": 4,
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "CREDIT",
                  "EMPLOYMENT",
                  "HOUSING",
                  "ISSUES_ELECTIONS_POLITICS"
                ]
              }
            },
            "status": {
              "$ref": "#/$defs/s6"
            }
          },
          "required": [
            "operation",
            "name",
            "objective"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "operation": {
              "type": "string",
              "enum": [
                "update_campaign"
              ]
            },
            "object_id": {
              "$ref": "#/$defs/s3"
            },
            "name": {
              "$ref": "#/$defs/s4"
            },
            "budget": {
              "$ref": "#/$defs/s2"
            },
            "status": {
              "$ref": "#/$defs/s5"
            }
          },
          "required": [
            "operation",
            "object_id"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "operation": {
              "type": "string",
              "enum": [
                "create_adset"
              ]
            },
            "campaign_id": {
              "$ref": "#/$defs/s3"
            },
            "name": {
              "$ref": "#/$defs/s4"
            },
            "budget": {
              "$ref": "#/$defs/s2"
            },
            "targeting": {
              "$ref": "#/$defs/s0"
            },
            "billing_event": {
              "type": "string",
              "enum": [
                "IMPRESSIONS",
                "LINK_CLICKS"
              ]
            },
            "optimization_goal": {
              "type": "string",
              "enum": [
                "REACH",
                "IMPRESSIONS",
                "LINK_CLICKS",
                "LANDING_PAGE_VIEWS",
                "OFFSITE_CONVERSIONS",
                "LEAD_GENERATION"
              ]
            },
            "bid_strategy": {
              "type": "string",
              "enum": [
                "LOWEST_COST_WITHOUT_CAP"
              ]
            },
            "start_time": {
              "$ref": "#/$defs/s1"
            },
            "end_time": {
              "$ref": "#/$defs/s1"
            },
            "promoted_object": {
              "type": "object",
              "properties": {
                "page_id": {
                  "$ref": "#/$defs/s3"
                },
                "pixel_id": {
                  "$ref": "#/$defs/s3"
                },
                "custom_event_type": {
                  "type": "string",
                  "enum": [
                    "PURCHASE",
                    "LEAD",
                    "COMPLETE_REGISTRATION",
                    "ADD_TO_CART"
                  ]
                }
              },
              "additionalProperties": false
            },
            "status": {
              "$ref": "#/$defs/s6"
            }
          },
          "required": [
            "operation",
            "campaign_id",
            "name",
            "targeting",
            "billing_event",
            "optimization_goal"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "operation": {
              "type": "string",
              "enum": [
                "update_adset"
              ]
            },
            "object_id": {
              "$ref": "#/$defs/s3"
            },
            "name": {
              "$ref": "#/$defs/s4"
            },
            "budget": {
              "$ref": "#/$defs/s2"
            },
            "status": {
              "$ref": "#/$defs/s5"
            },
            "targeting": {
              "$ref": "#/$defs/s0"
            },
            "start_time": {
              "$ref": "#/$defs/s1"
            },
            "end_time": {
              "$ref": "#/$defs/s1"
            }
          },
          "required": [
            "operation",
            "object_id"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "operation": {
              "type": "string",
              "enum": [
                "create_ad"
              ]
            },
            "name": {
              "$ref": "#/$defs/s4"
            },
            "adset_id": {
              "$ref": "#/$defs/s3"
            },
            "creative_id": {
              "$ref": "#/$defs/s3"
            },
            "status": {
              "$ref": "#/$defs/s6"
            }
          },
          "required": [
            "operation",
            "name",
            "adset_id",
            "creative_id"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "operation": {
              "type": "string",
              "enum": [
                "update_ad"
              ]
            },
            "object_id": {
              "$ref": "#/$defs/s3"
            },
            "name": {
              "$ref": "#/$defs/s4"
            },
            "creative_id": {
              "$ref": "#/$defs/s3"
            },
            "status": {
              "$ref": "#/$defs/s5"
            }
          },
          "required": [
            "operation",
            "object_id"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "operation": {
              "type": "string",
              "enum": [
                "create_creative"
              ]
            },
            "name": {
              "$ref": "#/$defs/s4"
            },
            "object_story_spec": {
              "type": "object",
              "properties": {
                "page_id": {
                  "$ref": "#/$defs/s3"
                },
                "instagram_user_id": {
                  "$ref": "#/$defs/s3"
                },
                "link_data": {
                  "type": "object",
                  "properties": {
                    "link": {
                      "type": "string",
                      "maxLength": 2048,
                      "format": "uri"
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 5000
                    },
                    "name": {
                      "$ref": "#/$defs/s4"
                    },
                    "image_hash": {
                      "type": "string",
                      "pattern": "^[a-fA-F0-9]{16,128}$"
                    },
                    "call_to_action": {
                      "type": "string",
                      "enum": [
                        "LEARN_MORE",
                        "SHOP_NOW",
                        "SIGN_UP",
                        "CONTACT_US"
                      ]
                    }
                  },
                  "required": [
                    "link",
                    "message",
                    "image_hash"
                  ],
                  "additionalProperties": false
                }
              },
              "required": [
                "page_id",
                "link_data"
              ],
              "additionalProperties": false
            },
            "object_story_id": {
              "type": "string",
              "pattern": "^[1-9]\\d{1,24}_[1-9]\\d{1,24}$"
            }
          },
          "required": [
            "operation",
            "name"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "operation": {
              "type": "string",
              "enum": [
                "create_saved_audience"
              ]
            },
            "name": {
              "$ref": "#/$defs/s4"
            },
            "targeting": {
              "$ref": "#/$defs/s0"
            }
          },
          "required": [
            "operation",
            "name",
            "targeting"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "operation": {
              "type": "string",
              "enum": [
                "update_saved_audience"
              ]
            },
            "object_id": {
              "$ref": "#/$defs/s3"
            },
            "name": {
              "$ref": "#/$defs/s4"
            },
            "targeting": {
              "$ref": "#/$defs/s0"
            }
          },
          "required": [
            "operation",
            "object_id"
          ],
          "additionalProperties": false
        }
      ]
    }
  },
  "required": [
    "workspace_id",
    "advertising_account_id",
    "mutation_id",
    "command"
  ],
  "additionalProperties": false,
  "$defs": {
    "s0": {
      "type": "object",
      "properties": {
        "geo_locations": {
          "type": "object",
          "properties": {
            "countries": {
              "minItems": 1,
              "maxItems": 25,
              "type": "array",
              "items": {
                "type": "string",
                "pattern": "^[A-Z]{2}$"
              }
            }
          },
          "required": [
            "countries"
          ],
          "additionalProperties": false
        },
        "age_min": {
          "type": "integer",
          "minimum": 18,
          "maximum": 65
        },
        "age_max": {
          "type": "integer",
          "minimum": 18,
          "maximum": 65
        },
        "genders": {
          "minItems": 1,
          "maxItems": 2,
          "type": "array",
          "items": {
            "anyOf": [
              {
                "type": "number",
                "enum": [
                  1
                ]
              },
              {
                "type": "number",
                "enum": [
                  2
                ]
              }
            ]
          }
        },
        "locales": {
          "maxItems": 25,
          "type": "array",
          "items": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          }
        },
        "publisher_platforms": {
          "minItems": 1,
          "maxItems": 3,
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "facebook",
              "instagram",
              "threads"
            ]
          }
        },
        "facebook_positions": {
          "maxItems": 4,
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "feed",
              "story",
              "facebook_reels",
              "video_feeds"
            ]
          }
        },
        "instagram_positions": {
          "maxItems": 4,
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "stream",
              "story",
              "reels",
              "explore"
            ]
          }
        },
        "threads_positions": {
          "maxItems": 1,
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "threads_stream"
            ]
          }
        },
        "custom_audience_ids": {
          "maxItems": 4,
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^[1-9]\\d{1,24}$"
          }
        },
        "excluded_custom_audience_ids": {
          "maxItems": 4,
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^[1-9]\\d{1,24}$"
          }
        }
      },
      "required": [
        "geo_locations",
        "publisher_platforms"
      ],
      "additionalProperties": false
    },
    "s1": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
    },
    "s2": {
      "type": "object",
      "properties": {
        "kind": {
          "type": "string",
          "enum": [
            "daily",
            "lifetime"
          ]
        },
        "amount_minor": {
          "type": "string",
          "pattern": "^[1-9]\\d{0,11}$"
        }
      },
      "required": [
        "kind",
        "amount_minor"
      ],
      "additionalProperties": false
    },
    "s3": {
      "type": "string",
      "pattern": "^[1-9]\\d{1,24}$"
    },
    "s4": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "s5": {
      "type": "string",
      "enum": [
        "ACTIVE",
        "PAUSED",
        "ARCHIVED"
      ]
    },
    "s6": {
      "type": "string",
      "enum": [
        "PAUSED"
      ]
    }
  }
}

구조화된 출력

이 스키마는 성공한 도구 결과의 structuredContent를 설명합니다. MCP 응답에는 content도 포함되며 호출 실패 시 isError가 설정될 수 있습니다. 게시 시 접수된 요청이나 텍스트 응답을 확인으로 간주하지 말고 게시물의 최종 결과를 읽으세요. 연결된 API 작업에 권한과 재시도 규칙이 설명되어 있습니다.

필수는 상위 객체와 선택 분기 안에서 필수라는 뜻입니다. 필수 자식이 선택적 상위 객체를 필수로 만들지는 않습니다. 아래 규칙과 필드명은 계약에서 복사했습니다.

구조화된 출력
필드 / 분기유형 / 필수 여부제약 조건
$object상위 객체에서 필수
  • additionalProperties: false
contract_versionstring상위 객체에서 필수
  • const: "advertising/v1"
prepare_tokenstring상위 객체에서 필수
  • minLength: 32
  • maxLength: 128
expires_atstring상위 객체에서 필수
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
actionobject상위 객체에서 필수
  • additionalProperties: false
action.idstring상위 객체에서 필수
  • format: "uuid"
action.workspace_idstring상위 객체에서 필수
  • format: "uuid"
action.advertising_account_idstring상위 객체에서 필수
  • format: "uuid"
action.mutation_idstring상위 객체에서 필수
  • format: "uuid"
action.statusstring상위 객체에서 필수
  • enum: ["prepared","queued","processing","succeeded","failed","unknown","cancelled"]
action.commandobject상위 객체에서 필수—
action.commandoneOf 1object상위 객체에서 필수
  • additionalProperties: false
action.command.operationoneOf 1string상위 객체에서 필수
  • const: "create_campaign"
action.command.nameoneOf 1string상위 객체에서 필수
  • minLength: 1
  • maxLength: 200
action.command.budgetoneOf 1object선택 / 항목
  • additionalProperties: false
action.command.budget.kindoneOf 1string상위 객체에서 필수
  • enum: ["daily","lifetime"]
action.command.budget.amount_minoroneOf 1string상위 객체에서 필수
  • pattern: "^[1-9]\\d{0,11}$"
action.command.objectiveoneOf 1string상위 객체에서 필수
  • enum: ["OUTCOME_AWARENESS","OUTCOME_ENGAGEMENT","OUTCOME_LEADS","OUTCOME_SALES","OUTCOME_TRAFFIC","OUTCOME_APP_PROMOTION"]
action.command.special_ad_categoriesoneOf 1array상위 객체에서 필수
  • maxItems: 4
  • default: []
action.command.special_ad_categories[]oneOf 1string선택 / 항목
  • enum: ["CREDIT","EMPLOYMENT","HOUSING","ISSUES_ELECTIONS_POLITICS"]
action.command.statusoneOf 1string상위 객체에서 필수
  • const: "PAUSED"
  • default: "PAUSED"
action.commandoneOf 2object상위 객체에서 필수
  • additionalProperties: false
action.command.operationoneOf 2string상위 객체에서 필수
  • const: "update_campaign"
action.command.object_idoneOf 2string상위 객체에서 필수
  • pattern: "^[1-9]\\d{1,24}$"
action.command.nameoneOf 2string선택 / 항목
  • minLength: 1
  • maxLength: 200
action.command.budgetoneOf 2object선택 / 항목
  • additionalProperties: false
action.command.budget.kindoneOf 2string상위 객체에서 필수
  • enum: ["daily","lifetime"]
action.command.budget.amount_minoroneOf 2string상위 객체에서 필수
  • pattern: "^[1-9]\\d{0,11}$"
action.command.statusoneOf 2string선택 / 항목
  • enum: ["ACTIVE","PAUSED","ARCHIVED"]
action.commandoneOf 3object상위 객체에서 필수
  • additionalProperties: false
action.command.operationoneOf 3string상위 객체에서 필수
  • const: "create_adset"
action.command.campaign_idoneOf 3string상위 객체에서 필수
  • pattern: "^[1-9]\\d{1,24}$"
action.command.nameoneOf 3string상위 객체에서 필수
  • minLength: 1
  • maxLength: 200
action.command.budgetoneOf 3object선택 / 항목
  • additionalProperties: false
action.command.budget.kindoneOf 3string상위 객체에서 필수
  • enum: ["daily","lifetime"]
action.command.budget.amount_minoroneOf 3string상위 객체에서 필수
  • pattern: "^[1-9]\\d{0,11}$"
action.command.targetingoneOf 3object상위 객체에서 필수
  • additionalProperties: false
action.command.targeting.geo_locationsoneOf 3object상위 객체에서 필수
  • additionalProperties: false
action.command.targeting.geo_locations.countriesoneOf 3array상위 객체에서 필수
  • minItems: 1
  • maxItems: 25
action.command.targeting.geo_locations.countries[]oneOf 3string선택 / 항목
  • pattern: "^[A-Z]{2}$"
action.command.targeting.age_minoneOf 3integer상위 객체에서 필수
  • minimum: 18
  • maximum: 65
  • default: 18
action.command.targeting.age_maxoneOf 3integer상위 객체에서 필수
  • minimum: 18
  • maximum: 65
  • default: 65
action.command.targeting.gendersoneOf 3array선택 / 항목
  • minItems: 1
  • maxItems: 2
action.command.targeting.genders[]oneOf 3number선택 / 항목—
action.command.targeting.genders[]oneOf 3 / anyOf 1number선택 / 항목
  • const: 1
action.command.targeting.genders[]oneOf 3 / anyOf 2number선택 / 항목
  • const: 2
action.command.targeting.localesoneOf 3array선택 / 항목
  • maxItems: 25
action.command.targeting.locales[]oneOf 3integer선택 / 항목
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
action.command.targeting.publisher_platformsoneOf 3array상위 객체에서 필수
  • minItems: 1
  • maxItems: 3
action.command.targeting.publisher_platforms[]oneOf 3string선택 / 항목
  • enum: ["facebook","instagram","threads"]
action.command.targeting.facebook_positionsoneOf 3array선택 / 항목
  • maxItems: 4
action.command.targeting.facebook_positions[]oneOf 3string선택 / 항목
  • enum: ["feed","story","facebook_reels","video_feeds"]
action.command.targeting.instagram_positionsoneOf 3array선택 / 항목
  • maxItems: 4
action.command.targeting.instagram_positions[]oneOf 3string선택 / 항목
  • enum: ["stream","story","reels","explore"]
action.command.targeting.threads_positionsoneOf 3array선택 / 항목
  • maxItems: 1
action.command.targeting.threads_positions[]oneOf 3string선택 / 항목
  • const: "threads_stream"
action.command.targeting.custom_audience_idsoneOf 3array선택 / 항목
  • maxItems: 4
action.command.targeting.custom_audience_ids[]oneOf 3string선택 / 항목
  • pattern: "^[1-9]\\d{1,24}$"
action.command.targeting.excluded_custom_audience_idsoneOf 3array선택 / 항목
  • maxItems: 4
action.command.targeting.excluded_custom_audience_ids[]oneOf 3string선택 / 항목
  • pattern: "^[1-9]\\d{1,24}$"
action.command.billing_eventoneOf 3string상위 객체에서 필수
  • enum: ["IMPRESSIONS","LINK_CLICKS"]
action.command.optimization_goaloneOf 3string상위 객체에서 필수
  • enum: ["REACH","IMPRESSIONS","LINK_CLICKS","LANDING_PAGE_VIEWS","OFFSITE_CONVERSIONS","LEAD_GENERATION"]
action.command.bid_strategyoneOf 3string상위 객체에서 필수
  • const: "LOWEST_COST_WITHOUT_CAP"
  • default: "LOWEST_COST_WITHOUT_CAP"
action.command.start_timeoneOf 3string선택 / 항목
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
action.command.end_timeoneOf 3string선택 / 항목
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
action.command.promoted_objectoneOf 3object선택 / 항목
  • additionalProperties: false
action.command.promoted_object.page_idoneOf 3string선택 / 항목
  • pattern: "^[1-9]\\d{1,24}$"
action.command.promoted_object.pixel_idoneOf 3string선택 / 항목
  • pattern: "^[1-9]\\d{1,24}$"
action.command.promoted_object.custom_event_typeoneOf 3string선택 / 항목
  • enum: ["PURCHASE","LEAD","COMPLETE_REGISTRATION","ADD_TO_CART"]
action.command.statusoneOf 3string상위 객체에서 필수
  • const: "PAUSED"
  • default: "PAUSED"
action.commandoneOf 4object상위 객체에서 필수
  • additionalProperties: false
action.command.operationoneOf 4string상위 객체에서 필수
  • const: "update_adset"
action.command.object_idoneOf 4string상위 객체에서 필수
  • pattern: "^[1-9]\\d{1,24}$"
action.command.nameoneOf 4string선택 / 항목
  • minLength: 1
  • maxLength: 200
action.command.budgetoneOf 4object선택 / 항목
  • additionalProperties: false
action.command.budget.kindoneOf 4string상위 객체에서 필수
  • enum: ["daily","lifetime"]
action.command.budget.amount_minoroneOf 4string상위 객체에서 필수
  • pattern: "^[1-9]\\d{0,11}$"
action.command.statusoneOf 4string선택 / 항목
  • enum: ["ACTIVE","PAUSED","ARCHIVED"]
action.command.targetingoneOf 4object선택 / 항목
  • additionalProperties: false
action.command.targeting.geo_locationsoneOf 4object상위 객체에서 필수
  • additionalProperties: false
action.command.targeting.geo_locations.countriesoneOf 4array상위 객체에서 필수
  • minItems: 1
  • maxItems: 25
action.command.targeting.geo_locations.countries[]oneOf 4string선택 / 항목
  • pattern: "^[A-Z]{2}$"
action.command.targeting.age_minoneOf 4integer상위 객체에서 필수
  • minimum: 18
  • maximum: 65
  • default: 18
action.command.targeting.age_maxoneOf 4integer상위 객체에서 필수
  • minimum: 18
  • maximum: 65
  • default: 65
action.command.targeting.gendersoneOf 4array선택 / 항목
  • minItems: 1
  • maxItems: 2
action.command.targeting.genders[]oneOf 4number선택 / 항목—
action.command.targeting.genders[]oneOf 4 / anyOf 1number선택 / 항목
  • const: 1
action.command.targeting.genders[]oneOf 4 / anyOf 2number선택 / 항목
  • const: 2
action.command.targeting.localesoneOf 4array선택 / 항목
  • maxItems: 25
action.command.targeting.locales[]oneOf 4integer선택 / 항목
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
action.command.targeting.publisher_platformsoneOf 4array상위 객체에서 필수
  • minItems: 1
  • maxItems: 3
action.command.targeting.publisher_platforms[]oneOf 4string선택 / 항목
  • enum: ["facebook","instagram","threads"]
action.command.targeting.facebook_positionsoneOf 4array선택 / 항목
  • maxItems: 4
action.command.targeting.facebook_positions[]oneOf 4string선택 / 항목
  • enum: ["feed","story","facebook_reels","video_feeds"]
action.command.targeting.instagram_positionsoneOf 4array선택 / 항목
  • maxItems: 4
action.command.targeting.instagram_positions[]oneOf 4string선택 / 항목
  • enum: ["stream","story","reels","explore"]
action.command.targeting.threads_positionsoneOf 4array선택 / 항목
  • maxItems: 1
action.command.targeting.threads_positions[]oneOf 4string선택 / 항목
  • const: "threads_stream"
action.command.targeting.custom_audience_idsoneOf 4array선택 / 항목
  • maxItems: 4
action.command.targeting.custom_audience_ids[]oneOf 4string선택 / 항목
  • pattern: "^[1-9]\\d{1,24}$"
action.command.targeting.excluded_custom_audience_idsoneOf 4array선택 / 항목
  • maxItems: 4
action.command.targeting.excluded_custom_audience_ids[]oneOf 4string선택 / 항목
  • pattern: "^[1-9]\\d{1,24}$"
action.command.start_timeoneOf 4string선택 / 항목
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
action.command.end_timeoneOf 4string선택 / 항목
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
action.commandoneOf 5object상위 객체에서 필수
  • additionalProperties: false
action.command.operationoneOf 5string상위 객체에서 필수
  • const: "create_ad"
action.command.nameoneOf 5string상위 객체에서 필수
  • minLength: 1
  • maxLength: 200
action.command.adset_idoneOf 5string상위 객체에서 필수
  • pattern: "^[1-9]\\d{1,24}$"
action.command.creative_idoneOf 5string상위 객체에서 필수
  • pattern: "^[1-9]\\d{1,24}$"
action.command.statusoneOf 5string상위 객체에서 필수
  • const: "PAUSED"
  • default: "PAUSED"
action.commandoneOf 6object상위 객체에서 필수
  • additionalProperties: false
action.command.operationoneOf 6string상위 객체에서 필수
  • const: "update_ad"
action.command.object_idoneOf 6string상위 객체에서 필수
  • pattern: "^[1-9]\\d{1,24}$"
action.command.nameoneOf 6string선택 / 항목
  • minLength: 1
  • maxLength: 200
action.command.creative_idoneOf 6string선택 / 항목
  • pattern: "^[1-9]\\d{1,24}$"
action.command.statusoneOf 6string선택 / 항목
  • enum: ["ACTIVE","PAUSED","ARCHIVED"]
action.commandoneOf 7object상위 객체에서 필수
  • additionalProperties: false
action.command.operationoneOf 7string상위 객체에서 필수
  • const: "create_creative"
action.command.nameoneOf 7string상위 객체에서 필수
  • minLength: 1
  • maxLength: 200
action.command.object_story_speconeOf 7object선택 / 항목
  • additionalProperties: false
action.command.object_story_spec.page_idoneOf 7string상위 객체에서 필수
  • pattern: "^[1-9]\\d{1,24}$"
action.command.object_story_spec.instagram_user_idoneOf 7string선택 / 항목
  • pattern: "^[1-9]\\d{1,24}$"
action.command.object_story_spec.link_dataoneOf 7object상위 객체에서 필수
  • additionalProperties: false
action.command.object_story_spec.link_data.linkoneOf 7string상위 객체에서 필수
  • format: "uri"
  • maxLength: 2048
action.command.object_story_spec.link_data.messageoneOf 7string상위 객체에서 필수
  • maxLength: 5000
action.command.object_story_spec.link_data.nameoneOf 7string선택 / 항목
  • minLength: 1
  • maxLength: 200
action.command.object_story_spec.link_data.image_hashoneOf 7string상위 객체에서 필수
  • pattern: "^[a-fA-F0-9]{16,128}$"
action.command.object_story_spec.link_data.call_to_actiononeOf 7string선택 / 항목
  • enum: ["LEARN_MORE","SHOP_NOW","SIGN_UP","CONTACT_US"]
action.command.object_story_idoneOf 7string선택 / 항목
  • pattern: "^[1-9]\\d{1,24}_[1-9]\\d{1,24}$"
action.commandoneOf 8object상위 객체에서 필수
  • additionalProperties: false
action.command.operationoneOf 8string상위 객체에서 필수
  • const: "create_saved_audience"
action.command.nameoneOf 8string상위 객체에서 필수
  • minLength: 1
  • maxLength: 200
action.command.targetingoneOf 8object상위 객체에서 필수
  • additionalProperties: false
action.command.targeting.geo_locationsoneOf 8object상위 객체에서 필수
  • additionalProperties: false
action.command.targeting.geo_locations.countriesoneOf 8array상위 객체에서 필수
  • minItems: 1
  • maxItems: 25
action.command.targeting.geo_locations.countries[]oneOf 8string선택 / 항목
  • pattern: "^[A-Z]{2}$"
action.command.targeting.age_minoneOf 8integer상위 객체에서 필수
  • minimum: 18
  • maximum: 65
  • default: 18
action.command.targeting.age_maxoneOf 8integer상위 객체에서 필수
  • minimum: 18
  • maximum: 65
  • default: 65
action.command.targeting.gendersoneOf 8array선택 / 항목
  • minItems: 1
  • maxItems: 2
action.command.targeting.genders[]oneOf 8number선택 / 항목—
action.command.targeting.genders[]oneOf 8 / anyOf 1number선택 / 항목
  • const: 1
action.command.targeting.genders[]oneOf 8 / anyOf 2number선택 / 항목
  • const: 2
action.command.targeting.localesoneOf 8array선택 / 항목
  • maxItems: 25
action.command.targeting.locales[]oneOf 8integer선택 / 항목
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
action.command.targeting.publisher_platformsoneOf 8array상위 객체에서 필수
  • minItems: 1
  • maxItems: 3
action.command.targeting.publisher_platforms[]oneOf 8string선택 / 항목
  • enum: ["facebook","instagram","threads"]
action.command.targeting.facebook_positionsoneOf 8array선택 / 항목
  • maxItems: 4
action.command.targeting.facebook_positions[]oneOf 8string선택 / 항목
  • enum: ["feed","story","facebook_reels","video_feeds"]
action.command.targeting.instagram_positionsoneOf 8array선택 / 항목
  • maxItems: 4
action.command.targeting.instagram_positions[]oneOf 8string선택 / 항목
  • enum: ["stream","story","reels","explore"]
action.command.targeting.threads_positionsoneOf 8array선택 / 항목
  • maxItems: 1
action.command.targeting.threads_positions[]oneOf 8string선택 / 항목
  • const: "threads_stream"
action.command.targeting.custom_audience_idsoneOf 8array선택 / 항목
  • maxItems: 4
action.command.targeting.custom_audience_ids[]oneOf 8string선택 / 항목
  • pattern: "^[1-9]\\d{1,24}$"
action.command.targeting.excluded_custom_audience_idsoneOf 8array선택 / 항목
  • maxItems: 4
action.command.targeting.excluded_custom_audience_ids[]oneOf 8string선택 / 항목
  • pattern: "^[1-9]\\d{1,24}$"
action.commandoneOf 9object상위 객체에서 필수
  • additionalProperties: false
action.command.operationoneOf 9string상위 객체에서 필수
  • const: "update_saved_audience"
action.command.object_idoneOf 9string상위 객체에서 필수
  • pattern: "^[1-9]\\d{1,24}$"
action.command.nameoneOf 9string선택 / 항목
  • minLength: 1
  • maxLength: 200
action.command.targetingoneOf 9object선택 / 항목
  • additionalProperties: false
action.command.targeting.geo_locationsoneOf 9object상위 객체에서 필수
  • additionalProperties: false
action.command.targeting.geo_locations.countriesoneOf 9array상위 객체에서 필수
  • minItems: 1
  • maxItems: 25
action.command.targeting.geo_locations.countries[]oneOf 9string선택 / 항목
  • pattern: "^[A-Z]{2}$"
action.command.targeting.age_minoneOf 9integer상위 객체에서 필수
  • minimum: 18
  • maximum: 65
  • default: 18
action.command.targeting.age_maxoneOf 9integer상위 객체에서 필수
  • minimum: 18
  • maximum: 65
  • default: 65
action.command.targeting.gendersoneOf 9array선택 / 항목
  • minItems: 1
  • maxItems: 2
action.command.targeting.genders[]oneOf 9number선택 / 항목—
action.command.targeting.genders[]oneOf 9 / anyOf 1number선택 / 항목
  • const: 1
action.command.targeting.genders[]oneOf 9 / anyOf 2number선택 / 항목
  • const: 2
action.command.targeting.localesoneOf 9array선택 / 항목
  • maxItems: 25
action.command.targeting.locales[]oneOf 9integer선택 / 항목
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
action.command.targeting.publisher_platformsoneOf 9array상위 객체에서 필수
  • minItems: 1
  • maxItems: 3
action.command.targeting.publisher_platforms[]oneOf 9string선택 / 항목
  • enum: ["facebook","instagram","threads"]
action.command.targeting.facebook_positionsoneOf 9array선택 / 항목
  • maxItems: 4
action.command.targeting.facebook_positions[]oneOf 9string선택 / 항목
  • enum: ["feed","story","facebook_reels","video_feeds"]
action.command.targeting.instagram_positionsoneOf 9array선택 / 항목
  • maxItems: 4
action.command.targeting.instagram_positions[]oneOf 9string선택 / 항목
  • enum: ["stream","story","reels","explore"]
action.command.targeting.threads_positionsoneOf 9array선택 / 항목
  • maxItems: 1
action.command.targeting.threads_positions[]oneOf 9string선택 / 항목
  • const: "threads_stream"
action.command.targeting.custom_audience_idsoneOf 9array선택 / 항목
  • maxItems: 4
action.command.targeting.custom_audience_ids[]oneOf 9string선택 / 항목
  • pattern: "^[1-9]\\d{1,24}$"
action.command.targeting.excluded_custom_audience_idsoneOf 9array선택 / 항목
  • maxItems: 4
action.command.targeting.excluded_custom_audience_ids[]oneOf 9string선택 / 항목
  • pattern: "^[1-9]\\d{1,24}$"
action.reviewed_digeststring상위 객체에서 필수
  • pattern: "^[a-f0-9]{64}$"
action.effectsobject상위 객체에서 필수
  • additionalProperties: false
action.effects.creates_objectboolean상위 객체에서 필수—
action.effects.initial_statusstring | null상위 객체에서 필수—
action.effects.initial_statusanyOf 1string상위 객체에서 필수
  • const: "PAUSED"
action.effects.initial_statusanyOf 2null상위 객체에서 필수—
action.effects.activates_deliveryboolean상위 객체에서 필수—
action.effects.changes_budgetboolean상위 객체에서 필수—
action.effects.changes_audienceboolean상위 객체에서 필수—
action.effects.changes_creativeboolean상위 객체에서 필수—
action.effects.currencystring상위 객체에서 필수
  • pattern: "^[A-Z]{3}$"
action.effects.timezonestring상위 객체에서 필수
  • minLength: 1
  • maxLength: 100
action.effects.budgetobject | null상위 객체에서 필수—
action.effects.budgetanyOf 1object상위 객체에서 필수
  • additionalProperties: false
action.effects.budget.kindanyOf 1string상위 객체에서 필수
  • enum: ["daily","lifetime"]
action.effects.budget.amount_minoranyOf 1string상위 객체에서 필수
  • pattern: "^[1-9]\\d{0,11}$"
action.effects.budgetanyOf 2null상위 객체에서 필수—
action.live_approvalobject상위 객체에서 필수
  • additionalProperties: false
action.live_approval.requiredboolean상위 객체에서 필수—
action.live_approval.statestring상위 객체에서 필수
  • enum: ["not_required","missing","approved","expired","revoked","invalid"]
action.live_approval.reasonstring | null상위 객체에서 필수—
action.live_approval.reasonanyOf 1string상위 객체에서 필수
  • maxLength: 100
action.live_approval.reasonanyOf 2null상위 객체에서 필수—
action.live_approval.expires_atstring | null상위 객체에서 필수—
action.live_approval.expires_atanyOf 1string상위 객체에서 필수
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
action.live_approval.expires_atanyOf 2null상위 객체에서 필수—
action.live_approval.approved_bystring | null상위 객체에서 필수—
action.live_approval.approved_byanyOf 1string상위 객체에서 필수
  • format: "uuid"
action.live_approval.approved_byanyOf 2null상위 객체에서 필수—
action.provider_object_idstring | null상위 객체에서 필수—
action.provider_object_idanyOf 1string상위 객체에서 필수
  • pattern: "^[1-9]\\d{1,24}$"
action.provider_object_idanyOf 2null상위 객체에서 필수—
action.failure_codestring | null상위 객체에서 필수—
action.failure_codeanyOf 1string상위 객체에서 필수
  • maxLength: 100
action.failure_codeanyOf 2null상위 객체에서 필수—
action.created_atstring상위 객체에서 필수
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
action.completed_atstring | null상위 객체에서 필수—
action.completed_atanyOf 1string상위 객체에서 필수
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
action.completed_atanyOf 2null상위 객체에서 필수—
전체 JSON Schema
{
  "type": "object",
  "properties": {
    "contract_version": {
      "type": "string",
      "const": "advertising/v1"
    },
    "prepare_token": {
      "type": "string",
      "minLength": 32,
      "maxLength": 128
    },
    "expires_at": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
    },
    "action": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid"
        },
        "workspace_id": {
          "type": "string",
          "format": "uuid"
        },
        "advertising_account_id": {
          "type": "string",
          "format": "uuid"
        },
        "mutation_id": {
          "type": "string",
          "format": "uuid"
        },
        "status": {
          "type": "string",
          "enum": [
            "prepared",
            "queued",
            "processing",
            "succeeded",
            "failed",
            "unknown",
            "cancelled"
          ]
        },
        "command": {
          "oneOf": [
            {
              "type": "object",
              "properties": {
                "operation": {
                  "type": "string",
                  "const": "create_campaign"
                },
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "budget": {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "type": "string",
                      "enum": [
                        "daily",
                        "lifetime"
                      ]
                    },
                    "amount_minor": {
                      "type": "string",
                      "pattern": "^[1-9]\\d{0,11}$"
                    }
                  },
                  "required": [
                    "kind",
                    "amount_minor"
                  ],
                  "additionalProperties": false
                },
                "objective": {
                  "type": "string",
                  "enum": [
                    "OUTCOME_AWARENESS",
                    "OUTCOME_ENGAGEMENT",
                    "OUTCOME_LEADS",
                    "OUTCOME_SALES",
                    "OUTCOME_TRAFFIC",
                    "OUTCOME_APP_PROMOTION"
                  ]
                },
                "special_ad_categories": {
                  "default": [],
                  "maxItems": 4,
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "CREDIT",
                      "EMPLOYMENT",
                      "HOUSING",
                      "ISSUES_ELECTIONS_POLITICS"
                    ]
                  }
                },
                "status": {
                  "default": "PAUSED",
                  "type": "string",
                  "const": "PAUSED"
                }
              },
              "required": [
                "operation",
                "name",
                "objective",
                "special_ad_categories",
                "status"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "operation": {
                  "type": "string",
                  "const": "update_campaign"
                },
                "object_id": {
                  "type": "string",
                  "pattern": "^[1-9]\\d{1,24}$"
                },
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "budget": {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "type": "string",
                      "enum": [
                        "daily",
                        "lifetime"
                      ]
                    },
                    "amount_minor": {
                      "type": "string",
                      "pattern": "^[1-9]\\d{0,11}$"
                    }
                  },
                  "required": [
                    "kind",
                    "amount_minor"
                  ],
                  "additionalProperties": false
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "ACTIVE",
                    "PAUSED",
                    "ARCHIVED"
                  ]
                }
              },
              "required": [
                "operation",
                "object_id"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "operation": {
                  "type": "string",
                  "const": "create_adset"
                },
                "campaign_id": {
                  "type": "string",
                  "pattern": "^[1-9]\\d{1,24}$"
                },
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "budget": {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "type": "string",
                      "enum": [
                        "daily",
                        "lifetime"
                      ]
                    },
                    "amount_minor": {
                      "type": "string",
                      "pattern": "^[1-9]\\d{0,11}$"
                    }
                  },
                  "required": [
                    "kind",
                    "amount_minor"
                  ],
                  "additionalProperties": false
                },
                "targeting": {
                  "type": "object",
                  "properties": {
                    "geo_locations": {
                      "type": "object",
                      "properties": {
                        "countries": {
                          "minItems": 1,
                          "maxItems": 25,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "pattern": "^[A-Z]{2}$"
                          }
                        }
                      },
                      "required": [
                        "countries"
                      ],
                      "additionalProperties": false
                    },
                    "age_min": {
                      "default": 18,
                      "type": "integer",
                      "minimum": 18,
                      "maximum": 65
                    },
                    "age_max": {
                      "default": 65,
                      "type": "integer",
                      "minimum": 18,
                      "maximum": 65
                    },
                    "genders": {
                      "minItems": 1,
                      "maxItems": 2,
                      "type": "array",
                      "items": {
                        "anyOf": [
                          {
                            "type": "number",
                            "const": 1
                          },
                          {
                            "type": "number",
                            "const": 2
                          }
                        ]
                      }
                    },
                    "locales": {
                      "maxItems": 25,
                      "type": "array",
                      "items": {
                        "type": "integer",
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991
                      }
                    },
                    "publisher_platforms": {
                      "minItems": 1,
                      "maxItems": 3,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "facebook",
                          "instagram",
                          "threads"
                        ]
                      }
                    },
                    "facebook_positions": {
                      "maxItems": 4,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "feed",
                          "story",
                          "facebook_reels",
                          "video_feeds"
                        ]
                      }
                    },
                    "instagram_positions": {
                      "maxItems": 4,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "stream",
                          "story",
                          "reels",
                          "explore"
                        ]
                      }
                    },
                    "threads_positions": {
                      "maxItems": 1,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "const": "threads_stream"
                      }
                    },
                    "custom_audience_ids": {
                      "maxItems": 4,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "pattern": "^[1-9]\\d{1,24}$"
                      }
                    },
                    "excluded_custom_audience_ids": {
                      "maxItems": 4,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "pattern": "^[1-9]\\d{1,24}$"
                      }
                    }
                  },
                  "required": [
                    "geo_locations",
                    "age_min",
                    "age_max",
                    "publisher_platforms"
                  ],
                  "additionalProperties": false
                },
                "billing_event": {
                  "type": "string",
                  "enum": [
                    "IMPRESSIONS",
                    "LINK_CLICKS"
                  ]
                },
                "optimization_goal": {
                  "type": "string",
                  "enum": [
                    "REACH",
                    "IMPRESSIONS",
                    "LINK_CLICKS",
                    "LANDING_PAGE_VIEWS",
                    "OFFSITE_CONVERSIONS",
                    "LEAD_GENERATION"
                  ]
                },
                "bid_strategy": {
                  "default": "LOWEST_COST_WITHOUT_CAP",
                  "type": "string",
                  "const": "LOWEST_COST_WITHOUT_CAP"
                },
                "start_time": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                },
                "end_time": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                },
                "promoted_object": {
                  "type": "object",
                  "properties": {
                    "page_id": {
                      "type": "string",
                      "pattern": "^[1-9]\\d{1,24}$"
                    },
                    "pixel_id": {
                      "type": "string",
                      "pattern": "^[1-9]\\d{1,24}$"
                    },
                    "custom_event_type": {
                      "type": "string",
                      "enum": [
                        "PURCHASE",
                        "LEAD",
                        "COMPLETE_REGISTRATION",
                        "ADD_TO_CART"
                      ]
                    }
                  },
                  "additionalProperties": false
                },
                "status": {
                  "default": "PAUSED",
                  "type": "string",
                  "const": "PAUSED"
                }
              },
              "required": [
                "operation",
                "campaign_id",
                "name",
                "targeting",
                "billing_event",
                "optimization_goal",
                "bid_strategy",
                "status"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "operation": {
                  "type": "string",
                  "const": "update_adset"
                },
                "object_id": {
                  "type": "string",
                  "pattern": "^[1-9]\\d{1,24}$"
                },
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "budget": {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "type": "string",
                      "enum": [
                        "daily",
                        "lifetime"
                      ]
                    },
                    "amount_minor": {
                      "type": "string",
                      "pattern": "^[1-9]\\d{0,11}$"
                    }
                  },
                  "required": [
                    "kind",
                    "amount_minor"
                  ],
                  "additionalProperties": false
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "ACTIVE",
                    "PAUSED",
                    "ARCHIVED"
                  ]
                },
                "targeting": {
                  "type": "object",
                  "properties": {
                    "geo_locations": {
                      "type": "object",
                      "properties": {
                        "countries": {
                          "minItems": 1,
                          "maxItems": 25,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "pattern": "^[A-Z]{2}$"
                          }
                        }
                      },
                      "required": [
                        "countries"
                      ],
                      "additionalProperties": false
                    },
                    "age_min": {
                      "default": 18,
                      "type": "integer",
                      "minimum": 18,
                      "maximum": 65
                    },
                    "age_max": {
                      "default": 65,
                      "type": "integer",
                      "minimum": 18,
                      "maximum": 65
                    },
                    "genders": {
                      "minItems": 1,
                      "maxItems": 2,
                      "type": "array",
                      "items": {
                        "anyOf": [
                          {
                            "type": "number",
                            "const": 1
                          },
                          {
                            "type": "number",
                            "const": 2
                          }
                        ]
                      }
                    },
                    "locales": {
                      "maxItems": 25,
                      "type": "array",
                      "items": {
                        "type": "integer",
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991
                      }
                    },
                    "publisher_platforms": {
                      "minItems": 1,
                      "maxItems": 3,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "facebook",
                          "instagram",
                          "threads"
                        ]
                      }
                    },
                    "facebook_positions": {
                      "maxItems": 4,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "feed",
                          "story",
                          "facebook_reels",
                          "video_feeds"
                        ]
                      }
                    },
                    "instagram_positions": {
                      "maxItems": 4,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "stream",
                          "story",
                          "reels",
                          "explore"
                        ]
                      }
                    },
                    "threads_positions": {
                      "maxItems": 1,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "const": "threads_stream"
                      }
                    },
                    "custom_audience_ids": {
                      "maxItems": 4,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "pattern": "^[1-9]\\d{1,24}$"
                      }
                    },
                    "excluded_custom_audience_ids": {
                      "maxItems": 4,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "pattern": "^[1-9]\\d{1,24}$"
                      }
                    }
                  },
                  "required": [
                    "geo_locations",
                    "age_min",
                    "age_max",
                    "publisher_platforms"
                  ],
                  "additionalProperties": false
                },
                "start_time": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                },
                "end_time": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                }
              },
              "required": [
                "operation",
                "object_id"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "operation": {
                  "type": "string",
                  "const": "create_ad"
                },
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "adset_id": {
                  "type": "string",
                  "pattern": "^[1-9]\\d{1,24}$"
                },
                "creative_id": {
                  "type": "string",
                  "pattern": "^[1-9]\\d{1,24}$"
                },
                "status": {
                  "default": "PAUSED",
                  "type": "string",
                  "const": "PAUSED"
                }
              },
              "required": [
                "operation",
                "name",
                "adset_id",
                "creative_id",
                "status"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "operation": {
                  "type": "string",
                  "const": "update_ad"
                },
                "object_id": {
                  "type": "string",
                  "pattern": "^[1-9]\\d{1,24}$"
                },
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "creative_id": {
                  "type": "string",
                  "pattern": "^[1-9]\\d{1,24}$"
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "ACTIVE",
                    "PAUSED",
                    "ARCHIVED"
                  ]
                }
              },
              "required": [
                "operation",
                "object_id"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "operation": {
                  "type": "string",
                  "const": "create_creative"
                },
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "object_story_spec": {
                  "type": "object",
                  "properties": {
                    "page_id": {
                      "type": "string",
                      "pattern": "^[1-9]\\d{1,24}$"
                    },
                    "instagram_user_id": {
                      "type": "string",
                      "pattern": "^[1-9]\\d{1,24}$"
                    },
                    "link_data": {
                      "type": "object",
                      "properties": {
                        "link": {
                          "type": "string",
                          "maxLength": 2048,
                          "format": "uri"
                        },
                        "message": {
                          "type": "string",
                          "maxLength": 5000
                        },
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "image_hash": {
                          "type": "string",
                          "pattern": "^[a-fA-F0-9]{16,128}$"
                        },
                        "call_to_action": {
                          "type": "string",
                          "enum": [
                            "LEARN_MORE",
                            "SHOP_NOW",
                            "SIGN_UP",
                            "CONTACT_US"
                          ]
                        }
                      },
                      "required": [
                        "link",
                        "message",
                        "image_hash"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "page_id",
                    "link_data"
                  ],
                  "additionalProperties": false
                },
                "object_story_id": {
                  "type": "string",
                  "pattern": "^[1-9]\\d{1,24}_[1-9]\\d{1,24}$"
                }
              },
              "required": [
                "operation",
                "name"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "operation": {
                  "type": "string",
                  "const": "create_saved_audience"
                },
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "targeting": {
                  "type": "object",
                  "properties": {
                    "geo_locations": {
                      "type": "object",
                      "properties": {
                        "countries": {
                          "minItems": 1,
                          "maxItems": 25,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "pattern": "^[A-Z]{2}$"
                          }
                        }
                      },
                      "required": [
                        "countries"
                      ],
                      "additionalProperties": false
                    },
                    "age_min": {
                      "default": 18,
                      "type": "integer",
                      "minimum": 18,
                      "maximum": 65
                    },
                    "age_max": {
                      "default": 65,
                      "type": "integer",
                      "minimum": 18,
                      "maximum": 65
                    },
                    "genders": {
                      "minItems": 1,
                      "maxItems": 2,
                      "type": "array",
                      "items": {
                        "anyOf": [
                          {
                            "type": "number",
                            "const": 1
                          },
                          {
                            "type": "number",
                            "const": 2
                          }
                        ]
                      }
                    },
                    "locales": {
                      "maxItems": 25,
                      "type": "array",
                      "items": {
                        "type": "integer",
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991
                      }
                    },
                    "publisher_platforms": {
                      "minItems": 1,
                      "maxItems": 3,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "facebook",
                          "instagram",
                          "threads"
                        ]
                      }
                    },
                    "facebook_positions": {
                      "maxItems": 4,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "feed",
                          "story",
                          "facebook_reels",
                          "video_feeds"
                        ]
                      }
                    },
                    "instagram_positions": {
                      "maxItems": 4,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "stream",
                          "story",
                          "reels",
                          "explore"
                        ]
                      }
                    },
                    "threads_positions": {
                      "maxItems": 1,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "const": "threads_stream"
                      }
                    },
                    "custom_audience_ids": {
                      "maxItems": 4,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "pattern": "^[1-9]\\d{1,24}$"
                      }
                    },
                    "excluded_custom_audience_ids": {
                      "maxItems": 4,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "pattern": "^[1-9]\\d{1,24}$"
                      }
                    }
                  },
                  "required": [
                    "geo_locations",
                    "age_min",
                    "age_max",
                    "publisher_platforms"
                  ],
                  "additionalProperties": false
                }
              },
              "required": [
                "operation",
                "name",
                "targeting"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "operation": {
                  "type": "string",
                  "const": "update_saved_audience"
                },
                "object_id": {
                  "type": "string",
                  "pattern": "^[1-9]\\d{1,24}$"
                },
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "targeting": {
                  "type": "object",
                  "properties": {
                    "geo_locations": {
                      "type": "object",
                      "properties": {
                        "countries": {
                          "minItems": 1,
                          "maxItems": 25,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "pattern": "^[A-Z]{2}$"
                          }
                        }
                      },
                      "required": [
                        "countries"
                      ],
                      "additionalProperties": false
                    },
                    "age_min": {
                      "default": 18,
                      "type": "integer",
                      "minimum": 18,
                      "maximum": 65
                    },
                    "age_max": {
                      "default": 65,
                      "type": "integer",
                      "minimum": 18,
                      "maximum": 65
                    },
                    "genders": {
                      "minItems": 1,
                      "maxItems": 2,
                      "type": "array",
                      "items": {
                        "anyOf": [
                          {
                            "type": "number",
                            "const": 1
                          },
                          {
                            "type": "number",
                            "const": 2
                          }
                        ]
                      }
                    },
                    "locales": {
                      "maxItems": 25,
                      "type": "array",
                      "items": {
                        "type": "integer",
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991
                      }
                    },
                    "publisher_platforms": {
                      "minItems": 1,
                      "maxItems": 3,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "facebook",
                          "instagram",
                          "threads"
                        ]
                      }
                    },
                    "facebook_positions": {
                      "maxItems": 4,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "feed",
                          "story",
                          "facebook_reels",
                          "video_feeds"
                        ]
                      }
                    },
                    "instagram_positions": {
                      "maxItems": 4,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "stream",
                          "story",
                          "reels",
                          "explore"
                        ]
                      }
                    },
                    "threads_positions": {
                      "maxItems": 1,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "const": "threads_stream"
                      }
                    },
                    "custom_audience_ids": {
                      "maxItems": 4,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "pattern": "^[1-9]\\d{1,24}$"
                      }
                    },
                    "excluded_custom_audience_ids": {
                      "maxItems": 4,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "pattern": "^[1-9]\\d{1,24}$"
                      }
                    }
                  },
                  "required": [
                    "geo_locations",
                    "age_min",
                    "age_max",
                    "publisher_platforms"
                  ],
                  "additionalProperties": false
                }
              },
              "required": [
                "operation",
                "object_id"
              ],
              "additionalProperties": false
            }
          ]
        },
        "reviewed_digest": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$"
        },
        "effects": {
          "type": "object",
          "properties": {
            "creates_object": {
              "type": "boolean"
            },
            "initial_status": {
              "anyOf": [
                {
                  "type": "string",
                  "const": "PAUSED"
                },
                {
                  "type": "null"
                }
              ]
            },
            "activates_delivery": {
              "type": "boolean"
            },
            "changes_budget": {
              "type": "boolean"
            },
            "changes_audience": {
              "type": "boolean"
            },
            "changes_creative": {
              "type": "boolean"
            },
            "currency": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            },
            "timezone": {
              "type": "string",
              "minLength": 1,
              "maxLength": 100
            },
            "budget": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "type": "string",
                      "enum": [
                        "daily",
                        "lifetime"
                      ]
                    },
                    "amount_minor": {
                      "type": "string",
                      "pattern": "^[1-9]\\d{0,11}$"
                    }
                  },
                  "required": [
                    "kind",
                    "amount_minor"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "creates_object",
            "initial_status",
            "activates_delivery",
            "changes_budget",
            "changes_audience",
            "changes_creative",
            "currency",
            "timezone",
            "budget"
          ],
          "additionalProperties": false
        },
        "live_approval": {
          "type": "object",
          "properties": {
            "required": {
              "type": "boolean"
            },
            "state": {
              "type": "string",
              "enum": [
                "not_required",
                "missing",
                "approved",
                "expired",
                "revoked",
                "invalid"
              ]
            },
            "reason": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 100
                },
                {
                  "type": "null"
                }
              ]
            },
            "expires_at": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                },
                {
                  "type": "null"
                }
              ]
            },
            "approved_by": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "required",
            "state",
            "reason",
            "expires_at",
            "approved_by"
          ],
          "additionalProperties": false
        },
        "provider_object_id": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^[1-9]\\d{1,24}$"
            },
            {
              "type": "null"
            }
          ]
        },
        "failure_code": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 100
            },
            {
              "type": "null"
            }
          ]
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        "completed_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "id",
        "workspace_id",
        "advertising_account_id",
        "mutation_id",
        "status",
        "command",
        "reviewed_digest",
        "effects",
        "live_approval",
        "provider_object_id",
        "failure_code",
        "created_at",
        "completed_at"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "contract_version",
    "prepare_token",
    "expires_at",
    "action"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

도구 호출 예제

예제는 스키마로 확인한 가상 값을 사용합니다. ID를 사용 권한이 있는 값으로, 미디어를 준비된 에셋으로, 날짜를 확인된 게시 시각으로 바꾸세요. 쓰기 제출 전에 계정 적격성을 확인하세요. 이 페이지는 API 요청을 보내지 않습니다.

{
  "name": "sosoapi_ads_actions_prepare",
  "arguments": {
    "workspace_id": "11111111-1111-4111-8111-111111111111",
    "advertising_account_id": "11111111-1111-4111-8111-111111111111",
    "mutation_id": "11111111-1111-4111-8111-111111111111",
    "command": {
      "operation": "create_campaign",
      "name": "example",
      "objective": "OUTCOME_AWARENESS"
    }
  }
}

structuredContent

{
  "contract_version": "advertising/v1",
  "prepare_token": "exampleaaaaaaaaaaaaaaaaaaaaaaaaa",
  "expires_at": "2099-01-15T09:00:00Z",
  "action": {
    "id": "11111111-1111-4111-8111-111111111111",
    "workspace_id": "11111111-1111-4111-8111-111111111111",
    "advertising_account_id": "11111111-1111-4111-8111-111111111111",
    "mutation_id": "11111111-1111-4111-8111-111111111111",
    "status": "prepared",
    "command": {
      "operation": "create_campaign",
      "name": "example",
      "objective": "OUTCOME_AWARENESS",
      "special_ad_categories": [],
      "status": "PAUSED"
    },
    "reviewed_digest": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    "effects": {
      "creates_object": false,
      "initial_status": null,
      "activates_delivery": false,
      "changes_budget": false,
      "changes_audience": false,
      "changes_creative": false,
      "currency": "USD",
      "timezone": "UTC",
      "budget": null
    },
    "live_approval": {
      "required": false,
      "state": "not_required",
      "reason": null,
      "expires_at": null,
      "approved_by": null
    },
    "provider_object_id": null,
    "failure_code": null,
    "created_at": "2099-01-15T09:00:00Z",
    "completed_at": null
  }
}
MCP 설치 또는 연결