DSP 연동 가이드

매체사에 제공되는 DSP 광고·리포트 연동 가이드 문서입니다.
광고 연동에 필요한 필수 입력 정보(media_key, adunit_id, API 키 등)의 발급과 관련된 사항은 운영 관리자에게 문의 바랍니다.

01

개요

DA Ads API는 Intellecta SSP가 자체 운영하는 캠페인 전용 광고 요청 API입니다. 매체사는 HTTP GET 방식으로 광고를 요청하고, JSON 형태의 광고 응답(adm)을 렌더링합니다.

방식HTTP GET
응답 형식application/json
광고 형태Banner / Native
02

요청 (Request)

HTTP GET 방식으로 광고 요청 URL을 호출합니다. 아래 정의된 파라미터의 필수 정보를 포함하여, 최대한 많은 파라미터를 포함하여 요청하여야 원활한 광고 응답이 이루어질 수 있습니다.

2.1 도메인 정보
운영 도메인https://api.intellecta.co.kr/da

자체 운영하는 캠페인 전용 API입니다.

https://api.intellecta.co.kr/da?media_key={media_key}&adunit_id={adunit_id}&platform={platform}&os={os}&osv={osv}&lang={lang}&model={model}&carrier={carrier}&network={network}&ifa={ifa}&ifa_use={ifa_use}&bundle={bundle}&click_track_support={click_track_support}
2.2 파라미터
파라미터타입구분설명예시
media_keyStringrequired매체 구분 정보(키)관리자 발급 정보 입력
adunit_idIntegerrequired광고 인벤토리 구분 정보관리자 발급 정보 입력
platformStringrecommanded플랫폼 정보android, ios, m.web, pc.web, etc
osStringoptionalOSandroid, ios, windows, mac, etc
osvStringoptionalOS 버전v1.0.0
langStringoptional기기 설정 언어ko, en ... etc.
modelStringoptional기기 모델명SM-S921, iPhone ... etc.
carrierStringoptional통신사 정보 KT, SK, LG UPLUS, Vodafone, AT&T ... etc.
networkStringoptional기기 네트워크 접속 정보WIFI, 4G, 5G ... etc.
ifaStringoptional광고 아이디 (android: GAID, ios: IDFA)550e8400-e29b-41d4-a716-446655440000
ifa_useIntegeroptional 기기에 설정된 광고 아이디 사용 여부 (0: not use, 1: use) 0
bundleStringoptional패키지명(앱) 또는 사이트 도메인(웹) com.domain.service (aos), id12345678 (ios)
click_track_supportIntegeroptional매체 클릭 추적 매크로 지원 (0: not use, 1: use)1 - ${CLICK_TRACK_URL} 매크로 응답
redirectlandingStringoptional y인 경우 랜딩페이지 이동 (기본값: n) ※ adunit_id별로 승인된 경우만 가능 n
03

응답 (Response)

요청에 대한 응답은 JSON 문자열 형태로 응답합니다.

3.1 기본 오브젝트
필드설명
successtrue : 성공, false : 실패
error_code에러 코드 (success : false 인 경우 포함)
error_message에러 메세지 (success : false 인 경우 포함)
data광고 응답 데이터 (success : true 인 경우 포함)
3.2 data 오브젝트
필드설명
inventory광고 요청 인벤토리 정보
ads광고 응답
3.2.1 ads 오브젝트
필드설명
adm 광고 응답 전문 (Banner: HTML 형태 / Native: OpenRTB Native 1.2 규격의 응답)
3.3 adm 응답 예시
Banner · JSON
{
  "success": true,
  "data": {
    "ads": {
      "ads_id": 0,
      "imp_track_url": "",
      "click_track_url": "",
      "landing_url": "",
      "adm": "<div style=...>...</div>"
    }
  }
}
04

에러 코드

error_codeerror_msg설명
E0001Bad request유효하지 않은 요청
E0002Unauthorized권한 없음
E0003Internal server error내부 서버 에러
E0004No Ads광고 없음
E0005Too many requests요청량 초과
E1001Invalid params.파라미터 값이 유효하지 않음
E1002Invalid media_key or missing!media_key가 유효하지 않거나 없음
E1004Invalid adunit_id or missing!adunit_id가 유효하지 않거나 없음
E2101Error during internal processing내부 처리 과정의 에러
E2202Unregistered media.등록되지 않은 미디어
E2203Media is not active.미디어가 활성화되어 있지 않음
E2301Unregistered adunit.등록되지 않은 애드유닛
E2302No adunits are available.사용 가능한 애드유닛이 없음
E2401Platform is null or not supported.플랫폼 값이 없거나(null) 지원되지 않음
E9001Unknown error.알 수 없음
참고

요청량 초과 에러(E0005)의 경우, HTTP 응답코드(Status Code) 429로 전달되며, 광고 요청 트래픽을 줄이거나 관리자에게 문의 바랍니다.

05

연동 시 주의사항

  • 로그 수집

    배너 광고 노출 및 클릭 집계는 응답 본문(adm) 내에 포함된 트래킹 스크립트를 통해 이루어집니다. Native 광고의 경우 제공된 트래킹 링크를 해당 이벤트 시점에 맞게 호출해야 합니다.

  • Timeout 설정

    원활한 사용자 경험을 위해 광고 요청 시 타임아웃은 500ms 이내로 설정할 것을 권장합니다.

  • 429 Too Many Requests

    해당 응답을 받을 경우, 즉시 재요청(Retry)을 하지 말고 일정 시간 대기 후 요청량을 조절해야 합니다.

📡
광고 요청GET /da/ads
➡️
🔗
Intellecta SSP최적 광고 선택
➡️
✅
adm 렌더링노출 / 클릭 집계
01

개요

Select Ads API는 여러 DSP 소스 중 최적의 광고를 선택(Select)하여 응답하는 전용 API입니다. 매체사는 HTTP GET 방식으로 광고를 요청하고, JSON 형태의 광고 응답(adm)과 컴패니언 광고 정보를 렌더링합니다.

방식HTTP GET
응답 형식application/json
광고 형태Banner / Native / Video
02

요청 (Request)

HTTP GET 방식으로 광고 요청 URL을 호출합니다. 아래 정의된 파라미터의 필수 정보를 포함하여, 최대한 많은 파라미터를 포함하여 요청하여야 원활한 광고 응답이 이루어질 수 있습니다.

2.1 도메인 정보
운영 도메인https://api.intellecta.co.kr/d/select

여러 DSP 소스 중 최적의 광고를 선택(Select)하여 응답하는 전용 API입니다.

https://api.intellecta.co.kr/d/select?media_key={media_key}&adunit_id={adunit_id}&platform={platform}&os={os}&osv={osv}&lang={lang}&model={model}&carrier={carrier}&network={network}&ifa={ifa}&ifa_use={ifa_use}&bundle={bundle}&click_track_support={click_track_support}
2.2 파라미터
파라미터타입구분설명예시
media_keyStringrequired매체 구분 정보(키)관리자 발급 정보 입력
adunit_idIntegerrequired광고 인벤토리 구분 정보관리자 발급 정보 입력
platformStringrecommanded플랫폼 정보android, ios, m.web, pc.web, etc
osStringoptionalOSandroid, ios, windows, mac, etc
osvStringoptionalOS 버전v1.0.0
langStringoptional기기 설정 언어ko, en ... etc.
modelStringoptional기기 모델명SM-S921, iPhone ... etc.
carrierStringoptional통신사 정보KT, SK, LG UPLUS, Vodafone, AT&T ... etc.
networkStringoptional기기 네트워크 접속 정보WIFI, 4G, 5G ... etc.
ifaStringoptional광고 아이디 (android: GAID, ios: IDFA)550e8400-e29b-41d4-a716-446655440000
ifa_useIntegeroptional기기에 설정된 광고 아이디 사용 여부 (0: not use, 1: use)0
bundleStringoptional패키지명(앱) 또는 사이트 도메인(웹)com.domain.service (aos), id12345678 (ios)
click_track_supportIntegeroptional매체 클릭 추적 매크로 지원 (0: not use, 1: use)1 - ${CLICK_TRACK_URL} 매크로 응답
03

응답 (Response)

요청에 대한 응답은 JSON 문자열 형태로 응답합니다.

3.1 기본 오브젝트
필드설명
successtrue : 성공, false : 실패
error_code에러 코드 (success : false 인 경우 포함)
error_message에러 메세지 (success : false 인 경우 포함)
data광고 응답 데이터 (success : true 인 경우 포함)
3.2 data 오브젝트
필드설명
inventory광고 요청 인벤토리 정보
ads광고 응답
companionads컴패니언 광고 응답
3.2.1 inventory 오브젝트
필드설명
media_key등록된 미디어 키
adunit_id등록된 애드유닛 아이디
adformat광고 형태 (banner, native, video 중 하나)
width소재 사이즈 (가로)
height소재 사이즈 (세로)
fullscreen전면 여부 (0: no, 1: yes)
3.2.2 ads 오브젝트
필드설명
adm광고 응답 전문 · Banner - HTML 형태 · Native - OpenRTB Native 1.2 규격의 응답 · Video - VAST 3.0 규격의 응답
3.2.3 companionads 오브젝트 (Array)
필드설명
id광고 식별 아이디
width소재 사이즈 (가로)
height소재 사이즈 (세로)
creative_url소재 URL
click_url클릭(랜딩) URL
impression_urls노출 측정 URL (Arrays of String)
click_tracking_urls클릭 측정 URL (Arrays of String)
viewability_tracking_urls뷰어빌리티(실제 화면 노출 확인) 측정을 위한 URL (Arrays of String)
duration동영상 소재일 경우 재생 시간 (이미지 소재는 0)
mime_type소재 포맷 (ex. image/png)
참고

companionads의 응답은 click_tracking_urls만 응답될 수 있습니다. click_tracking_urls의 응답 URL은 최종 landing URL까지 리다이렉트될 수 있도록 내장 WebView에서 처리되도록 하거나, 해당 기능과 동일 로직의 처리 개발이 필요합니다. 소재/노출/클릭/트래킹 정보가 유효하다면 직접 광고 렌더링을 진행해도 무방합니다.

3.3 adm 응답 예시
Banner · JSON
{
  "success": true,
  "data": {
    "inventory": {
      "media_key": "12345",
      "adunit_id": 9876543,
      "adformat": "Banner",
      "width": 320,
      "height": 480,
      "fullscreen": 0
    },
    "ads": {
      "dsp_id": 0,
      "adm": "<div style=...>...</div>"
    },
    "companionads": [
      {
        "id": "banner_12345",
        "width": 300,
        "height": 250,
        "creative_url": "https://cdn.example.com/creatives/banner_12345.png",
        "click_url": "https://track.example.com/click?adid=banner_12345",
        "impression_urls": [
          "https://track.example.com/impression?adid=banner_12345"
        ],
        "click_tracking_urls": [
          "https://track.example.com/clicktrack?adid=banner_12345"
        ],
        "viewability_tracking_urls": [
          "https://measure.example.com/viewable?adid=banner_12345"
        ],
        "duration": 0,
        "mime_type": "image/png"
      }
    ]
  }
}
04

FallbackAds

서버가 광고 요청에 대한 적당한 응답 항목을 선택하지 못한 경우, 광고 인벤토리의 Fill Rate을 높이기 위해 Fallback Ads가 응답될 수 있습니다. Fallback Ads는 기존 광고 응답과 동일하며, 별도 구분을 위해 ads 오브젝트 하위에 ad_type 항목이 추가됩니다.

FallbackAds · JSON
{
  "success": true,
  "data": {
    "inventory": {
      "media_key": "12345",
      "adunit_id": 9876543,
      "adformat": "Banner",
      "width": 320,
      "height": 480,
      "fullscreen": 0
    },
    "ads": {
      "dsp_id": 0,
      "ad_type": "FallbackAds",
      "adm": "<div style=...>...</div>"
    }
  }
}
05

에러 코드

error_codeerror_msg설명
E0001Bad request유효하지 않은 요청
E0002Unauthorized권한 없음
E0003Internal server error내부 서버 에러
E0004No Ads광고 없음
E0005Too many requests요청량 초과
E1001Invalid params.파라미터 값이 유효하지 않음
E1002Invalid media_key or missing!media_key가 유효하지 않거나 없음
E1004Invalid adunit_id or missing!adunit_id가 유효하지 않거나 없음
E2101Error during internal processing내부 처리 과정의 에러
E2202Unregistered media.등록되지 않은 미디어
E2203Media is not active.미디어가 활성화되어 있지 않음
E2301Unregistered adunit.등록되지 않은 애드유닛
E2302No adunits are available.사용 가능한 애드유닛이 없음
E2401Platform is null or not supported.플랫폼 값이 없거나(null) 지원되지 않음
E9001Unknown error.알 수 없음
참고

요청량 초과 에러(E0005)의 경우, HTTP 응답코드(Status Code) 429로 전달되며, 광고 요청 트래픽을 줄이거나 관리자에게 문의 바랍니다.

06

연동 시 주의사항

  • 로그 수집

    배너 광고 노출 및 클릭 집계는 응답 본문(adm) 내에 포함된 트래킹 스크립트를 통해 이루어집니다. Video, Native 광고의 경우 제공된 트래킹 링크를 해당 이벤트 시점에 맞게 호출해야 합니다.

  • Timeout 설정

    원활한 사용자 경험을 위해 광고 요청 시 타임아웃은 500ms 이내로 설정할 것을 권장합니다.

  • 429 Too Many Requests

    해당 응답을 받을 경우, 즉시 재요청(Retry)을 하지 말고 일정 시간 대기 후 요청량을 조절해야 합니다.

01

개요

DSP 매체의 직접광고 리포트 데이터를 조회하기 위한 API 연동규격입니다.

기본 주소https://api.intellecta.co.kr
프로토콜 / 방식HTTPS / GET
응답 형식application/json
02

인증

API 요청 시 apiKey, mediaApiKey, adunitApiKey 중 하나를 필수로 전달해야 합니다.

파라미터타입필수 여부설명
apiKey문자열택일 필수퍼블리셔 API 인증 키 (퍼블리셔 전체 리포트 조회)
mediaApiKey문자열택일 필수미디어 API 인증 키 (해당 미디어 리포트만 조회)
adunitApiKey문자열택일 필수애드유닛 API 인증 키 (해당 애드유닛 리포트만 조회)
인증 방식

세 키 중 하나만 전달합니다. 동시에 전달되면 우선순위는 adunitApiKey > mediaApiKey > apiKey 입니다.

03

공통 응답 형식

3.1 성공 응답
JSON
{
  "result": true,
  "data": {
    "total": 30,
    "report": [ ... ]
  }
}
필드타입설명
total정수전체 데이터 건수
report배열리포트 데이터 목록
3.2 에러 응답
JSON
{
  "result": false,
  "data": {
    "errorMessage": "API Key는 필수입니다."
  }
}
3.3 에러 코드
코드메시지
100API Key는 필수입니다.
101유효하지 않은 API Key입니다.
301날짜는 필수입니다.
302날짜는 숫자 형식이어야 합니다.
303날짜는 8자리여야 합니다.
304존재하지 않는 날짜입니다.
305미래 날짜는 조회할 수 없습니다.
306시작일이 종료일보다 클 수 없습니다.
307최대 조회 기간을 초과했습니다.
04

API 목록

4.1 일자별 직접광고 리포트 GET

일자별 직접광고 성과 데이터를 조회합니다.

요청 주소GET /dsp_media_report/daily
요청 예시
apiKey 사용 (퍼블리셔 전체 리포트)
https://api.intellecta.co.kr/dsp_media_report/daily?apiKey={apiKey}&startDate=20260201&endDate=20260227
https://api.intellecta.co.kr/dsp_media_report/daily?apiKey={apiKey}&startDate=20260201&endDate=20260227&mediaId=10&adunitId=5&platformId=1,2
mediaApiKey 사용 (해당 미디어 리포트만 조회)
https://api.intellecta.co.kr/dsp_media_report/daily?mediaApiKey={mediaApiKey}&startDate=20260201&endDate=20260227
https://api.intellecta.co.kr/dsp_media_report/daily?mediaApiKey={mediaApiKey}&startDate=20260201&endDate=20260227&adunitId=5&platformId=1,2
adunitApiKey 사용 (해당 애드유닛 리포트만 조회)
https://api.intellecta.co.kr/dsp_media_report/daily?adunitApiKey={adunitApiKey}&startDate=20260201&endDate=20260227
https://api.intellecta.co.kr/dsp_media_report/daily?adunitApiKey={adunitApiKey}&startDate=20260201&endDate=20260227&platformId=1,2
요청 파라미터
파라미터타입필수 여부설명
apiKey문자열택일 필수퍼블리셔 API 인증 키
mediaApiKey문자열택일 필수미디어 API 인증 키
adunitApiKey문자열택일 필수애드유닛 API 인증 키
startDate문자열(8)필수조회 시작일 (YYYYMMDD 형식)
endDate문자열(8)필수조회 종료일 (YYYYMMDD 형식)
mediaId정수선택미디어 ID (mediaApiKey / adunitApiKey 사용 시 무시됨)
adunitId정수선택애드유닛 ID (adunitApiKey 사용 시 무시됨)
platformId문자열선택플랫폼 ID (복수 시 콤마 구분, 예: 1,2,3)
조회 기간 제한

시작일과 종료일의 차이는 최대 180일 미만이어야 합니다.

응답 항목 (report)
항목타입설명
date문자열날짜 (YYYY-MM-DD 형식)
req정수요청수
imp정수노출수
click정수클릭수
ctr실수CTR (%)
cost정수비용 (원)
응답 예시
JSON
{
  "result": true,
  "data": {
    "total": 3,
    "report": [
      {
        "date": "2026-02-27",
        "req": 5000,
        "imp": 3200,
        "click": 150,
        "ctr": 4.69,
        "cost": 15000
      },
      {
        "date": "2026-02-26",
        "req": 4800,
        "imp": 3100,
        "click": 140,
        "ctr": 4.52,
        "cost": 14000
      }
    ]
  }
}
05

연동 흐름

  • 퍼블리셔 단위 연동

    퍼블리셔 API 인증 키(apiKey) 발급 → 일자별 직접광고 리포트 조회 (/dsp_media_report/daily)

  • 미디어 단위 연동

    미디어 API 인증 키(mediaApiKey) 발급 → 일자별 직접광고 리포트 조회 (/dsp_media_report/daily) — 해당 미디어 데이터만 반환

  • 애드유닛 단위 연동

    애드유닛 API 인증 키(adunitApiKey) 발급 → 일자별 직접광고 리포트 조회 (/dsp_media_report/daily) — 해당 애드유닛 데이터만 반환

06

주의사항

  • 날짜 형식

    모든 날짜는 YYYYMMDD 형식(8자리 숫자)으로 전달해야 합니다.

  • 미래 날짜 조회 불가

    미래 날짜는 조회할 수 없습니다. 시작일은 종료일보다 이전이거나 같아야 합니다.

  • 조회 기간

    일자별 리포트는 최대 180일 미만의 기간만 조회 가능합니다.

  • 비용 단위

    비용(cost)은 원(KRW) 단위이며 소수점 이하는 버림 처리됩니다.

  • 정렬

    데이터는 최신 날짜 순(내림차순)으로 정렬됩니다.

  • 선택 파라미터

    mediaId, adunitId, platformId는 선택 파라미터이며, 복수 필터 동시 적용이 가능합니다. platformId는 콤마(,)로 구분하여 복수 전달 가능합니다. (예: platformId=1,2)

  • 키 사용 시 무시 규칙

    mediaApiKey 사용 시 mediaId 파라미터는 무시됩니다. adunitApiKey 사용 시 mediaId, adunitId 파라미터는 무시됩니다.