공개 입찰 네트워크 통합

ORTB 요청/응답

관리자가 제공하는 서버 간 통합을 위한 Yandex 엔드포인트.

Yandex는 OpenRTB API Specification 2.5를 지원합니다.

입찰가 요청 구조

Bid Request객체

속성

유형

필수

설명

id

문자열

거래소에서 제공하는 입찰가 요청의 고유 ID

imp

Imp 객체 배열

제공된 노출을 나타내는 Imp 객체 배열(Imp 객체 참조). 첫 번째 imp 객체만 고려됩니다

app

App 객체

게시자의 앱에 대한 App 객체를 통한 세부 정보(App 객체 참조)

device

Device 객체

노출이 전달될 사용자의 장치에 대한 Device 객체를 통한 세부 정보(Device 객체 참조)

user

User 객체

장치의 인간 사용자에 대한 User 객체를 통한 세부 정보; 광고 오디언스(User 객체 참조)

tmax

정수

타임아웃을 피하기 위해 입찰가를 받는 데 거래소에서 허용하는 인터넷 지연 시간을 포함한 최대 시간(밀리초)

cur

문자열 배열

ISO-4217 알파 코드를 사용하는 이 입찰가 요청에 대한 입찰기에 허용되는 통화의 배열, 기본값은 ["USD"]

test

정수

아니요

경매가 청구되지 않는 테스트 모드의 표시기, 여기서 0 = 라이브 모드, 1 = 테스트 모드, 기본값은 0

at

정수

아니요

경매 유형, 여기서 1 = 첫 번째 가격, 2 = 두 번째 가격 플러스, 기본값은 1

bcat

문자열 배열

아니요

IAB 콘텐츠 카테고리를 사용하여 차단된 광고주 카테고리

regs

Regs 객체

아니요

이 요청에 적용되는 산업, 법률 또는 정부 규정을 지정하는 Regs 객체(Reqs 객체 참조)

App객체

속성

유형

필수

설명

bundle

문자열

앱에 대해 고유하고 거래소와 독립적인 플랫폼별 애플리케이션 식별자

id

문자열

아니요

거래소별 앱 ID

name

문자열

아니요

앱 이름

cat

문자열 배열

아니요

앱의 IAB 콘텐츠 카테고리 배열

ver

문자열

아니요

애플리케이션 버전

publisher

Publisher 객체

아니요

앱 게시자에 대한 세부 정보

keywords

문자열

아니요

쉼표로 구분된 앱에 대한 키워드의 목록

Publisher객체

속성

유형

필수

설명

id

문자열

아니요

거래소별 게시자 ID

name

문자열

아니요

게시자 이름

cat

문자열 배열

아니요

게시자를 설명하는 IAB 콘텐츠 카테고리 배열

domain

문자열

아니요

게시자의 최상위 도메인

Device객체

속성

유형

필수

설명

ua

문자열

브라우저 사용자 에이전트 문자열

ip

문자열

장치에 가장 가까운 IPv4 주소

geo

Geo 객체

아니요

사용자의 현재 위치로 가정되는 장치의 위치는 Geo 객체에 의해 정의됨(Geo 객체 참조)

dnt

정수

아니요

표준 Do Not Track 플래그는 브라우저의 헤더에 설정되며, 여기서 0 = 추적이 제한되지 않음, 1 = 추적 안 함

lmt

정수

아니요

상업적으로 승인된 Limit Ad Tracking 신호, 여기서 0 = 추적이 제한되지 않음, 1 = 상업적 가이드라인에 따라 추적이 제한되어야 함

ipv6

문자열

아니요

IPv6로 장치에 가장 가까운 IP 주소

os

문자열

아니요

장치 운영 체제

osv

문자열

아니요

장치 운영 체제 버전

h

정수

아니요

화면의 물리적 높이(픽셀)

w

정수

아니요

화면의 물리적 너비(픽셀)

language

문자열

아니요

ISO-639-1-alpha-2를 사용하는 브라우저 언어

connectiontype

정수

아니요

네트워크 연결 유형

ifa

문자열

아니요

광고주 사용이 승인된 ID

Geo객체

속성

유형

필수

설명

lat

실수

아니요

위도 -90.0에서 +90.0까지, 음수는 남쪽

lon

실수

아니요

경도 -180.0에서 +180.0까지, 음수는 서쪽

country

문자열

아니요

ISO-3166-1-alpha-3 을 사용하는 국가 코드

region

문자열

아니요

ISO-3166-2를 사용하는 지역 코드, 미국의 경우 2자리 주 코드

city

문자열

아니요

UN/LOCODE(유엔 유럽 경제 위원회의 지리적 코드 체계)를 사용하는 도시

Imp객체

속성

유형

필수

설명

id

문자열

입찰가 요청 컨텍스트에서 이 노출에 대한 고유 식별자

tagid

문자열

Yandex Ads 광고 단위 ID

ext.ad_type

문자열

광고의 유형. 값: banner, interstitial, rewarded, appopenad, native

banner

Banner 객체

아니요

Banner 객체

video

Video 객체

아니요

Video 객체

native

Native 객체

아니요

Native 객체

instl

정수

아니요

1 = 광고가 전면 또는 전체 화면, 0 = 전면 광고 아님

rwdd

정수

아니요

사용자가 광고를 시청하여 보상을 받는지 여부를 나타내며, 여기서 0 = 아니오, 1 = 예

속성

유형

필수

설명

w

정수

아니요

밀도 독립 화소(DIPS)의 정확한 너비

h

정수

아니요

밀도 독립 화소(DIPS)의 정확한 높이

format

Format 객체 배열

아니요

허용된 배너 크기를 나타내는 Format 객체 배열(Format 객체 참조)

Format객체

속성

유형

필수

설명

w

정수

아니요

밀도 독립 화소(DIPS)의 너비

h

정수

아니요

밀도 독립 화소(DIPS)의 높이

wratio

정수

아니요

비율로 크기를 표현할 때 상대 너비

hratio

정수

아니요

비율로 크기를 표현할 때 상대 높이

wmin

정수

아니요

광고가 표시될 밀도 독립 화소(DIPS)의 최소 너비. 크기는 비율로 표시됨

Video객체

속성

유형

필수

설명

mimes

문자열 배열

아니요

밀도 독립 화소(DIPS)의 정확한 너비

w

정수

아니요

밀도 독립 화소(DIPS)의 동영상 플레이어 너비

h

정수

아니요

밀도 독립 화소(DIPS)의 동영상 플레이어 높이

Native객체

속성

유형

필수

설명

request

문자열

아니요

네이티브 광고 사양을 준수하는 요청 페이로드

ver

정수

아니요

요청이 준수하는 Dynamic Native Ads API의 버전

User객체

속성

유형

필수

설명

data.segment.signal

문자열

Yandex Mobile Ads SDK에서 획득한 입찰자 토큰

id

문자열

아니요

사용자에 대한 교환소별 ID

keywords

문자열

아니요

쉼표로 구분된 키워드, 관심사 또는 의도 목록

Regs 객체

속성

유형

필수

설명

coppa

정수

아니요

이 요청이 COPPA 규정 대상인지 여부를 나타내는 플래그, 여기서 0 = 아니요, 1 = 예

gdpr

정수

아니요

이 요청이 GDPR 규정 대상인지 여부를 나타내는 플래그, 여기서 0 = 아니요, 1 = 예

ext.consent

정수

아니요

사용자가 동의를 했는지 여부를 나타내는 플래그, 여기서 0 = 아니요, 1 = 예

ext.tcf_consent_string

문자열

아니요

url safe base64 문자열로서의 TCF 동의 문자열 Yandex AC 공급업체 ID는 1033

국가 코드 값을 포함한 헤더 X-Country-Code를 추가하는 것을 권장합니다.

입찰가 요청 예시

{
  "id": "00000000000000000000000",
  "at": 1,
  "tmax": 3000,
  "cur": [
    "USD"
  ],
  "app": {
    "name": "Test app",
    "bundle": "test.bundle",
    "cat": [
      "IAB9-30"
    ],
    "publisher": {
      "name": "Demo studio games",
      "domain": "test.domain"
    }
  },
  "device": {
    "ifa": "52fc72ad-dfa3-4ccb-a614-d60c3a9ec905",
    "ip": "000.000.000.000",
    "language": "en",
    "connectiontype": 6,
    "h": 1650,
    "w": 720,
    "geo": {
      "lat": 1.0,
      "lon": 1.0,
      "city": "Demo city"
    },
    "osv": "12.0.0",
    "os": "android",
    "ua": "demo user agent",
  },
  "imp": [
    {
      "id": "1",
      "instl": 0,
      "tagid": "demo-banner-yandex",
      "rwdd": 0,
      "banner": {
        "w": 320,
        "h": 50
      },
      "ext": {
        "ad_type": "banner"
      }
    }
  ],
  "user": {
    "data": [
      {
        "segment": [
          {
            "signal": "AAAAAZCN7oq0h2hscaYv9Toq9PQ5a/rlD2WTApTYPSXW0vYlQDYoLruywTekZYfFo6XhydKev15guctnw3WsQhhZ5bX19b59Ro00fVQqJ5k8uKbITKkDS/c/VDymvomUxg/B9yAfVm4BUDkzknfplXBlKXOwPCTbN7PXZ307OFEjvUhexcTkue4bK6sD/mGvOFZv6ZrT12zsJyfDVFdLJxbdPzsQM0Wg1/jgyDF+oO0zRLOCwbX2UNPW7DRJtsKvArZhqrY9tUTaSFaWFpimGKMkC6PXV9Q9BH5uw5qIptis8PCwrT5T/z9cKdQ+bb0DiQklyn9UZuldGGyJBYdzbEyaQ3hKDyjQqZMAM4EX19hrM/T0/4v8Xt63mgPVLNjQECQPpf9lErm0YQvlMsmF3iy5LbdNO3fUeFj8JK3P0QYpsylMBMm2JKnRW0pJGXuJpz8NjHjVvz/wFcj+KrYcsEYgq+rysEh/e1jTTMLntAnOyaCA/Hr53UKq1nzTgh3ovDksMm6V5RUPJzTrWSey1zPdqujrh8mKJNq1bi0Eq45waVkBJ011JFcQo0Hn9Gei6rOvvr8H98rC4PTufWsgmCxjxNeNTfeQQTMZGvWAmq02gsCSfp8reAzSWdRWEwJFxtgSVa45G01Q/aQuH4FRI5B/FOoIqqIP/J/lTo74PtSpuSU/WU0xXZaxDUdDkc26yEpv0KDU/7uQH4Ffjj8L3T/S93SKAuQVxhHqRGBr7xS2jHIsAXwcllV+L1HiUcgM4nBbXTUg6r0UB6U817hbRd+u5/9S6wXX6SqrUWBG/ACbSKpi5urQz1ZmKAUGzj098rKXonrrRGEMGOFnMA3mSAqKNOUfx+BVs7Je75IitJzhiyETzRjKodFRWWeavF69wxs/8roFqoUySSbipX9maEzKy3Uaevryx4k+QramYCNDNjjzimMyjlWnwI5bdcHuPP1iaM5X/gAfSwEQdWVkcU1VVhNJ6xV35wUmoqOQbVnvHSQIZPhaAT3ooZnK/UrIZ3EW3uVODfl/dnYmE5Pe+KoUg/qxoLpfPhxqiUJpQHkI697FT82JeG85hFmuldqbInKXVvoCWSvXvQIIBGNMtfHZFCtpiCFgGxLhQRVkSKyprYc/uCbmYaH38WruoFVvTx43M2rhMz1TKQODKRfrim6v4IEm1eSe76AC0/4fumZkcc3dVDV6BtItAtS58yeGb8UTRYdUHpTXvCqp5LsHUNow4yOxmzXeTFHHAZ3kv95IqlujanO7d+XnWLTTe8j0wcq+h559tK74UCoGgiWNKH84D7ePUuTzybY0Gr2LZYLbWIZBBIzsQQbZfjG3bTYIS8ePdUVQJGuoTl4R377zm/qBcKhMJlkrp/sCCj40xun5w/YRJ1NPoHMBoM9SCWGgUny51FIJI9TP4tRMBl3LhqwQPqYTDQz1qGF4oN74+EazQIskye33PPCay02uu8uVUg2OJA=="
          }
        ]
      }
    ]
  }
}
{
  "id": "00000000000000000000000",
  "at": 1,
  "tmax": 3000,
  "cur": [
    "USD"
  ],
  "app": {
    "name": "Test app",
    "bundle": "test.bundle",
    "cat": [
      "IAB9-30"
    ],
    "publisher": {
      "name": "Demo studio games",
      "domain": "test.domain"
    }
  },
  "device": {
    "ifa": "52fc72ad-dfa3-4ccb-a614-d60c3a9ec905",
    "ip": "000.000.000.000",
    "language": "en",
    "connectiontype": 6,
    "h": 1650,
    "w": 720,
    "geo": {
      "lat": 1.0,
      "lon": 1.0,
      "city": "Demo city"
    },
    "osv": "12.0.0",
    "os": "android",
    "ua": "demo user agent",
  },
  "imp": [
    {
      "id": "1",
      "instl": 1,
      "tagid": "demo-interstitial-yandex",
      "rwdd": 0,
      "ext": {
        "ad_type": "interstitial"
      }
    }
  ],
  "user": {
    "data": [
      {
        "segment": [
          {
            "signal": "AAAAAZCN7oq0h2hscaYv9Toq9PQ5a/rlD2WTApTYPSXW0vYlQDYoLruywTekZYfFo6XhydKev15guctnw3WsQhhZ5bX19b59Ro00fVQqJ5k8uKbITKkDS/c/VDymvomUxg/B9yAfVm4BUDkzknfplXBlKXOwPCTbN7PXZ307OFEjvUhexcTkue4bK6sD/mGvOFZv6ZrT12zsJyfDVFdLJxbdPzsQM0Wg1/jgyDF+oO0zRLOCwbX2UNPW7DRJtsKvArZhqrY9tUTaSFaWFpimGKMkC6PXV9Q9BH5uw5qIptis8PCwrT5T/z9cKdQ+bb0DiQklyn9UZuldGGyJBYdzbEyaQ3hKDyjQqZMAM4EX19hrM/T0/4v8Xt63mgPVLNjQECQPpf9lErm0YQvlMsmF3iy5LbdNO3fUeFj8JK3P0QYpsylMBMm2JKnRW0pJGXuJpz8NjHjVvz/wFcj+KrYcsEYgq+rysEh/e1jTTMLntAnOyaCA/Hr53UKq1nzTgh3ovDksMm6V5RUPJzTrWSey1zPdqujrh8mKJNq1bi0Eq45waVkBJ011JFcQo0Hn9Gei6rOvvr8H98rC4PTufWsgmCxjxNeNTfeQQTMZGvWAmq02gsCSfp8reAzSWdRWEwJFxtgSVa45G01Q/aQuH4FRI5B/FOoIqqIP/J/lTo74PtSpuSU/WU0xXZaxDUdDkc26yEpv0KDU/7uQH4Ffjj8L3T/S93SKAuQVxhHqRGBr7xS2jHIsAXwcllV+L1HiUcgM4nBbXTUg6r0UB6U817hbRd+u5/9S6wXX6SqrUWBG/ACbSKpi5urQz1ZmKAUGzj098rKXonrrRGEMGOFnMA3mSAqKNOUfx+BVs7Je75IitJzhiyETzRjKodFRWWeavF69wxs/8roFqoUySSbipX9maEzKy3Uaevryx4k+QramYCNDNjjzimMyjlWnwI5bdcHuPP1iaM5X/gAfSwEQdWVkcU1VVhNJ6xV35wUmoqOQbVnvHSQIZPhaAT3ooZnK/UrIZ3EW3uVODfl/dnYmE5Pe+KoUg/qxoLpfPhxqiUJpQHkI697FT82JeG85hFmuldqbInKXVvoCWSvXvQIIBGNMtfHZFCtpiCFgGxLhQRVkSKyprYc/uCbmYaH38WruoFVvTx43M2rhMz1TKQODKRfrim6v4IEm1eSe76AC0/4fumZkcc3dVDV6BtItAtS58yeGb8UTRYdUHpTXvCqp5LsHUNow4yOxmzXeTFHHAZ3kv95IqlujanO7d+XnWLTTe8j0wcq+h559tK74UCoGgiWNKH84D7ePUuTzybY0Gr2LZYLbWIZBBIzsQQbZfjG3bTYIS8ePdUVQJGuoTl4R377zm/qBcKhMJlkrp/sCCj40xun5w/YRJ1NPoHMBoM9SCWGgUny51FIJI9TP4tRMBl3LhqwQPqYTDQz1qGF4oN74+EazQIskye33PPCay02uu8uVUg2OJA=="
          }
        ]
      }
    ]
  }
}
{
  "id": "00000000000000000000000",
  "at": 1,
  "tmax": 3000,
  "cur": [
    "USD"
  ],
  "app": {
    "name": "Test app",
    "bundle": "test.bundle",
    "cat": [
      "IAB9-30"
    ],
    "publisher": {
      "name": "Demo studio games",
      "domain": "test.domain"
    }
  },
  "device": {
    "ifa": "52fc72ad-dfa3-4ccb-a614-d60c3a9ec905",
    "ip": "000.000.000.000",
    "language": "en",
    "connectiontype": 6,
    "h": 1650,
    "w": 720,
    "geo": {
      "lat": 1.0,
      "lon": 1.0,
      "city": "Demo city"
    },
    "osv": "12.0.0",
    "os": "android",
    "ua": "demo user agent",
  },
  "imp": [
    {
      "id": "1",
      "instl": 0,
      "tagid": "demo-rewarded-yandex",
      "rwdd": 1,
      "ext": {
        "ad_type": "rewarded"
      }
    }
  ],
  "user": {
    "data": [
      {
        "segment": [
          {
            "signal": "AAAAAZCN7oq0h2hscaYv9Toq9PQ5a/rlD2WTApTYPSXW0vYlQDYoLruywTekZYfFo6XhydKev15guctnw3WsQhhZ5bX19b59Ro00fVQqJ5k8uKbITKkDS/c/VDymvomUxg/B9yAfVm4BUDkzknfplXBlKXOwPCTbN7PXZ307OFEjvUhexcTkue4bK6sD/mGvOFZv6ZrT12zsJyfDVFdLJxbdPzsQM0Wg1/jgyDF+oO0zRLOCwbX2UNPW7DRJtsKvArZhqrY9tUTaSFaWFpimGKMkC6PXV9Q9BH5uw5qIptis8PCwrT5T/z9cKdQ+bb0DiQklyn9UZuldGGyJBYdzbEyaQ3hKDyjQqZMAM4EX19hrM/T0/4v8Xt63mgPVLNjQECQPpf9lErm0YQvlMsmF3iy5LbdNO3fUeFj8JK3P0QYpsylMBMm2JKnRW0pJGXuJpz8NjHjVvz/wFcj+KrYcsEYgq+rysEh/e1jTTMLntAnOyaCA/Hr53UKq1nzTgh3ovDksMm6V5RUPJzTrWSey1zPdqujrh8mKJNq1bi0Eq45waVkBJ011JFcQo0Hn9Gei6rOvvr8H98rC4PTufWsgmCxjxNeNTfeQQTMZGvWAmq02gsCSfp8reAzSWdRWEwJFxtgSVa45G01Q/aQuH4FRI5B/FOoIqqIP/J/lTo74PtSpuSU/WU0xXZaxDUdDkc26yEpv0KDU/7uQH4Ffjj8L3T/S93SKAuQVxhHqRGBr7xS2jHIsAXwcllV+L1HiUcgM4nBbXTUg6r0UB6U817hbRd+u5/9S6wXX6SqrUWBG/ACbSKpi5urQz1ZmKAUGzj098rKXonrrRGEMGOFnMA3mSAqKNOUfx+BVs7Je75IitJzhiyETzRjKodFRWWeavF69wxs/8roFqoUySSbipX9maEzKy3Uaevryx4k+QramYCNDNjjzimMyjlWnwI5bdcHuPP1iaM5X/gAfSwEQdWVkcU1VVhNJ6xV35wUmoqOQbVnvHSQIZPhaAT3ooZnK/UrIZ3EW3uVODfl/dnYmE5Pe+KoUg/qxoLpfPhxqiUJpQHkI697FT82JeG85hFmuldqbInKXVvoCWSvXvQIIBGNMtfHZFCtpiCFgGxLhQRVkSKyprYc/uCbmYaH38WruoFVvTx43M2rhMz1TKQODKRfrim6v4IEm1eSe76AC0/4fumZkcc3dVDV6BtItAtS58yeGb8UTRYdUHpTXvCqp5LsHUNow4yOxmzXeTFHHAZ3kv95IqlujanO7d+XnWLTTe8j0wcq+h559tK74UCoGgiWNKH84D7ePUuTzybY0Gr2LZYLbWIZBBIzsQQbZfjG3bTYIS8ePdUVQJGuoTl4R377zm/qBcKhMJlkrp/sCCj40xun5w/YRJ1NPoHMBoM9SCWGgUny51FIJI9TP4tRMBl3LhqwQPqYTDQz1qGF4oN74+EazQIskye33PPCay02uu8uVUg2OJA=="
          }
        ]
      }
    ]
  }
}
{
  "id": "00000000000000000000000",
  "at": 1,
  "tmax": 3000,
  "cur": [
    "USD"
  ],
  "app": {
    "name": "Test app",
    "bundle": "test.bundle",
    "cat": [
      "IAB9-30"
    ],
    "publisher": {
      "name": "Demo studio games",
      "domain": "test.domain"
    }
  },
  "device": {
    "ifa": "52fc72ad-dfa3-4ccb-a614-d60c3a9ec905",
    "ip": "000.000.000.000",
    "language": "en",
    "connectiontype": 6,
    "h": 1650,
    "w": 720,
    "geo": {
      "lat": 1.0,
      "lon": 1.0,
      "city": "Demo city"
    },
    "osv": "12.0.0",
    "os": "android",
    "ua": "demo user agent",
  },
  "imp": [
    {
      "id": "1",
      "instl": 0,
      "tagid": "demo-native-content-yandex",
      "rwdd": 0,
      "ext": {
        "ad_type": "native"
      }
    }
  ],
  "user": {
    "data": [
      {
        "segment": [
          {
            "signal": "AAAAAZCN7oq0h2hscaYv9Toq9PQ5a/rlD2WTApTYPSXW0vYlQDYoLruywTekZYfFo6XhydKev15guctnw3WsQhhZ5bX19b59Ro00fVQqJ5k8uKbITKkDS/c/VDymvomUxg/B9yAfVm4BUDkzknfplXBlKXOwPCTbN7PXZ307OFEjvUhexcTkue4bK6sD/mGvOFZv6ZrT12zsJyfDVFdLJxbdPzsQM0Wg1/jgyDF+oO0zRLOCwbX2UNPW7DRJtsKvArZhqrY9tUTaSFaWFpimGKMkC6PXV9Q9BH5uw5qIptis8PCwrT5T/z9cKdQ+bb0DiQklyn9UZuldGGyJBYdzbEyaQ3hKDyjQqZMAM4EX19hrM/T0/4v8Xt63mgPVLNjQECQPpf9lErm0YQvlMsmF3iy5LbdNO3fUeFj8JK3P0QYpsylMBMm2JKnRW0pJGXuJpz8NjHjVvz/wFcj+KrYcsEYgq+rysEh/e1jTTMLntAnOyaCA/Hr53UKq1nzTgh3ovDksMm6V5RUPJzTrWSey1zPdqujrh8mKJNq1bi0Eq45waVkBJ011JFcQo0Hn9Gei6rOvvr8H98rC4PTufWsgmCxjxNeNTfeQQTMZGvWAmq02gsCSfp8reAzSWdRWEwJFxtgSVa45G01Q/aQuH4FRI5B/FOoIqqIP/J/lTo74PtSpuSU/WU0xXZaxDUdDkc26yEpv0KDU/7uQH4Ffjj8L3T/S93SKAuQVxhHqRGBr7xS2jHIsAXwcllV+L1HiUcgM4nBbXTUg6r0UB6U817hbRd+u5/9S6wXX6SqrUWBG/ACbSKpi5urQz1ZmKAUGzj098rKXonrrRGEMGOFnMA3mSAqKNOUfx+BVs7Je75IitJzhiyETzRjKodFRWWeavF69wxs/8roFqoUySSbipX9maEzKy3Uaevryx4k+QramYCNDNjjzimMyjlWnwI5bdcHuPP1iaM5X/gAfSwEQdWVkcU1VVhNJ6xV35wUmoqOQbVnvHSQIZPhaAT3ooZnK/UrIZ3EW3uVODfl/dnYmE5Pe+KoUg/qxoLpfPhxqiUJpQHkI697FT82JeG85hFmuldqbInKXVvoCWSvXvQIIBGNMtfHZFCtpiCFgGxLhQRVkSKyprYc/uCbmYaH38WruoFVvTx43M2rhMz1TKQODKRfrim6v4IEm1eSe76AC0/4fumZkcc3dVDV6BtItAtS58yeGb8UTRYdUHpTXvCqp5LsHUNow4yOxmzXeTFHHAZ3kv95IqlujanO7d+XnWLTTe8j0wcq+h559tK74UCoGgiWNKH84D7ePUuTzybY0Gr2LZYLbWIZBBIzsQQbZfjG3bTYIS8ePdUVQJGuoTl4R377zm/qBcKhMJlkrp/sCCj40xun5w/YRJ1NPoHMBoM9SCWGgUny51FIJI9TP4tRMBl3LhqwQPqYTDQz1qGF4oN74+EazQIskye33PPCay02uu8uVUg2OJA=="
          }
        ]
      }
    ]
  }
}
{
  "id": "00000000000000000000000",
  "at": 1,
  "tmax": 3000,
  "cur": [
    "USD"
  ],
  "app": {
    "name": "Test app",
    "bundle": "test.bundle",
    "cat": [
      "IAB9-30"
    ],
    "publisher": {
      "name": "Demo studio games",
      "domain": "test.domain"
    }
  },
  "device": {
    "ifa": "52fc72ad-dfa3-4ccb-a614-d60c3a9ec905",
    "ip": "000.000.000.000",
    "language": "en",
    "connectiontype": 6,
    "h": 1650,
    "w": 720,
    "geo": {
      "lat": 1.0,
      "lon": 1.0,
      "city": "Demo city"
    },
    "osv": "12.0.0",
    "os": "android",
    "ua": "demo user agent",
  },
  "imp": [
    {
      "id": "1",
      "instl": 0,
      "tagid": "demo-appopenad-yandex",
      "rwdd": 0,
      "ext": {
        "ad_type": "appopenad"
      }
    }
  ],
  "user": {
    "data": [
      {
        "segment": [
          {
            "signal": "AAAAAZCN7oq0h2hscaYv9Toq9PQ5a/rlD2WTApTYPSXW0vYlQDYoLruywTekZYfFo6XhydKev15guctnw3WsQhhZ5bX19b59Ro00fVQqJ5k8uKbITKkDS/c/VDymvomUxg/B9yAfVm4BUDkzknfplXBlKXOwPCTbN7PXZ307OFEjvUhexcTkue4bK6sD/mGvOFZv6ZrT12zsJyfDVFdLJxbdPzsQM0Wg1/jgyDF+oO0zRLOCwbX2UNPW7DRJtsKvArZhqrY9tUTaSFaWFpimGKMkC6PXV9Q9BH5uw5qIptis8PCwrT5T/z9cKdQ+bb0DiQklyn9UZuldGGyJBYdzbEyaQ3hKDyjQqZMAM4EX19hrM/T0/4v8Xt63mgPVLNjQECQPpf9lErm0YQvlMsmF3iy5LbdNO3fUeFj8JK3P0QYpsylMBMm2JKnRW0pJGXuJpz8NjHjVvz/wFcj+KrYcsEYgq+rysEh/e1jTTMLntAnOyaCA/Hr53UKq1nzTgh3ovDksMm6V5RUPJzTrWSey1zPdqujrh8mKJNq1bi0Eq45waVkBJ011JFcQo0Hn9Gei6rOvvr8H98rC4PTufWsgmCxjxNeNTfeQQTMZGvWAmq02gsCSfp8reAzSWdRWEwJFxtgSVa45G01Q/aQuH4FRI5B/FOoIqqIP/J/lTo74PtSpuSU/WU0xXZaxDUdDkc26yEpv0KDU/7uQH4Ffjj8L3T/S93SKAuQVxhHqRGBr7xS2jHIsAXwcllV+L1HiUcgM4nBbXTUg6r0UB6U817hbRd+u5/9S6wXX6SqrUWBG/ACbSKpi5urQz1ZmKAUGzj098rKXonrrRGEMGOFnMA3mSAqKNOUfx+BVs7Je75IitJzhiyETzRjKodFRWWeavF69wxs/8roFqoUySSbipX9maEzKy3Uaevryx4k+QramYCNDNjjzimMyjlWnwI5bdcHuPP1iaM5X/gAfSwEQdWVkcU1VVhNJ6xV35wUmoqOQbVnvHSQIZPhaAT3ooZnK/UrIZ3EW3uVODfl/dnYmE5Pe+KoUg/qxoLpfPhxqiUJpQHkI697FT82JeG85hFmuldqbInKXVvoCWSvXvQIIBGNMtfHZFCtpiCFgGxLhQRVkSKyprYc/uCbmYaH38WruoFVvTx43M2rhMz1TKQODKRfrim6v4IEm1eSe76AC0/4fumZkcc3dVDV6BtItAtS58yeGb8UTRYdUHpTXvCqp5LsHUNow4yOxmzXeTFHHAZ3kv95IqlujanO7d+XnWLTTe8j0wcq+h559tK74UCoGgiWNKH84D7ePUuTzybY0Gr2LZYLbWIZBBIzsQQbZfjG3bTYIS8ePdUVQJGuoTl4R377zm/qBcKhMJlkrp/sCCj40xun5w/YRJ1NPoHMBoM9SCWGgUny51FIJI9TP4tRMBl3LhqwQPqYTDQz1qGF4oN74+EazQIskye33PPCay02uu8uVUg2OJA=="
          }
        ]
      }
    ]
  }
}

테스트 입찰가 응답

테스트 응답을 받으려면, 1 값과 함께 oRTB 요청에서 test 필드를 지정하세요.

입찰가 응답 구조

Bid Response객체

속성

유형

설명

id

문자열

응답인 입찰가 요청의 ID

cur

문자열

ISO-4217 알파 코드를 사용한 입찰가 통화

seatbid

seatbid 객체 배열

1개의 Seatbid 객체 배열

Seatbid객체

속성

유형

설명

bid

bid 객체 배열

1개의 Bid 객체 배열

Bid객체

속성

유형

설명

id

문자열

로그/추적을 돕기 위한 입찰자 생성 입찰가 ID

impid

문자열

관련 입찰가 요청의 Imp 객체 ID

price

실수

입찰 가격은 CPM으로 표시되지만 실제 거래는 단위 노출에만 해당

ext.signaldata

문자열

선택된 광고에 대한 정보. 클라이언트 요청 시 전송되어야 함

nurl

문자열

입찰에 성공할 경우 교환소에서 호출하는 성공 알림 URL(전달, 조회 또는 청구 가능한 광고를 반드시 의미하지는 않음), 광고 마크업을 제공하는 선택적 수단

burl

문자열

교환소별 비즈니스 정책에 따라 성공한 입찰이 청구 가능해질 때 교환소에서 호출하는 청구 알림 URL

lurl

문자열

입찰에 실패한 것으로 알려졌을 때 교환소에서 호출하는 실패 알림 URL

지원되는 매크로

매크로

위치

설명

AUCTION_PRICE

nurl, burl, lurl

입찰가와 동일한 통화 및 단위를 사용하는 청산 가격

AUCTION_LOSS

lurl

손실 사유 코드

AUCTION_MIN_TO_WIN

lurl, nurl

입찰가와 동일한 통화 및 단위를 사용하는 경매에서 성공하기 위한 최소 입찰가

입찰가 응답 예시

{
    "cur": "USD",
    "seatbid": [{
        "bid": [{
            "price": 8.2869000000,
            "id": "7149643471343346645",
            "ext": {
                "signaldata": "{\"cache_id\":\"openbidding_7149643471343346645\"}"
            },
            "impid": "1",
            "lurl": "https://yandex.ru/an/ssp_notifications/1Mldfsfadffasdfasdv618PGIAPrvDZl02YPUA0NcrLu74LA2u0yDCnWP52P1EXeMC2mu8WLah6GChEC6ilOoz7TKCHy7ygumWW-uoCiWmCFnbdCN4m32N2IIobEaNa5pBP0GappBz1uAdJ8dVLh2-OXBWQoYfkfhCm72mSCPfyKki37-PM86AMfcPWMGlc9pA339YBdC4o5fc9WQ51WO11eQhOD6xOF8diuCJFzWnArWQ3YTiOFaF0umxaDW7aDWtMS3g6JxOFsJHZEa_z5NZWVrR5f0VVh7m1kdwwfeQ6vXRcEWQ6JMnIkOa9kcbbURbLIOM51H3MCdvEVb5nITP-LlOmEPyPGKPku1jzwQ7RxfUVFgpdd4b6ypSHsoyKQvcLcMEnNaMOQvXvY_PO7R_XBC0WRgD-m00?ssp-notification-type=2&ssp-request-id=acbce306085481e0a42156b00d8a19523c2813a9&ssp-auction-loss=${AUCTION_LOSS}&ssp-auction-min-bid-to-win=${AUCTION_MIN_TO_WIN}&ssp-cur-price=${AUCTION_PRICE}",
            "nurl": "https://yandex.ru/an/ssp_notifications/1fsdafasdDEYKsGv618PGIAPrvDZl02YPUA0NcrLu74LA2u0yDCnWP52P1EXeMC2mu8WLah6GChEC6ilOoz7TKCHy7ygumWW-uoCiWmCFnbdCN4m32N2IIobEaNa5pBP0GappBz1uAdJ8dVLh2-OXBWQoYfkfhCm72mSCPfyKki37-PM86AMfcPWMGlc9pA339YBdC4o5fc9WQ51WO11eQhOD6xOF8diuCJFzWnArWQ3YTiOFaF0umxaDW7aDWtMS3g6JxOFsJHZEa_z5NZWVrR5f0VVh7m1kdwwfeQ6vXRcEWQ6JMnIkOa9kcbbURbLIOM51H3MCdvEVb5nITP-LlOmEPyPGKPku1jzwQ7RxfUVFgpdd4b6ypSHsoyKQvcLcMEnNaMOQvXvY_PO7R_XBC0WRgD-m00?ssp-notification-type=1&ssp-request-id=acbce306085481e0a42156b00d8a19523c2813a9&ssp-cur-price=${AUCTION_PRICE}&ssp-auction-min-bid-to-win=${AUCTION_MIN_TO_WIN}",
            "burl": "https://yandex.ru/an/ssp_notifications/1Ml0nI5N0QS10000000dsfasdfasd618PGIAPrvDZl02YPUA0NcrLu74LA2u0yDCnWP52P1EXeMC2mu8WLah6GChEC6ilOoz7TKCHy7ygumWW-uoCiWmCFnbdCN4m32N2IIobEaNa5pBP0GappBz1uAdJ8dVLh2-OXBWQoYfkfhCm72mSCPfyKki37-PM86AMfcPWMGlc9pA339YBdC4o5fc9WQ51WO11eQhOD6xOF8diuCJFzWnArWQ3YTiOFaF0umxaDW7aDWtMS3g6JxOFsJHZEa_z5NZWVrR5f0VVh7m1kdwwfeQ6vXRcEWQ6JMnIkOa9kcbbURbLIOM51H3MCdvEVb5nITP-LlOmEPyPGKPku1jzwQ7RxfUVFgpdd4b6ypSHsoyKQvcLcMEnNaMOQvXvY_PO7R_XBC0WRgD-m00?ssp-notification-type=3&ssp-request-id=acbce306085481e0a42156b00d8a19523c2813a9&ssp-cur-price=${AUCTION_PRICE}"
        }]
    }],
    "id": "acbce306085481e0a42156b00d8a19523c2813a9"
}

iOS 클라이언트 설정

iOS SDK 통합 가이드를 참조하세요.

개인정보 보호 설정

MobileAds.setUserConsent(userConsent)
MobileAds.setLocationTrackingEnabled(locationTrackingEnabled)
[YMAMobileAds setUserConsent: userConsent];
[YMAMobileAds setLocationTrackingEnabled: locationTrackingEnabled];

iOS 클라이언트에서 입찰자 토큰 생성

클라이언트 측에서는 경매 요청에 필요한 매개변수를 수집하여 경매 서버로 전송해야 합니다. 다음은 입찰자 토큰을 가져오는 코드 예시입니다.

  1. BidderTokenLoader 객체를 생성하고 클래스 필드로 만드세요.

    private let bidderTokenLoader = BidderTokenLoader(mediationNetworkName: "MEDIATION_NETWORK_NAME")
    
    @property (nonatomic, strong) YMABidderTokenLoader *bidderTokenLoader;
    self.bidderTokenLoader = [[YMABidderTokenLoader alloc] initWithMediationNetworkName: @"MEDIATION_NETWORK_NAME"];
    
  2. 요청된 광고의 형식을 전달하여 BidderTokenRequestConfiguration을 생성합니다.

    let requestConfiguration = BidderTokenRequestConfiguration(adType: adType)
    
    YMABidderTokenRequestConfiguration *requestConfiguration = [[YMABidderTokenRequestConfiguration alloc] initWithAdType:adType];
    
  3. 배너를 요청하는 경우 배너 크기를 설정합니다.

    requestConfiguration.bannerAdSize = BannerAdSize.fixedSize(withWidth: width, height: height)
    
    requestConfiguration.bannerAdSize = [YMABannerAdSize fixedSizeWithWidth:width height:height];
    
  4. 어댑터에 대한 정보를 추가합니다.

    requestConfiguration.parameters = [
        "adapter_version": "ADAPTER_VERSION",
        "adapter_network_sdk_version": "MEDIATION_SDK_VERSION"
    ]
    
    requestConfiguration.parameters = @{
        @"adapter_version": @"ADAPTER_VERSION",
        @"adapter_network_sdk_version": @"MEDIATION_SDK_VERSION"
    };
    
  5. 입찰자 토큰을 로드합니다.

    bidderTokenLoader.loadBidderToken(requestConfiguration: requestConfiguration) { bidderToken in
        // 생성된 토큰 획득
    }
    
    [self.bidderTokenLoader loadBidderTokenWithRequestConfiguration:requestConfiguration completionHandler:^(NSString *bidderToken) {
        // 생성된 토큰 획득
    }];
    

iOS 클라이언트에서 입찰가 응답으로부터 광고 로드

Yandex 입찰가가 경매에서 성공하면, 다음 단계는 입찰가 데이터를 사용하여 광고를 로드하는 것입니다.

앱 실행

// 로더 adLoader 생성 = AppOpenAdLoader()
adLoader.delegate = self;

let biddingData = "{\"cache_id\":\"openbidding_714964347453245346645\"}" // bidResponse의 ext.signaldata 필드
let adUnitId = "Yandex adUnitId" // 중재 콘솔에서 게시자가 설정한 Yandex 광고 단위 ID

// 요청 구성 생성
let requestConfiguration = MutableAdRequestConfiguration(adUnitID: adUnitId)
requestConfiguration.biddingData = biddingData

// 로더에 요청 구성 전달
adLoader.loadAd(with: requestConfiguration)
// 로더 self.adLoader 생성 = [[YMAAppOpenAdLoader alloc] init];
self.adLoader.delegate = self;

NSString *biddingData = @"{\"cache_id\":\"openbidding_714964347453245346645\"}"; // bidResponse의 ext.signaldata 필드
NSString *adUnitId = @"Yandex adUnitId"; // 중재 콘솔에서 게시자가 설정한 Yandex 광고 단위 ID

// 요청 구성 생성
YMAMutableAdRequestConfiguration *requestConfiguration = [[YMAMutableAdRequestConfiguration alloc] initWithAdUnitID:adUnitId];
requestConfiguration.biddingData = biddingData;

// 로더에 요청 구성 전달
[self.adLoader loadAdWith:requestConfiguration];

앱 실행 통합에 대한 자세한 가이드는 여기에 있습니다.

전면 광고

// 로더 adLoader 생성 = InterstitialAdLoader()
adLoader.delegate = self;

let biddingData = "{\"cache_id\":\"openbidding_714964347453245346645\"}" // bidResponse의 ext.signaldata 필드
let adUnitId = "Yandex adUnitId" // 중재 콘솔에서 게시자가 설정한 Yandex 광고 단위 ID

// 요청 구성 생성
let requestConfiguration = MutableAdRequestConfiguration(adUnitID: adUnitId)
requestConfiguration.biddingData = biddingData

// 로더에 요청 구성 전달
adLoader.loadAd(with: requestConfiguration)
// 로더 self.adLoader 생성 = [[YMAInterstitialAdLoader alloc] init];
self.adLoader.delegate = self;

NSString *biddingData = @"{\"cache_id\":\"openbidding_714964347453245346645\"}"; // bidResponse의 ext.signaldata 필드
NSString *adUnitId = @"Yandex adUnitId"; // 중재 콘솔에서 게시자가 설정한 Yandex 광고 단위 ID

// 요청 구성 생성
YMAMutableAdRequestConfiguration *requestConfiguration = [[YMAMutableAdRequestConfiguration alloc] initWithAdUnitID:adUnitId];
requestConfiguration.biddingData = biddingData;

// 로더에 요청 구성 전달
[self.adLoader loadAdWith:requestConfiguration];

전면 광고에 대한 자세한 가이드는 여기에 있습니다.

보상형

// 로더 adLoader 생성 = RewardedAdLoader()
adLoader.delegate = self;

let biddingData = "{\"cache_id\":\"openbidding_714964347453245346645\"}" // bidResponse의 ext.signaldata 필드
let adUnitId = "Yandex adUnitId" // 중재 콘솔에서 게시자가 설정한 Yandex 광고 단위 ID

// 요청 구성 생성
let requestConfiguration = MutableAdRequestConfiguration(adUnitID: adUnitId)
requestConfiguration.biddingData = biddingData

// 로더에 요청 구성 전달
adLoader.loadAd(with: requestConfiguration)
// 로더 self.adLoader 생성 = [[YMARewardedAdLoader alloc] init];
self.adLoader.delegate = self;

NSString *biddingData = @"{\"cache_id\":\"openbidding_714964347453245346645\"}"; // bidResponse의 ext.signaldata 필드
NSString *adUnitId = @"Yandex adUnitId"; // 중재 콘솔에서 게시자가 설정한 Yandex 광고 단위 ID

// 요청 구성 생성
YMAMutableAdRequestConfiguration *requestConfiguration = [[YMAMutableAdRequestConfiguration alloc] initWithAdUnitID:adUnitId];
requestConfiguration.biddingData = biddingData;

// 로더에 요청 구성 전달
[self.adLoader loadAdWith:requestConfiguration];

보상형 통합에 대한 자세한 가이드는 여기에 있습니다.

let biddingData = "{\"cache_id\":\"openbidding_714964347453245346645\"}" // bidResponse의 ext.signaldata 필드
let adUnitId = "Yandex adUnitId" // 중재 콘솔에서 게시자가 설정한 Yandex 광고 단위 ID

// adView adView 생성 = AdView(adUnitID: adUnitId, adSize: adSize)
adView.delegate = self

// 요청 구성 생성
let adRequest = MutableAdRequest()
adRequest.biddingData = biddingData

// 로더에 요청 구성 전달
adView.loadAd(with: adRequest)
NSString *biddingData = @"{\"cache_id\":\"openbidding_714964347453245346645\"}"; // bidResponse의 ext.signaldata 필드
NSString *adUnitId = @"Yandex adUnitId"; // 중재 콘솔에서 게시자가 설정한 Yandex 광고 단위 ID

// adView self.adView 생성 = [[YMAAdView alloc] initWithAdUnitID:adUnitId adSize:adSize];
self.adView.delegate = self

// 요청 구성 생성
YMAMutableAdRequest *adRequest = [[YMAMutableAdRequest alloc] init];
adRequest.biddingData = biddingData;

// 로더에 요청 구성 전달
[self.adView loadAdWithRequest:adRequest];

네이티브

// 로더 adLoader 생성 = NativeAdLoader()
adLoader.delegate = self;

let biddingData = "{\"cache_id\":\"openbidding_714964347453245346645\"}" // bidResponse의 ext.signaldata 필드
let adUnitId = "Yandex adUnitId" // 중재 콘솔에서 게시자가 설정한 Yandex 광고 단위 ID

// 요청 구성 생성
let requestConfiguration = MutableNativeAdRequestConfiguration(adUnitID: adUnitId)
requestConfiguration.biddingData = biddingData

// 로더에 요청 구성 전달
adLoader.loadAd(with: requestConfiguration)
// 로더 self.adLoader 생성 = [[YMANativeAdLoader alloc] init];
self.adLoader.delegate = self;

NSString *biddingData = @"{\"cache_id\":\"openbidding_714964347453245346645\"}"; // bidResponse의 ext.signaldata 필드
NSString *adUnitId = @"Yandex adUnitId"; // 중재 콘솔에서 게시자가 설정한 Yandex 광고 단위 ID

// 요청 구성 생성
YMAMutableNativeAdRequestConfiguration *requestConfiguration =
        [[YMAMutableNativeAdRequestConfiguration alloc] initWithAdUnitID:adUnitId];
requestConfiguration.biddingData = biddingData;

// 로더에 요청 구성 전달
[self.adLoader loadAdWithRequestConfiguration:requestConfiguration];

네이티브 형식에는 필수 및 선택적 자산이 모두 포함됩니다. 바인딩을 위한 사용자 정의 자산을 제공하는 방법은 광고 SDK의 API에 크게 좌우됩니다.

자세한 네이티브 광고 문서는 여기에 있습니다.

예시

어댑터 예시는 여기에 있습니다.

Previous
Next