> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aiderx.io/llms.txt
> Use this file to discover all available pages before exploring further.

# 캐시된 광고 단위 갱신

> 캐시에 ad_unit 정보를 저장합니다.
광고 유닛 메타데이터를 기반으로 제공 로직을 갱신하는 데 사용합니다.



## OpenAPI

````yaml /openapi/decision.api.ko-dev.json post /app/api/cache/ad-units
openapi: 3.1.0
info:
  contact:
    email: a2support@aiderx.io
    name: A2 Support
    url: https://aiderx.io
  description: |-
    ### 소개
    Decision API는 사용자 요청 또는 컨텍스트 정보를 바탕으로 광고나 콘텐츠를 실시간으로 선택하고 배포합니다.
    빠른 응답과 동적 기능을 통해 최적의 광고 또는 추천을 제공하여 사용자가 가능한 가장 높은 가치를 얻도록 합니다.

    다양한 알고리즘, 머신러닝 모델 및 규칙 기반 로직을 적용할 수 있어 시스템이 끊임없이 변하는 조건에 유연하게 적응할 수 있습니다.
  title: Decision API
  version: dev
  x-logo:
    altText: A2 Logo
    url: >-
      https://cdn.prod.website-files.com/668de9e1f25ab5675d87758d/6690cf1bdce95af5e3522c25_a2_logo_800_250.png
servers: []
security: []
tags:
  - description: 광고 요청, 캐시 설정 및 광고 제공 모듈의 기타 매개변수를 구성하기 위한 API입니다.
    name: Ad Serving
  - description: 추천 요청을 위한 API
    name: Recommendation Serving
  - description: >-
      광고 제공 서버의 캐시를 조작하기 위한 API입니다.


      ### **중요**

      Serving 서버의 광고 또는 추천 관련 캐시 데이터를 직접 조작하는 경우 Ad Manager에서 광고 또는 추천 데이터를 함께
      수정하지 않는 것을 **강력히 권장합니다.**


      대신 모든 광고 또는 추천 데이터 변경은 Ad Manager API를 통해 처리하는 것을 **권장합니다.**

      Serving 서버에서 변경한 내용은 Ad Manager에 반영되지 않으므로 **데이터 무결성**이 손상될 수 있습니다.
    name: Cache Management
  - description: 광고 서빙 서버 설정 API
    name: Configuration
  - description: 광고 또는 추천과 관련된 전환, 노출 및 클릭 로그를 수신하는 API입니다.
    name: Ad Log
paths:
  /app/api/cache/ad-units:
    post:
      tags:
        - Cache Management
      summary: 캐시된 광고 단위 갱신
      description: |-
        캐시에 ad_unit 정보를 저장합니다.
        광고 유닛 메타데이터를 기반으로 제공 로직을 갱신하는 데 사용합니다.
      requestBody:
        content:
          application/json:
            schema:
              items:
                $ref: '#/components/schemas/AdUnit'
              type: array
        required: true
      responses:
        '204':
          description: 성공
        '400':
          content:
            text/plain:
              schema:
                type: string
          description: 요청 본문을 JSON으로 파싱하지 못했습니다.
        '415':
          content:
            text/plain:
              schema:
                type: string
          description: '`Content-Type: application/json`인 요청이 필요합니다.'
        '422':
          content:
            text/plain:
              schema:
                type: string
          description: JSON 본문을 대상 형식으로 역직렬화하지 못했습니다.
        '500':
          description: 내부 서버 오류입니다.
      security:
        - '': []
components:
  schemas:
    AdUnit:
      properties:
        ad_unit_sizes:
          description: |-
            타기팅 메타데이터 크기입니다.
            display/video.w/h의 제공 및 렌더링 크기와는 다릅니다.
          items:
            $ref: '#/components/schemas/AdUnitSize'
          type:
            - array
            - 'null'
        code:
          description: 광고 유닛 코드 식별자입니다.
          type: string
        created_at:
          description: 광고 유닛이 생성된 날짜와 시간입니다.
          format: date-time
          type: string
        created_by:
          description: 광고 유닛을 생성한 사용자의 ID입니다.
          format: uuid
          type: string
        description:
          description: 광고 유닛의 설명입니다.
          type:
            - string
            - 'null'
        display:
          allOf:
            - $ref: '#/components/schemas/DisplayPlacement'
          default:
            clktype: 1
            priv: 0
            unit: 2
          description: 디스플레이 지면일 수 있음을 나타내는 지면 하위 유형 객체이며 관련 세부 정보를 제공합니다.
        ext:
          allOf:
            - $ref: '#/components/schemas/AdUnitExt'
          default:
            algorithm: axa0
            approval_method: admin
            bcat: []
            default_cpa: 0
            default_cpc: 0
            display:
              enabled: 1
            native:
              enabled: 0
              render_mode: html
            payout: rates
            recommendation:
              enabled: 0
            responsive: fixed
            target_ecpm: 0
            video:
              enabled: 0
          description: 광고 유닛별 추가 확장 정보이며 기본값은 `AdUnitExt` 객체입니다.
        gpid:
          description: OpenRTB imp.ext.gpid에 대한 표준 지면 ID입니다.
          type:
            - string
            - 'null'
        id:
          description: 광고 유닛의 ID(uuid7)입니다.
          format: uuid
          type: string
        instl:
          allOf:
            - $ref: '#/components/schemas/Instl'
          default: 0
          description: |-
            전면 지면인지 나타냅니다. 0은 아니요, 1은 예입니다.
            디스플레이, 비디오, 네이티브에 적용됩니다.
        is_active:
          description: |-
            광고 유닛의 활성 여부입니다.

            `status`로 대체되었습니다. 모든 소비자가 `status`를 읽도록 전환할 때까지 유지됩니다.
          type:
            - boolean
            - 'null'
        name:
          description: 광고 유닛의 이름입니다.
          type: string
        native:
          allOf:
            - $ref: '#/components/schemas/NativePlacement'
          default:
            assets: []
          description: >-
            OpenRTB Native Ads 1.2 Native Markup Request Object를 기반으로 하며 AdCOM
            표준 네이티브 형식은 아닙니다.
        path:
          description: '광고 유닛의 계층형 경로입니다(예: "parent_id/child_id").'
          type: string
        recommendation:
          allOf:
            - $ref: '#/components/schemas/RecommendationPlacement'
          default:
            ext: {}
            topn: 10
        status:
          allOf:
            - $ref: '#/components/schemas/AdUnitStatus'
          default: INACTIVE
          description: 광고 유닛의 운영 상태입니다. 기본값은 `Inactive`입니다.
        video:
          allOf:
            - $ref: '#/components/schemas/VideoPlacement'
          default:
            boxing: 1
            maxext: 0
            podseq: 0
            skipafter: 0
            skipmin: 0
            slotinpod: 0
            unit: 2
          description: 비디오 지면일 수 있음을 나타내는 지면 하위 유형 객체이며 관련 세부 정보를 제공합니다.
      required:
        - id
        - name
        - code
        - path
        - created_by
        - created_at
      type: object
    AdUnitSize:
      description: 광고 유닛의 타기팅 크기 항목입니다.
      properties:
        h:
          description: 픽셀 단위 높이입니다.
          format: uint32
          minimum: 0
          type: integer
        w:
          description: 픽셀 단위 너비입니다.
          format: uint32
          minimum: 0
          type: integer
      required:
        - w
        - h
      type: object
    DisplayPlacement:
      properties:
        ampren:
          format: uint8
          maximum: 255
          minimum: 0
          type:
            - integer
            - 'null'
        api:
          items:
            format: uint16
            maximum: 65535
            minimum: 0
            type: integer
          type:
            - array
            - 'null'
        clktype:
          default: 1
          format: uint8
          maximum: 255
          minimum: 0
          type: integer
        context:
          anyOf:
            - $ref: '#/components/schemas/DisplayContext'
            - type: 'null'
        ctype:
          items:
            format: uint8
            maximum: 255
            minimum: 0
            type: integer
          type:
            - array
            - 'null'
        displayfmt:
          anyOf:
            - $ref: '#/components/schemas/DisplayFormat'
            - type: 'null'
        event:
          items:
            $ref: '#/components/schemas/EventSpec'
          type:
            - array
            - 'null'
        ext: true
        h:
          format: float
          type:
            - number
            - 'null'
        ifrbust:
          items:
            type: string
          type:
            - array
            - 'null'
        mime:
          items:
            type: string
          type:
            - array
            - 'null'
        pos:
          anyOf:
            - $ref: '#/components/schemas/PlacementPosition'
            - type: 'null'
        priv:
          default: 0
          format: uint8
          maximum: 255
          minimum: 0
          type: integer
        ptype:
          anyOf:
            - $ref: '#/components/schemas/DisplayPlacementTypes'
            - type: 'null'
        topframe:
          format: uint8
          maximum: 255
          minimum: 0
          type:
            - integer
            - 'null'
        unit:
          default: 2
          format: uint8
          maximum: 255
          minimum: 0
          type: integer
        w:
          format: float
          type:
            - number
            - 'null'
      type: object
    AdUnitExt:
      properties:
        algorithm:
          default: axa0
          description: 광고 유닛에 사용되는 알고리즘입니다.
          type: string
        approval_method:
          allOf:
            - $ref: '#/components/schemas/AdUnitApproval'
          default: admin
          description: 광고 유닛의 승인 방식입니다.
        bcat:
          default: []
          description: IAB 분류법을 사용하는 차단 광고주 카테고리이며 추가 민감 카테고리로 확장됩니다.
          items:
            type: string
          type:
            - array
            - 'null'
        default_cpa:
          default: 0
          description: 특정 목표 CPA가 없는 CPA 라인 아이템의 기본 CPA입니다. 기본값은 0.0입니다.
          format: double
          type: number
        default_cpc:
          default: 0
          description: 특정 목표 CPC가 없는 CPC 라인 아이템의 기본 CPC입니다. 기본값은 0.0입니다.
          format: double
          type: number
        display:
          default:
            enabled: 0
          description: JSON 형식의 디스플레이 전용 확장 데이터입니다.
        external_raw_data:
          description: 맵으로 표현되는 광고 유닛의 외부 원시 데이터입니다.
        implicit_app_inference:
          anyOf:
            - $ref: '#/components/schemas/ImplicitAppInference'
            - type: 'null'
          description: UA 키워드 매핑을 통한 대체 또는 암시적 모바일 앱 추론 설정입니다.
        native:
          allOf:
            - $ref: '#/components/schemas/AdUnitExtNative'
          default:
            enabled: 0
            render_mode: html
          description: 네이티브 전용 확장 데이터입니다.
        passback:
          description: 맵으로 표현되는 광고 유닛의 패스백 광고 태그입니다.
        payout:
          allOf:
            - $ref: '#/components/schemas/AdUnitPayout'
          default: rates
          description: 광고 유닛의 지급 유형입니다.
        public_url:
          description: |-
            이 광고 유닛의 이벤트 트래커 URL에 대한 공개 URL 재정의입니다.
            설정하면 이 광고 유닛에 대해 EdgeConfig.public_url을 재정의합니다.
          type:
            - string
            - 'null'
        publisher:
          anyOf:
            - $ref: '#/components/schemas/PublisherSettings'
            - type: 'null'
          description: OpenRTB site/app 객체에 전송되는 매체 식별 정보입니다.
        recommendation:
          default:
            enabled: 0
          description: JSON 형식의 추천 전용 확장 데이터입니다.
        responsive:
          allOf:
            - $ref: '#/components/schemas/AdUnitResponsiveness'
          default: fixed
          description: 광고 유닛이 반응형인지 나타냅니다.
        target_ecpm:
          default: 0
          description: 광고 유닛의 목표 eCPM(1,000회 노출당 유효 비용)입니다. 기본값은 0.0입니다.
          format: double
          type: number
        target_service:
          description: 광고 유닛의 대상 서비스입니다.
          type:
            - string
            - 'null'
        video:
          default:
            enabled: 0
          description: JSON 형식의 비디오 전용 확장 데이터입니다.
      type: object
    Instl:
      description: OpenRTB 전면 광고 플래그입니다.
      enum:
        - 0
        - 1
      type: integer
      x-enum-varnames:
        - 'No'
        - 'Yes'
    NativePlacement:
      description: >-
        OpenRTB Native Ads 1.2 Native Markup Request Object를 기반으로 하며 AdCOM 표준
        네이티브 형식은 아닙니다.
      properties:
        assets:
          default: []
          description: 네이티브 에셋 요청 정의입니다.
          items:
            $ref: '#/components/schemas/AssetRequest'
          type: array
        context:
          description: >-
            OpenRTB Native 컨텍스트 유형입니다(1=ContentCentric, 2=SocialCentric,
            3=ProductContext).
          format: uint16
          maximum: 65535
          minimum: 0
          type:
            - integer
            - 'null'
        contextsubtype:
          description: 'OpenRTB Native 컨텍스트 하위 유형입니다(예: 14=PrimarilyImageContent).'
          format: uint16
          maximum: 65535
          minimum: 0
          type:
            - integer
            - 'null'
        ext:
          description: 선택적 공급업체별 확장 정보입니다.
        plcmtcnt:
          description: OpenRTB Native 지면 수입니다.
          format: uint8
          maximum: 255
          minimum: 1
          type:
            - integer
            - 'null'
        plcmttype:
          description: >-
            OpenRTB Native 지면 유형입니다(1=Feed, 2=AtomicUnit, 3=OutsideOfContent,
            4=RecommendationWidget).
          format: uint16
          maximum: 65535
          minimum: 0
          type:
            - integer
            - 'null'
      type: object
    RecommendationPlacement:
      properties:
        ad_log_tracking_mode:
          anyOf:
            - $ref: '#/components/schemas/AdLogTrackingMode'
            - type: 'null'
          description: >-
            추천 노출을 기록하는 시점입니다.


            응답 시점의 추천 노출 기록이 도입되기 전 동작을 유지하기 위해, 필드가 없거나 null이면
            `on_event_tracker`로 해석합니다.
        candidate_filtering:
          anyOf:
            - $ref: '#/components/schemas/CandidateFiltering'
            - type: 'null'
          description: 추천 대상의 필터링 속성
        content_filter_rule:
          anyOf:
            - $ref: '#/components/schemas/Expr'
            - type: 'null'
          description: 추천 대상의 필터링 규칙
        ext:
          default: {}
          description: 추가 광고 유닛별 확장 정보입니다.
        fallback:
          description: 모든 슬롯이 채워질 때까지 순서대로 시도하는 fallback 체인입니다.
          items:
            $ref: '#/components/schemas/RecommendationFallback'
          type:
            - array
            - 'null'
        topn:
          default: 10
          description: 추천할 아이템의 개수
          format: uint32
          maximum: 99
          minimum: 0
          type: integer
      type: object
    AdUnitStatus:
      description: 광고 유닛의 운영 상태입니다.
      oneOf:
        - const: ACTIVE
          description: 광고 유닛이 활성 상태이며 타기팅에 사용할 수 있습니다.
          title: ACTIVE
          type: string
        - const: INACTIVE
          description: 광고 유닛이 비활성 상태이며 타기팅에 사용할 수 없습니다.
          title: INACTIVE
          type: string
        - const: ARCHIVED
          description: 광고 유닛이 보관 처리되어 더 이상 수정하거나 타기팅할 수 없습니다.
          title: ARCHIVED
          type: string
    VideoPlacement:
      properties:
        api:
          items:
            format: uint16
            maximum: 65535
            minimum: 0
            type: integer
          type:
            - array
            - 'null'
        boxing:
          default: 1
          format: uint8
          maximum: 255
          minimum: 0
          type:
            - integer
            - 'null'
        clktype:
          format: uint8
          maximum: 255
          minimum: 0
          type:
            - integer
            - 'null'
        comp:
          items:
            $ref: '#/components/schemas/Companion'
          type:
            - array
            - 'null'
        comptype:
          items:
            $ref: '#/components/schemas/CompanionType'
          type:
            - array
            - 'null'
        ctype:
          items:
            format: uint32
            minimum: 0
            type: integer
          type:
            - array
            - 'null'
        delay:
          format: uint32
          minimum: 0
          type:
            - integer
            - 'null'
        delivery:
          items:
            $ref: '#/components/schemas/DeliveryMethod'
          type:
            - array
            - 'null'
        expdir:
          items:
            $ref: '#/components/schemas/ExpandableDirection'
          type:
            - array
            - 'null'
        ext: true
        h:
          format: uint32
          minimum: 0
          type:
            - integer
            - 'null'
        linear:
          format: uint32
          minimum: 0
          type:
            - integer
            - 'null'
        maxbitr:
          format: uint32
          minimum: 0
          type:
            - integer
            - 'null'
        maxdur:
          format: uint32
          minimum: 0
          type:
            - integer
            - 'null'
        maxext:
          default: 0
          format: int32
          type:
            - integer
            - 'null'
        maxseq:
          format: uint32
          minimum: 0
          type:
            - integer
            - 'null'
        mime:
          items:
            type: string
          type:
            - array
            - 'null'
        minbitr:
          format: uint32
          minimum: 0
          type:
            - integer
            - 'null'
        mincpmpersec:
          format: double
          type:
            - number
            - 'null'
        mindur:
          format: uint32
          minimum: 0
          type:
            - integer
            - 'null'
        overlayexpdir:
          items:
            $ref: '#/components/schemas/ExpandableDirection'
          type:
            - array
            - 'null'
        playend:
          anyOf:
            - $ref: '#/components/schemas/PlaybackCessationMode'
            - type: 'null'
        playmethod:
          items:
            format: uint8
            maximum: 255
            minimum: 0
            type: integer
          type:
            - array
            - 'null'
        poddur:
          format: uint32
          minimum: 0
          type:
            - integer
            - 'null'
        podid:
          format: uint32
          minimum: 0
          type:
            - integer
            - 'null'
        podseq:
          default: 0
          format: int8
          maximum: 127
          minimum: -128
          type:
            - integer
            - 'null'
        pos:
          anyOf:
            - $ref: '#/components/schemas/PlacementPosition'
            - type: 'null'
        ptype:
          format: uint8
          maximum: 255
          minimum: 0
          type:
            - integer
            - 'null'
        rqddurs:
          items:
            format: uint32
            minimum: 0
            type: integer
          type:
            - array
            - 'null'
        skip:
          format: uint8
          maximum: 255
          minimum: 0
          type:
            - integer
            - 'null'
        skipafter:
          default: 0
          format: uint32
          minimum: 0
          type:
            - integer
            - 'null'
        skipmin:
          default: 0
          format: uint32
          minimum: 0
          type:
            - integer
            - 'null'
        slotinpod:
          default: 0
          format: int8
          maximum: 127
          minimum: -128
          type:
            - integer
            - 'null'
        unit:
          default: 2
          format: uint8
          maximum: 255
          minimum: 0
          type:
            - integer
            - 'null'
        w:
          format: uint32
          minimum: 0
          type:
            - integer
            - 'null'
      type: object
    DisplayContext:
      enum:
        - ContentCentric
        - ArticleContent
        - VideoContent
        - AudioContent
        - ImageContent
        - UserGeneratedContent
        - SocialCentric
        - EmailContent
        - ChatContent
        - ProductContext
        - AppStore
        - ProductReviews
      type: string
    DisplayFormat:
      properties:
        expdir:
          anyOf:
            - $ref: '#/components/schemas/ExpandableDirection'
            - type: 'null'
        ext: true
        h:
          format: uint32
          minimum: 0
          type:
            - integer
            - 'null'
        hratio:
          format: uint32
          minimum: 0
          type:
            - integer
            - 'null'
        w:
          format: uint32
          minimum: 0
          type:
            - integer
            - 'null'
        wratio:
          format: uint32
          minimum: 0
          type:
            - integer
            - 'null'
      type: object
    EventSpec:
      properties:
        api:
          items:
            format: uint16
            maximum: 65535
            minimum: 0
            type: integer
          type:
            - array
            - 'null'
        ext: true
        jstrk:
          items:
            type: string
          type:
            - array
            - 'null'
        method:
          items:
            $ref: '#/components/schemas/EventTrackingMethod'
          type:
            - array
            - 'null'
        pxtrk:
          items:
            type: string
          type:
            - array
            - 'null'
        type:
          $ref: '#/components/schemas/EventType'
        wjs:
          default: 1
          format: int32
          type: integer
        wpx:
          default: 1
          format: int32
          type: integer
      required:
        - type
      type: object
    PlacementPosition:
      enum:
        - Unknown
        - AboveTheFold
        - Locked
        - BelowTheFold
        - Header
        - Footer
        - Sidebar
        - FullScreen
      type: string
    DisplayPlacementTypes:
      enum:
        - Feed
        - AtomicUnit
        - OutsideCore
        - RecommendationWidget
      type: string
    AdUnitApproval:
      enum:
        - admin
        - delegate
      type: string
    ImplicitAppInference:
      properties:
        android_bundle:
          type:
            - string
            - 'null'
        app_name:
          type:
            - string
            - 'null'
        cat:
          items:
            type: string
          type:
            - array
            - 'null'
        ios_bundle:
          type:
            - string
            - 'null'
        ua_keywords:
          default: []
          items:
            type: string
          type: array
      type: object
    AdUnitExtNative:
      properties:
        enabled:
          default: 0
          description: 광고 유닛에서 네이티브 광고가 활성화되었는지 나타냅니다(0 또는 1).
          format: int64
          type: integer
        render_mode:
          allOf:
            - $ref: '#/components/schemas/NativeRenderMode'
          default: html
          description: 이 광고 유닛의 네이티브 렌더링 모드입니다.
      type: object
    AdUnitPayout:
      enum:
        - rates
        - revenue_share
        - none
      type: string
    PublisherSettings:
      description: OpenRTB 2.6 Publisher입니다. 모든 필드는 선택 사항입니다.
      properties:
        company:
          type:
            - string
            - 'null'
        domain:
          type:
            - string
            - 'null'
        ext: true
        id:
          type:
            - string
            - 'null'
        name:
          type:
            - string
            - 'null'
        page:
          type:
            - string
            - 'null'
        seller_id:
          type:
            - string
            - 'null'
      type: object
    AdUnitResponsiveness:
      enum:
        - fixed
        - resized
      type: string
    AssetRequest:
      anyOf:
        - required:
            - title
          title: title
        - required:
            - img
          title: img
        - required:
            - video
          title: video
        - required:
            - data
          title: data
      properties:
        data:
          anyOf:
            - $ref: '#/components/schemas/DataAssetRequest'
            - type: 'null'
        ext: true
        id:
          format: int32
          type: integer
        img:
          anyOf:
            - $ref: '#/components/schemas/ImageAssetRequest'
            - type: 'null'
        required:
          anyOf:
            - $ref: '#/components/schemas/IsRequired2'
            - type: 'null'
        title:
          anyOf:
            - $ref: '#/components/schemas/TitleAssetRequest'
            - type: 'null'
        video:
          anyOf:
            - $ref: '#/components/schemas/VideoAssetRequest'
            - type: 'null'
      required:
        - id
      type: object
    AdLogTrackingMode:
      description: >-
        노출 로그 추적 모드입니다.

        - `on_ad_response`: A2 서버가 광고 응답을 반환할 때 노출을 기록합니다.

        - `on_event_tracker`: 지원되는 소재의 응답에 노출 트래커 URL이 포함됩니다. 클라이언트가 광고가 표시될 때
        URL을 호출하면 A2가 요청을 받아 노출을 기록합니다. 같은 `imp`를 Log API에 중복 제출하지 마세요.
      enum:
        - on_ad_response
        - on_event_tracker
      type: string
    CandidateFiltering:
      properties:
        method:
          allOf:
            - $ref: '#/components/schemas/CandidateFilteringMethod'
          default: NoFilter
          description: 필터링 방법
      type: object
    Expr:
      oneOf:
        - properties:
            data:
              $ref: '#/components/schemas/Compare'
            type:
              const: cmp
              type: string
          required:
            - type
            - data
          title: cmp
          type: object
        - properties:
            data:
              items:
                $ref: '#/components/schemas/Expr'
              type: array
            type:
              const: and
              type: string
          required:
            - type
            - data
          title: and
          type: object
        - properties:
            data:
              items:
                $ref: '#/components/schemas/Expr'
              type: array
            type:
              const: or
              type: string
          required:
            - type
            - data
          title: or
          type: object
        - properties:
            data:
              $ref: '#/components/schemas/Expr'
            type:
              const: not
              type: string
          required:
            - type
            - data
          title: not
          type: object
    RecommendationFallback:
      description: 추천 결과가 채우지 못한 슬롯을 채우는 fallback 체인의 한 단계입니다.
      oneOf:
        - allOf:
            - $ref: '#/components/schemas/PopularFallback'
          description: 인기도 순위에서 항목을 채웁니다.
          properties:
            type:
              const: popular
              type: string
          required:
            - type
          title: popular
          type: object
        - allOf:
            - $ref: '#/components/schemas/PresetFallback'
          description: 설정에 나열된 항목으로 채웁니다.
          properties:
            type:
              const: preset
              type: string
          required:
            - type
          title: preset
          type: object
        - allOf:
            - $ref: '#/components/schemas/SnapshotFallback'
          description: 로컬 스냅샷 파일에서 항목을 채웁니다.
          properties:
            type:
              const: snapshot
              type: string
          required:
            - type
          title: snapshot
          type: object
    Companion:
      properties:
        display:
          anyOf:
            - $ref: '#/components/schemas/DisplayPlacement'
            - type: 'null'
        ext: true
        id:
          type:
            - string
            - 'null'
        vcm:
          format: int32
          type:
            - integer
            - 'null'
      type: object
    CompanionType:
      enum:
        - Static
        - HTML
        - IFrame
      type: string
    DeliveryMethod:
      enum:
        - Streaming
        - Progressive
        - Download
      type: string
    ExpandableDirection:
      enum:
        - Left
        - Right
        - Up
        - Down
        - FullScreen
        - ResizeMinimize
      type: string
    PlaybackCessationMode:
      enum:
        - OnVideoCompletion
        - OnLeavingViewport
        - OnLeavingViewportContinuesAsAUnit
      type: string
    EventTrackingMethod:
      enum:
        - 1
        - 2
      type: integer
    EventType:
      enum:
        - 1
        - 2
        - 3
        - 4
        - 5
      type: integer
    NativeRenderMode:
      description: 네이티브 렌더링 모드입니다. 서버 렌더링 HTML 마크업 또는 클라이언트 렌더링용 원시 에셋 데이터를 사용합니다.
      enum:
        - html
        - asset
      type: string
    DataAssetRequest:
      properties:
        ext: true
        len:
          format: uint32
          minimum: 0
          type:
            - integer
            - 'null'
        type:
          format: uint16
          maximum: 65535
          minimum: 0
          type: integer
      required:
        - type
      type: object
    ImageAssetRequest:
      properties:
        ext: true
        h:
          format: uint32
          minimum: 0
          type:
            - integer
            - 'null'
        hmin:
          format: uint32
          minimum: 0
          type:
            - integer
            - 'null'
        mimes:
          items:
            type: string
          type:
            - array
            - 'null'
        type:
          format: uint16
          maximum: 65535
          minimum: 0
          type:
            - integer
            - 'null'
        w:
          format: uint32
          minimum: 0
          type:
            - integer
            - 'null'
        wmin:
          format: uint32
          minimum: 0
          type:
            - integer
            - 'null'
      type: object
    IsRequired2:
      enum:
        - 0
        - 1
      type: integer
      x-enum-varnames:
        - 'No'
        - 'Yes'
    TitleAssetRequest:
      properties:
        ext: true
        len:
          format: uint32
          minimum: 0
          type: integer
      required:
        - len
      type: object
    VideoAssetRequest:
      properties:
        ext: true
        linearity:
          anyOf:
            - $ref: '#/components/schemas/LinearityMode'
            - type: 'null'
        maxduration:
          format: uint32
          minimum: 0
          type: integer
        mimes:
          items:
            type: string
          type: array
        minduration:
          format: uint32
          minimum: 0
          type: integer
        protocols:
          items:
            format: uint16
            maximum: 65535
            minimum: 0
            type: integer
          type: array
      required:
        - mimes
        - minduration
        - maxduration
        - protocols
      type: object
    CandidateFilteringMethod:
      enum:
        - NoFilter
        - ViewPenalty
        - ViewOut
      type: string
    Compare:
      properties:
        lhs:
          items:
            type: string
          type: array
        op:
          $ref: '#/components/schemas/Op'
        rhs: true
      required:
        - lhs
        - op
        - rhs
      type: object
    PopularFallback:
      description: 인기도 순위(`RankedItemPool`)에서 항목을 채웁니다.
      properties:
        activation:
          allOf:
            - $ref: '#/components/schemas/FallbackActivation'
          default: except_timeout
          description: 추천 처리의 시간 초과 여부에 따라 이 단계를 실행하는 시점입니다.
        serving_context:
          default: all
          description: '인기도 풀 내에서 조회할 컨텍스트입니다(예: `all`, `A:<ad unit id>`).'
          examples:
            - all
            - A:83031007-09d1-45d5-abe1-071b3763d876
            - AU:83031007-09d1-45d5-abe1-071b3763d876:user1
            - ABU:83031007-09d1-45d5-abe1-071b3763d876:1:user1
          type: string
      type: object
    PresetFallback:
      description: 설정 자체에 나열된 항목으로 채웁니다.
      properties:
        activation:
          allOf:
            - $ref: '#/components/schemas/FallbackActivation'
          default: always
          description: 추천 처리의 시간 초과 여부에 따라 이 단계를 실행하는 시점입니다.
        items:
          default: []
          description: 후보 항목입니다.
          items:
            $ref: '#/components/schemas/FallbackItem'
          type: array
        order:
          allOf:
            - $ref: '#/components/schemas/FallbackOrder'
          default: sequential
          description: 항목을 슬롯에 배치하는 방식입니다.
      type: object
    SnapshotFallback:
      description: 송출 호스트의 로컬 스냅샷 파일에서 항목을 채웁니다.
      properties:
        activation:
          allOf:
            - $ref: '#/components/schemas/FallbackActivation'
          default: always
          description: 추천 처리의 시간 초과 여부에 따라 이 단계를 실행하는 시점입니다.
        order:
          allOf:
            - $ref: '#/components/schemas/FallbackOrder'
          default: sequential
          description: 항목을 슬롯에 배치하는 방식입니다.
        path:
          description: 스냅샷 파일의 경로입니다.
          type: string
      required:
        - path
      type: object
    LinearityMode:
      enum:
        - 1
        - 2
      type: integer
      x-enum-varnames:
        - Linear
        - NonLinear
    Op:
      enum:
        - eq
        - ne
        - lt
        - le
        - gt
        - ge
        - in
        - nin
        - intersects
      type: string
    FallbackActivation:
      description: 추천 처리의 시간 초과 여부에 따라 fallback 단계를 실행하는 시점입니다.
      oneOf:
        - const: always
          description: 추천 처리의 시간 초과 여부와 관계없이 실행합니다.
          title: always
          type: string
        - const: except_timeout
          description: 추천 처리가 제한 시간 안에 완료된 경우에만 실행합니다.
          title: except_timeout
          type: string
        - const: timeout_only
          description: 추천 처리가 시간 초과된 경우에만 실행합니다.
          title: timeout_only
          type: string
    FallbackItem:
      description: 설정에 나열되거나 스냅샷 파일에서 읽어 fallback으로 제공하는 개별 항목입니다.
      properties:
        expire:
          description: 이 항목의 제공을 중단하는 시점입니다. 생략하면 만료되지 않습니다.
          format: date-time
          type:
            - string
            - 'null'
        id:
          description: 항목 ID(`catalogs.id`)입니다.
          type: string
      required:
        - id
      type: object
    FallbackOrder:
      description: fallback 항목을 슬롯에 배치하는 방식입니다.
      oneOf:
        - const: sequential
          description: 항목이 나열된 순서대로 배치합니다.
          title: sequential
          type: string
        - const: random
          description: 요청마다 균등한 확률로 무작위로 섞습니다.
          title: random
          type: string

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.