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

# 광고 항목 ext 수정

> 관리자 전용. `LineItem.ext` 값 전체를 교체합니다. share-goal 광고 항목의 경우 최종 `ext`에 유효한 `share` 값이 포함돼야 합니다.



## OpenAPI

````yaml /openapi/adm.openapi.ko-dev.json patch /api/developer/control/line-items/{line_item_id}/ext
openapi: 3.1.0
info:
  description: >-
    ## 소개

    Data Management API는 광고 및 추천 시스템이 활용하는 **다양한 데이터를** 종합적으로 관리해, Decision API가
    정확하고 효율적으로 작동할 수 있도록 돕습니다.


    캠페인이나 지면을 신규 등록하고 수정·삭제하는 것은 물론, **로그 및 통계 분석을** 통해 시스템 운영에 필요한 인사이트를 확보합니다.
    이렇게 확보된 데이터와 통계는 Decision API에서 최적화된 광고·콘텐츠를 결정하는 데 활용되며, 전체 광고·추천 시스템의 성능
    향상에 이바지합니다.
  title: 데이터 관리 API
  version: dev
servers: []
security: []
tags:
  - description: 인증 엔드포인트. 모든 역할(admin/operator/advertiser)이 로그인·토큰 갱신·본인 자격 증명 관리에 사용합니다.
    name: 인증
  - description: >-
      광고주 계정 관리. 운영자·관리자가 광고주를 온보딩하고 예산을 관리하며 계정을 비활성화합니다. 광고주는 본인 프로필과 잔액만 조회할
      수 있습니다.
    name: 광고주
  - description: >-
      내부 사용자(운영자/관리자) 계정 관리. 관리자 전용. 운영자 계정 생성, 역할 변경, 활성화 상태 토글, 계정 영구 삭제를
      다룹니다.
    name: 사용자
  - description: >-
      광고 단위 관리. 광고 단위와 관련 리소스를 관리합니다. 광고 단위는 code와 상위 경로에서 파생된 계층 경로 구조로 구성됩니다.
      admin·operator만 접근 가능하며 광고주는 원천 인벤토리에 접근할 수 없습니다.
    name: 광고 단위
  - description: 광고 카탈로그 관리. 광고 카탈로그 CRUD와 공유 링크를 통한 공개 조회를 제공합니다.
    name: 광고 카탈로그
  - description: 수요 파트너(광고 소스) 관리. 광고 단위에 수요를 공급하는 외부 광고 소스를 CRUD합니다.
    name: 수요 파트너
  - description: 게재 할당 관리. 광고 항목을 광고 단위 등 게재 대상에 연결합니다. CRUD, 상태별 카운트, 단건 조회를 제공합니다.
    name: 게재 할당
  - description: 연관 상품 풀(관리자). 추천 파이프라인에서 사용하는 연관 상품 풀의 일괄 저장/삭제 및 조회.
    name: 연관 상품 풀
  - description: 커스텀 타게팅 세그먼트 관리. 커스텀 타게팅 세그먼트의 CRUD 및 일괄 작업.
    name: 커스텀 타게팅 세그먼트
  - description: 감사 로그 조회. 관리 작업에 대한 시스템 감사 로그를 조회합니다.
    name: 감사 로그
  - description: 소재 차단 목록. 소재를 차단/차단 해제해 게재에서 제외합니다.
    name: 차단 소재
  - description: 카탈로그 항목 관리. 상품/데이터 카탈로그 항목을 조회·수정합니다.
    name: 카탈로그
  - description: 광고 소재 관리. 운영자·관리자가 소재를 관리하며 광고주는 본인 소재만 조회합니다. 연결된 LICA가 있으면 삭제가 차단됩니다.
    name: 소재
  - description: 대시보드 집계. 콘솔 대시보드용 요약·인벤토리·광고 항목 지표 롤업.
    name: 대시보드
  - description: 실험 관리. A/B·최적화 실험의 CRUD.
    name: 실험
  - description: 외부 소재 조회. 외부 수요 소스에서 수집된 소재를 읽기 전용으로 조회합니다.
    name: 외부 소재
  - description: 외부 연동 관리. 연동 소스(외부 데이터/서빙 커넥터)를 관리하고 연결을 테스트하며, 민감 설정이 마스킹된 공개 설정을 조회합니다.
    name: 연동
  - description: >-
      소재-광고 항목 연결(LICA). 소재를 광고 항목에 연결하며, 일괄 생성/삭제(최대 100, 부분 실패 허용)와 대시보드 카운트를
      제공합니다.
    name: 소재-광고 항목 연결(LICA)
  - description: 라이선스 정보. 사용 가능한 라이선스 기능과 사용량 지표를 조회합니다.
    name: 라이선스
  - description: >-
      광고 항목 관리. 생성·수정·삭제, 일괄 작업(최대 100, 부분 실패 허용), 상태 전환을 다룹니다. 광고 항목은 상위 주문
      아래에서 예산·목표·일정·타게팅을 정의합니다.
    name: 광고 항목
  - description: 미디어 라이브러리. 소재에 쓰이는 미디어 파일을 조회·업로드·삭제합니다.
    name: 미디어 라이브러리
  - description: 지표 조회 엔드포인트. 광고 단위·소재·광고 항목 등 엔티티의 집계 지표를 조회합니다.
    name: 지표
  - description: >-
      주문 관리. 운영자·관리자가 예산 단위로 광고 항목을 묶는 주문을 생성·관리하며, 광고주는 본인 주문을 조회합니다. 일괄 작업(최대
      100)과 draft 상태 삭제 규칙을 포함합니다.
    name: 주문
  - description: 게재 위치 관리. 게재 위치는 광고 단위를 게재 표면에 매핑합니다. CRUD와 게재 위치에 연결된 광고 단위 교체를 제공합니다.
    name: 게재 위치
  - description: 시스템 설정. 사이트 로고·Public URL·TLS·액세스 토큰 재생성을 포함한 시스템 구성을 조회·수정합니다.
    name: 설정
  - description: 시스템 리소스. 사이트 로고 등 공개 정적 리소스.
    name: 시스템
  - description: 개발자/운영용 제어 엔드포인트. 저수준 ext 변경과 헬스 체크. 일반 API 소비자가 아닌 내부 운영용입니다.
    name: 개발자/운영
  - description: 운영용 게재 할당 제어. 게재 할당 ext/상태 강제 변경(관리자 전용).
    name: 개발자/게재 할당 제어
  - description: 광고 서빙 모니터링(운영). 광고 서빙 현황·광고 단위 모니터링 이력·알림을 조회합니다.
    name: 개발자/모니터링
  - description: 내부 헬스/프로브 엔드포인트.
    name: 내부
  - description: '특정 리소스에 속하지 않는 매니저 공통 유틸리티 엔드포인트(예: 서비스 헬스).'
    name: 매니저(공통)
  - description: 광고 단위, 네이티브 포맷 및 네이티브 스타일 간의 매핑을 관리합니다.
    name: Ad Unit Native Style
  - description: 커스텀 타게팅 키와 활성화 상태를 관리하고 일괄 작업을 수행합니다.
    name: Custom Targeting Key
  - description: 커스텀 타게팅 키에 속한 값과 활성화 상태를 관리하고 일괄 작업을 수행합니다.
    name: Custom Targeting Value
  - description: 네이티브 포맷과 각 포맷을 구성하는 필드를 관리합니다.
    name: Native Format
  - description: 네이티브 스타일에 사용할 수 있는 템플릿을 조회합니다.
    name: Native Style Template
  - description: 네이티브 렌더링 스타일을 관리합니다.
    name: Native Style
paths:
  /api/developer/control/line-items/{line_item_id}/ext:
    patch:
      tags:
        - 개발자/운영
      summary: 광고 항목 ext 수정
      description: >-
        관리자 전용. `LineItem.ext` 값 전체를 교체합니다. share-goal 광고 항목의 경우 최종 `ext`에 유효한
        `share` 값이 포함돼야 합니다.
      operationId: >-
        handle_patch_ext_api_developer_control_line_items__line_item_id__ext_patch
      parameters:
        - in: path
          name: line_item_id
          required: true
          schema:
            format: uuid
            title: Line Item Id
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LineItemExtPatch'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LineItemResponse'
          description: 성공 응답
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPExceptionResponse'
          description: 권한 없음
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPExceptionResponse'
          description: 찾을 수 없음
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPExceptionResponse'
          description: 처리할 수 없는 엔티티
      security:
        - HTTPBearer: []
components:
  schemas:
    LineItemExtPatch:
      additionalProperties: false
      example:
        ext: {}
      properties:
        ext:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Ext
      required:
        - ext
      title: LineItemExtPatch
      type: object
    LineItemResponse:
      properties:
        ad_type:
          default: standard
          description: '광고 항목의 광고 유형 (예: "standard", "decision")'
          title: Ad Type
          type: string
        audience_segments:
          anyOf:
            - $ref: '#/components/schemas/LineItemAudienceSegment'
            - type: 'null'
          description: 광고 항목에 연결된 선택적 오디언스 세그먼트
        bid_strategy:
          default: highest_volume
          description: '광고 항목의 입찰 전략 (기본값: "highest_volume")'
          title: Bid Strategy
          type: string
        budget:
          description: 광고 항목 총 예산
          title: Budget
          type: number
        created_at:
          format: date-time
          title: Created At
          type: string
        creative_rotation:
          $ref: '#/components/schemas/CreativeRotation'
          default:
            admission_confidence_penalty: 0
            posterior_temperature: 1
            prior_weight: 100
            temperature: 1
            type: optimized
            weights: []
          description: 광고 항목의 소재 로테이션 전략
        custom_targeting:
          anyOf:
            - $ref: '#/components/schemas/CustomTargeting'
            - type: 'null'
          description: 광고 항목의 맞춤 타겟팅 조건 (선택)
        daily_budget:
          anyOf:
            - type: number
            - type: 'null'
          description: 광고 항목의 선택적 일 예산
          title: Daily Budget
        description:
          anyOf:
            - type: string
            - type: 'null'
          description: 광고 항목의 선택적 설명
          title: Description
        end_date:
          description: 광고 항목 종료일 (UTC)
          format: date-time
          title: End Date
          type: string
        ext:
          anyOf:
            - {}
            - type: 'null'
          description: 광고 항목의 선택적 확장 데이터
          title: Ext
        goal:
          description: 광고 항목의 목표 (click, reach, impression, conversion)
          title: Goal
          type: string
        id:
          description: 광고 항목 ID (uuid7)
          format: uuid
          title: Id
          type: string
        max_bid:
          default: 0
          description: '광고 항목의 최대 입찰 금액 (기본값: 0.0)'
          title: Max Bid
          type: number
        min_daily_imp:
          default: 1000
          description: '광고 항목의 최소 일 노출 수 (기본값: 1000.0)'
          title: Min Daily Imp
          type: number
        name:
          description: 광고 항목의 이름
          title: Name
          type: string
        'no':
          anyOf:
            - type: integer
            - type: 'null'
          title: 'No'
        oid:
          description: 상위 주문 ID
          format: uuid
          title: Oid
          type: string
        owner_id:
          description: 광고 항목 소유자 ID
          format: uuid
          title: Owner Id
          type: string
        pace_method:
          default: evenly
          description: 광고 항목의 페이싱 방식
          title: Pace Method
          type: string
        priority:
          default: 8
          description: 광고 항목의 우선순위
          minimum: 0
          title: Priority
          type: integer
        schedule:
          anyOf:
            - $ref: '#/components/schemas/LineItemSchedule'
            - type: 'null'
          description: 광고 항목의 선택적 일정
        start_date:
          description: 광고 항목 시작일 (UTC)
          format: date-time
          title: Start Date
          type: string
        status:
          $ref: '#/components/schemas/LineItemStatus'
          description: 광고 항목 상태 (draft, ready, preparing, delivering, archived)
        sub_goal:
          default: maximize_volume
          description: '광고 항목의 세부 목표 (기본값: "maximize_volume")'
          title: Sub Goal
          type: string
        target_cpa:
          description: 광고 항목의 목표 전환당 비용 (CPA)
          title: Target Cpa
          type: number
        target_cpm:
          default: 0
          description: '광고 항목의 목표 1000회 노출당 비용 (CPM) (기본값: 0.0)'
          title: Target Cpm
          type: number
        target_volume:
          default: 0
          description: '광고 항목의 목표 볼륨 (기본값: 0.0)'
          title: Target Volume
          type: number
        updated_at:
          format: date-time
          title: Updated At
          type: string
      required:
        - id
        - created_at
        - updated_at
        - budget
        - end_date
        - goal
        - name
        - oid
        - owner_id
        - start_date
        - status
        - target_cpa
      title: LineItemResponse
      type: object
    HTTPExceptionResponse:
      properties:
        detail:
          description: 오류에 대한 상세 설명
          title: Detail
          type: string
      required:
        - detail
      title: HTTPExceptionResponse
      type: object
    LineItemAudienceSegment:
      properties:
        method:
          description: '오디언스 세그먼트 매칭 방식 (예: "auto", "manual").'
          title: Method
          type: string
        segment_list:
          description: 타게팅용 오디언스 세그먼트 조건 목록.
          items:
            $ref: '#/components/schemas/AudienceSegmentInfo'
          title: Segment List
          type: array
      required:
        - method
        - segment_list
      title: LineItemAudienceSegment
      type: object
    CreativeRotation:
      properties:
        admission_confidence_penalty:
          default: 0
          title: Admission Confidence Penalty
          type: number
        creative_exposure_fatigue:
          anyOf:
            - $ref: '#/components/schemas/CreativeExposureFatigueConfig'
            - type: 'null'
        posterior_temperature:
          default: 1
          title: Posterior Temperature
          type: number
        prior_weight:
          default: 100
          title: Prior Weight
          type: number
        temperature:
          default: 1
          title: Temperature
          type: number
        type:
          $ref: '#/components/schemas/CreativeRotationType'
        user_signal:
          anyOf:
            - $ref: '#/components/schemas/CreativeRotationUserSignal'
            - type: 'null'
        weights:
          default: []
          items:
            $ref: '#/components/schemas/CreativeRotationWeight'
          title: Weights
          type: array
      required:
        - type
      title: CreativeRotation
      type: object
    CustomTargeting:
      properties:
        conditions:
          items:
            $ref: '#/components/schemas/CustomTargetingCondition'
          title: Conditions
          type: array
      required:
        - conditions
      title: CustomTargeting
      type: object
    LineItemSchedule:
      properties:
        days_of_week:
          description: 광고 항목이 활성인 요일 (1-7, 1=월요일)
          items:
            minimum: 0
            type: integer
          title: Days Of Week
          type: array
        time_ranges:
          description: '광고 항목이 활성인 시간대 (예: [{"start": "08:00", "end": "18:00"}])'
          items:
            $ref: '#/components/schemas/TimeRange'
          title: Time Ranges
          type: array
        timezone:
          anyOf:
            - type: string
            - type: 'null'
          description: '광고 항목 일정의 선택적 시간대 (예: "Asia/Seoul")'
          title: Timezone
      required:
        - days_of_week
        - time_ranges
      title: LineItemSchedule
      type: object
    LineItemStatus:
      enum:
        - draft
        - ready
        - preparing
        - delivering
        - archived
      title: LineItemStatus
      type: string
    AudienceSegmentInfo:
      properties:
        id:
          description: 오디언스 세그먼트 고유 식별자.
          title: Id
          type: string
        name:
          description: 오디언스 세그먼트 이름.
          title: Name
          type: string
      required:
        - id
        - name
      title: AudienceSegmentInfo
      type: object
    CreativeExposureFatigueConfig:
      properties:
        head:
          default:
            - 1.1799999475479126
            - 1.0800000429153442
            - 0.9800000190734863
            - 0.8999999761581421
            - 0.8199999928474426
          items:
            type: number
          title: Head
          type: array
        tail_floor:
          default: 0.6499999761581421
          title: Tail Floor
          type: number
        tail_step:
          default: 0.03999999910593033
          title: Tail Step
          type: number
      title: CreativeExposureFatigueConfig
      type: object
    CreativeRotationType:
      enum:
        - optimized
        - softmax
        - evenly
        - weighted
        - sequential
        - thompson_sampling
        - linucb_lite
      title: CreativeRotationType
      type: string
    CreativeRotationUserSignal:
      properties:
        enabled:
          default: false
          title: Enabled
          type: boolean
        prior_weight:
          default: 40
          title: Prior Weight
          type: number
        propensity_multipliers:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Propensity Multipliers
        targeting_key:
          default: signal
          title: Targeting Key
          type: string
        type:
          $ref: '#/components/schemas/CreativeRotationUserSignalType'
          default: fingerprint
      title: CreativeRotationUserSignal
      type: object
    CreativeRotationWeight:
      properties:
        crid:
          format: uuid
          title: Crid
          type: string
        weight:
          minimum: 0
          title: Weight
          type: integer
      required:
        - crid
        - weight
      title: CreativeRotationWeight
      type: object
    CustomTargetingCondition:
      properties:
        key:
          $ref: '#/components/schemas/CustomTargetingKeyRef'
        operator:
          $ref: '#/components/schemas/CustomTargetingOperator'
        values:
          items:
            $ref: '#/components/schemas/CustomTargetingValueRef'
          title: Values
          type: array
      required:
        - key
        - operator
        - values
      title: CustomTargetingCondition
      type: object
    TimeRange:
      properties:
        end:
          description: '범위 종료 시각 (예: "18:00")'
          title: End
          type: string
        start:
          description: '범위 시작 시각 (예: "08:00")'
          title: Start
          type: string
      required:
        - end
        - start
      title: TimeRange
      type: object
    CreativeRotationUserSignalType:
      enum:
        - fingerprint
      title: CreativeRotationUserSignalType
      type: string
    CustomTargetingKeyRef:
      properties:
        code:
          title: Code
          type: string
        id:
          format: uuid
          title: Id
          type: string
      required:
        - code
        - id
      title: CustomTargetingKeyRef
      type: object
    CustomTargetingOperator:
      enum:
        - in
        - not_in
      title: CustomTargetingOperator
      type: string
    CustomTargetingValueRef:
      properties:
        id:
          format: uuid
          title: Id
          type: string
        match_type:
          $ref: '#/components/schemas/MatchType'
          default: exact
        value:
          title: Value
          type: string
      required:
        - id
        - value
      title: CustomTargetingValueRef
      type: object
    MatchType:
      enum:
        - exact
      title: MatchType
      type: string
  securitySchemes:
    HTTPBearer:
      description: 'Bearer 인증. 액세스 토큰을 `Authorization: Bearer <token>` 헤더로 전달합니다.'
      scheme: bearer
      type: http

````