공개 입찰 네트워크 통합
ORTB 요청/응답
관리자가 제공하는 서버 간 통합을 위한 Yandex 엔드포인트.
Yandex는 OpenRTB API Specification 2.5를 지원합니다.
입찰가 요청 구조
Bid Request
객체
속성 |
유형 |
필수 |
설명 |
|
문자열 |
예 |
거래소에서 제공하는 입찰가 요청의 고유 ID |
|
|
예 |
제공된 노출을 나타내는 |
|
|
예 |
게시자의 앱에 대한 |
|
|
예 |
노출이 전달될 사용자의 장치에 대한 |
|
|
예 |
장치의 인간 사용자에 대한 |
|
정수 |
예 |
타임아웃을 피하기 위해 입찰가를 받는 데 거래소에서 허용하는 인터넷 지연 시간을 포함한 최대 시간(밀리초) |
|
문자열 배열 |
예 |
|
|
정수 |
아니요 |
경매가 청구되지 않는 테스트 모드의 표시기, 여기서 |
|
정수 |
아니요 |
경매 유형, 여기서 |
|
문자열 배열 |
아니요 |
IAB 콘텐츠 카테고리를 사용하여 차단된 광고주 카테고리 |
|
|
아니요 |
이 요청에 적용되는 산업, 법률 또는 정부 규정을 지정하는 |
App
객체
속성 |
유형 |
필수 |
설명 |
|
문자열 |
예 |
앱에 대해 고유하고 거래소와 독립적인 플랫폼별 애플리케이션 식별자 |
|
문자열 |
아니요 |
거래소별 앱 ID |
|
문자열 |
아니요 |
앱 이름 |
|
문자열 배열 |
아니요 |
앱의 IAB 콘텐츠 카테고리 배열 |
|
문자열 |
아니요 |
애플리케이션 버전 |
|
|
아니요 |
앱 게시자에 대한 세부 정보 |
|
문자열 |
아니요 |
쉼표로 구분된 앱에 대한 키워드의 목록 |
Publisher
객체
속성 |
유형 |
필수 |
설명 |
|
문자열 |
아니요 |
거래소별 게시자 ID |
|
문자열 |
아니요 |
게시자 이름 |
|
문자열 배열 |
아니요 |
게시자를 설명하는 IAB 콘텐츠 카테고리 배열 |
|
문자열 |
아니요 |
게시자의 최상위 도메인 |
Device
객체
속성 |
유형 |
필수 |
설명 |
|
문자열 |
예 |
브라우저 사용자 에이전트 문자열 |
|
문자열 |
예 |
장치에 가장 가까운 IPv4 주소 |
|
|
아니요 |
사용자의 현재 위치로 가정되는 장치의 위치는 Geo 객체에 의해 정의됨(Geo 객체 참조) |
|
정수 |
아니요 |
표준 |
|
정수 |
아니요 |
상업적으로 승인된 |
|
문자열 |
아니요 |
IPv6로 장치에 가장 가까운 IP 주소 |
|
문자열 |
아니요 |
장치 운영 체제 |
|
문자열 |
아니요 |
장치 운영 체제 버전 |
|
정수 |
아니요 |
화면의 물리적 높이(픽셀) |
|
정수 |
아니요 |
화면의 물리적 너비(픽셀) |
|
문자열 |
아니요 |
|
|
정수 |
아니요 |
네트워크 연결 유형 |
|
문자열 |
아니요 |
광고주 사용이 승인된 ID |
Geo
객체
속성 |
유형 |
필수 |
설명 |
|
실수 |
아니요 |
위도 -90.0에서 +90.0까지, 음수는 남쪽 |
|
실수 |
아니요 |
경도 -180.0에서 +180.0까지, 음수는 서쪽 |
|
문자열 |
아니요 |
|
|
문자열 |
아니요 |
|
|
문자열 |
아니요 |
UN/LOCODE(유엔 유럽 경제 위원회의 지리적 코드 체계)를 사용하는 도시 |
Imp
객체
속성 |
유형 |
필수 |
설명 |
|
문자열 |
예 |
입찰가 요청 컨텍스트에서 이 노출에 대한 고유 식별자 |
|
문자열 |
예 |
Yandex Ads 광고 단위 ID |
|
문자열 |
예 |
광고의 유형. 값: |
|
|
아니요 |
|
|
|
아니요 |
|
|
|
아니요 |
|
|
정수 |
아니요 |
|
|
정수 |
아니요 |
사용자가 광고를 시청하여 보상을 받는지 여부를 나타내며, 여기서 |
Banner
객체
속성 |
유형 |
필수 |
설명 |
|
정수 |
아니요 |
밀도 독립 화소(DIPS)의 정확한 너비 |
|
정수 |
아니요 |
밀도 독립 화소(DIPS)의 정확한 높이 |
|
|
아니요 |
허용된 배너 크기를 나타내는 |
Format
객체
속성 |
유형 |
필수 |
설명 |
|
정수 |
아니요 |
밀도 독립 화소(DIPS)의 너비 |
|
정수 |
아니요 |
밀도 독립 화소(DIPS)의 높이 |
|
정수 |
아니요 |
비율로 크기를 표현할 때 상대 너비 |
|
정수 |
아니요 |
비율로 크기를 표현할 때 상대 높이 |
|
정수 |
아니요 |
광고가 표시될 밀도 독립 화소(DIPS)의 최소 너비. 크기는 비율로 표시됨 |
Video
객체
속성 |
유형 |
필수 |
설명 |
|
문자열 배열 |
아니요 |
밀도 독립 화소(DIPS)의 정확한 너비 |
|
정수 |
아니요 |
밀도 독립 화소(DIPS)의 동영상 플레이어 너비 |
|
정수 |
아니요 |
밀도 독립 화소(DIPS)의 동영상 플레이어 높이 |
Native
객체
속성 |
유형 |
필수 |
설명 |
|
문자열 |
아니요 |
네이티브 광고 사양을 준수하는 요청 페이로드 |
|
정수 |
아니요 |
요청이 준수하는 Dynamic Native Ads API의 버전 |
User
객체
속성 |
유형 |
필수 |
설명 |
|
문자열 |
예 |
Yandex Mobile Ads SDK에서 획득한 입찰자 토큰 |
|
문자열 |
아니요 |
사용자에 대한 교환소별 ID |
|
문자열 |
아니요 |
쉼표로 구분된 키워드, 관심사 또는 의도 목록 |
Regs 객체
속성 |
유형 |
필수 |
설명 |
|
정수 |
아니요 |
이 요청이 |
|
정수 |
아니요 |
이 요청이 |
|
정수 |
아니요 |
사용자가 동의를 했는지 여부를 나타내는 플래그, 여기서 |
|
문자열 |
아니요 |
url safe base64 문자열로서의 TCF 동의 문자열 Yandex AC 공급업체 ID는 |
입찰가 요청에 권장되는 헤더
국가 코드 값을 포함한 헤더 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 |
|
문자열 |
|
|
seatbid 객체 배열 |
1개의 Seatbid 객체 배열 |
Seatbid
객체
속성 |
유형 |
설명 |
|
bid 객체 배열 |
1개의 Bid 객체 배열 |
Bid
객체
속성 |
유형 |
설명 |
|
문자열 |
로그/추적을 돕기 위한 입찰자 생성 입찰가 ID |
|
문자열 |
관련 입찰가 요청의 |
|
실수 |
입찰 가격은 CPM으로 표시되지만 실제 거래는 단위 노출에만 해당 |
|
문자열 |
선택된 광고에 대한 정보. 클라이언트 요청 시 전송되어야 함 |
|
문자열 |
입찰에 성공할 경우 교환소에서 호출하는 성공 알림 URL(전달, 조회 또는 청구 가능한 광고를 반드시 의미하지는 않음), 광고 마크업을 제공하는 선택적 수단 |
|
문자열 |
교환소별 비즈니스 정책에 따라 성공한 입찰이 청구 가능해질 때 교환소에서 호출하는 청구 알림 URL |
|
문자열 |
입찰에 실패한 것으로 알려졌을 때 교환소에서 호출하는 실패 알림 URL |
지원되는 매크로
매크로 |
위치 |
설명 |
|
nurl, burl, lurl |
입찰가와 동일한 통화 및 단위를 사용하는 청산 가격 |
|
lurl |
손실 사유 코드 |
|
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 클라이언트에서 입찰자 토큰 생성
클라이언트 측에서는 경매 요청에 필요한 매개변수를 수집하여 경매 서버로 전송해야 합니다. 다음은 입찰자 토큰을 가져오는 코드 예시입니다.
-
BidderTokenLoader
객체를 생성하고 클래스 필드로 만드세요.SwiftObjective-cprivate let bidderTokenLoader = BidderTokenLoader(mediationNetworkName: "MEDIATION_NETWORK_NAME")
@property (nonatomic, strong) YMABidderTokenLoader *bidderTokenLoader; self.bidderTokenLoader = [[YMABidderTokenLoader alloc] initWithMediationNetworkName: @"MEDIATION_NETWORK_NAME"];
-
요청된 광고의 형식을 전달하여
BidderTokenRequestConfiguration
을 생성합니다.SwiftObjective-clet requestConfiguration = BidderTokenRequestConfiguration(adType: adType)
YMABidderTokenRequestConfiguration *requestConfiguration = [[YMABidderTokenRequestConfiguration alloc] initWithAdType:adType];
-
배너를 요청하는 경우 배너 크기를 설정합니다.
SwiftObjective-crequestConfiguration.bannerAdSize = BannerAdSize.fixedSize(withWidth: width, height: height)
requestConfiguration.bannerAdSize = [YMABannerAdSize fixedSizeWithWidth:width height:height];
-
어댑터에 대한 정보를 추가합니다.
SwiftObjective-crequestConfiguration.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" };
-
입찰자 토큰을 로드합니다.
SwiftObjective-cbidderTokenLoader.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에 크게 좌우됩니다.
자세한 네이티브 광고 문서는 여기에 있습니다.
예시
어댑터 예시는 여기에 있습니다.