> ## 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.

# Update Placements

> ## 지면 등록

지면 정보를 캐시에 저장합니다.
지면 메타데이터를 기반으로 제공 로직을 업데이트하는 데 사용됩니다.



## OpenAPI

````yaml /openapi/decision.api.ko-0.2.2.json post /api/cache/placements
openapi: 3.1.0
info:
  contact:
    email: a2support@aiderx.io
    name: A2 Support
    url: https://aiderx.io
  description: |-
    ### 소개
    이 문서는 Decision API의 Ad Serving API 및 Recommendation API 구성 요소를 다룹니다.
  title: Decision APIs
  version: v0.2.2
  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


      ### **중요**

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

      Serving 서버에서 수행된 변경 사항은 Ad Manager에 반영되지 않으며,

      이는 **데이터 무결성**을 위협할 수 있습니다.
    name: Cache Management
  - description: 광고 서빙 서버 설정 API
    name: Configuration
  - description: |
      광고 전환, 노출, 클릭 로그를 수신하는 API — 광고 성능 추적 및 최적화에 필수적입니다.
    name: Ad Serving
paths:
  /api/cache/placements:
    post:
      tags:
        - Cache Management
      summary: Update Placements
      description: |-
        ## 지면 등록

        지면 정보를 캐시에 저장합니다.
        지면 메타데이터를 기반으로 제공 로직을 업데이트하는 데 사용됩니다.
      requestBody:
        content:
          application/json:
            schema:
              items:
                $ref: '#/components/schemas/Placement'
              type: array
        required: true
      responses:
        '204':
          description: 성공
        '404':
          description: 지면을 찾을 수 없습니다.
        '500':
          description: 내부 서버 오류.
      security:
        - '': []
components:
  schemas:
    Placement:
      properties:
        created_at:
          description: The date and time when the placement was created.
          format: date-time
          type: string
        display:
          $ref: '#/components/schemas/DisplayPlacement'
          default:
            clktype: 1
            instl: 0
            priv: 0
            unit: 2
          description: >-
            Placement Subtype Object that indicates that this may be a display
            placement and provides additional detail related thereto. Refer to
            Object: DisplayPlacement.
        ext:
          $ref: '#/components/schemas/PlacementExt'
          description: >-
            Additional placement-specific extensions. Defaults to the
            `PlacementExt` object.
        id:
          description: ID of the placement (uuid4) a.k.a tagid in internal system.
          type: string
        siteid:
          description: (deprecated)
          type:
            - string
            - 'null'
        video:
          $ref: '#/components/schemas/VideoPlacement'
          default:
            boxing: 1
            maxext: 0
            podseq: 0
            skipafter: 0
            skipmin: 0
            slotinpod: 0
            unit: 2
          description: >-
            Placement Subtype Object that indicates that this may be a video
            placement and provides additional detail related thereto. Refer to
            Object: VideoPlacement.
      required:
        - created_at
        - id
      type: object
    DisplayPlacement:
      properties:
        ampren:
          format: uint8
          minimum: 0
          type:
            - integer
            - 'null'
        api:
          items:
            $ref: '#/components/schemas/ApiFramework'
          type:
            - array
            - 'null'
        clktype:
          $ref: '#/components/schemas/Click'
          default: 1
        context:
          anyOf:
            - $ref: '#/components/schemas/DisplayContext'
            - type: 'null'
        ctype:
          items:
            $ref: '#/components/schemas/CreativeSubtypesDisplay'
          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'
        instl:
          default: 0
          format: uint8
          minimum: 0
          type: integer
        pos:
          anyOf:
            - $ref: '#/components/schemas/PlacementPosition'
            - type: 'null'
        priv:
          default: 0
          format: uint8
          minimum: 0
          type: integer
        ptype:
          anyOf:
            - $ref: '#/components/schemas/DisplayPlacementTypes'
            - type: 'null'
        secure:
          items:
            type: string
          type:
            - array
            - 'null'
        topframe:
          format: uint8
          minimum: 0
          type:
            - integer
            - 'null'
        unit:
          $ref: '#/components/schemas/Size'
          default: 2
        w:
          format: float
          type:
            - number
            - 'null'
      type: object
    PlacementExt:
      properties:
        approval_method:
          description: >-
            Approval method for the placement. Possible values: "admin", "auto",
            etc.
          type: string
        display:
          description: Display-specific extension data in JSON format.
        native:
          description: Native-specific extension data in JSON format.
        payout:
          description: >-
            Payout type for the placement. Possible values: "rates",
            "revenue_share", etc.
          type: string
        responsive:
          description: >-
            Indicates whether the placement is responsive. Possible values:
            "fixed", "responsive".
          type: string
        target_ecpm:
          default: 0
          description: >-
            Target eCPM (effective cost per mille) for the placement. Defaults
            to 0.0.
          format: double
          type: number
        video:
          description: Video-specific extension data in JSON format.
      required:
        - approval_method
        - display
        - native
        - payout
        - responsive
        - video
      type: object
    VideoPlacement:
      properties:
        api:
          items:
            $ref: '#/components/schemas/ApiFramework'
          type:
            - array
            - 'null'
        boxing:
          default: 1
          format: uint8
          minimum: 0
          type:
            - integer
            - 'null'
        clktype:
          anyOf:
            - $ref: '#/components/schemas/Click'
            - type: '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:
            $ref: '#/components/schemas/PlaybackMethod'
          type:
            - array
            - 'null'
        poddur:
          format: uint32
          minimum: 0
          type:
            - integer
            - 'null'
        podid:
          format: uint32
          minimum: 0
          type:
            - integer
            - 'null'
        podseq:
          anyOf:
            - $ref: '#/components/schemas/PodSequence'
            - type: 'null'
          default: 0
        pos:
          anyOf:
            - $ref: '#/components/schemas/PlacementPosition'
            - type: 'null'
        ptype:
          anyOf:
            - $ref: '#/components/schemas/PlacementSubtypeVideo'
            - type: 'null'
        rqddurs:
          items:
            format: uint32
            minimum: 0
            type: integer
          type:
            - array
            - 'null'
        skip:
          format: uint8
          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:
          anyOf:
            - $ref: '#/components/schemas/SlotPositionInPod'
            - type: 'null'
          default: 0
        unit:
          anyOf:
            - $ref: '#/components/schemas/Size'
            - type: 'null'
          default: 2
        w:
          format: uint32
          minimum: 0
          type:
            - integer
            - 'null'
      type: object
    ApiFramework:
      oneOf:
        - enum:
            - VPAID1_0
            - VPAID2_0
            - MRAID1_0
            - ORMMA
            - MRAID2_0
            - MRAID3_0
            - OMID1_0
            - SIMID1_0
            - SIMID1_1
          type: string
        - additionalProperties: false
          properties:
            VendorSpecific:
              format: uint16
              minimum: 0
              type: integer
          required:
            - VendorSpecific
          type: object
    Click:
      enum:
        - NonClickable
        - ClickableDetailsUnknown
        - ClickableEmbeddedBrowerWebView
        - ClickableNativeBrowser
      type: string
    DisplayContext:
      enum:
        - ContentCentric
        - ArticleContent
        - VideoContent
        - AudioContent
        - ImageContent
        - UserGeneratedContent
        - SocialCentric
        - EmailContent
        - ChatContent
        - ProductContext
        - AppStore
        - ProductReviews
      type: string
    CreativeSubtypesDisplay:
      enum:
        - HTML
        - AMPHTML
        - StructuredImageObject
        - StructuredNativeObject
      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:
            $ref: '#/components/schemas/ApiFramework'
          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
    Size:
      enum:
        - DIPS
        - Inches
        - Centimeters
      type: string
    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
    PlaybackMethod:
      enum:
        - InitiateOnPageLoadWithSoundOn
        - InitiateOnPageLoadWithSoundOff
        - InitiateOnClickWithSoundOn
        - InitiateOnMouseOverWithSoundOn
        - InitiateOnEnterinViewportWithSoundOn
        - InitiateOnEnteringViewportWithSoundOff
        - ContinousPlayback
      type: string
    PodSequence:
      enum:
        - Last
        - Any
        - First
      type: string
    PlacementSubtypeVideo:
      enum:
        - InStream
        - InBanner
        - InArticle
        - InFeed
        - InterstitialSliderFloating
      type: string
    SlotPositionInPod:
      enum:
        - Last
        - Any
        - First
        - FirstOrLast
      type: string
    EventTrackingMethod:
      enum:
        - 1
        - 2
      type: integer
    EventType:
      enum:
        - 1
        - 2
        - 3
        - 4
        - 5
      type: integer

````