단가 응답
수요 파트너가 경매 및 광고 게재 요구 사항을 충족하는 유효한 응답을 구조, 구조체 지원합니다.
읽는 시간 22분최근 업데이트: 7시간 전
Unity 단가 리스폰스 데이터에 JSON 포맷을 지원합니다. 표준 JSON 표현의 MIME 유형은 이며, 헤더 필드에 다음과 같이 지정됩니다.
application/jsonHTTPcontentType: application/json
애플리케이션이 단가 요청을 전용 엔드포인트로 수신한 후에는 단가 응답을 반환하거나 최대 200밀리초 이내에 단가가 없는 단가를 표시해야 합니다. Unity는 요청에서 수락 인코딩 GZIP 압축을 전송하며 권장되는 베스트 프랙티스는 응답 압축입니다. 자세한 내용은 OpenRTB 사양의 섹션 2.4를 참조하십시오.
응답 객체와 해당 속성은 다음 섹션에 자세히 설명되어 있습니다. 설명 필드 필수 속성을 나타냅니다. 권장되는 베스트 프랙티스는 모든 속성을 포함하는 것입니다.
response 오브젝트
입찰자가 단가 요청에 대한 응답을 설명하는 오브젝트 클래스입니다.
속성 | 유형 | 예제 | 설명 |
|---|---|---|---|
| 문자열 | | 단가 요청과 함께 전달되고 단가 응답과 함께 반환되는 Unity 생성 ID입니다. |
| 문자열 | | ISO 통화 코드를 사용하는 재화 유형입니다. Unity는 미국 달러( |
| 문자열 | | 로깅 및 트래킹을 지원하기 위해 입찰자가 생성한 응답 ID입니다. |
| 오브젝트 배열 | 자세한 내용은 | Unity Exchange는 응답에서 여러 개의 |
seatbid 오브젝트
협력사가 여러 계정을 대신하여 단가할 수 있는 오브젝트 배열이 포함된 오브젝트 클래스입니다.
bid속성 | 유형 | 예제 | 설명 |
|---|---|---|---|
| 오브젝트 배열 | 자세한 내용은 | 하나 이상의 입찰가 여러 입찰을 하는 경우 가장 높은 단가를 포함하여 경매에서 승리할 확률을 극대화합니다. |
| 문자열 | | 구매자 시트 또는 귀하가 대신하여 단가 광고주 또는 에이전시의 ID입니다. |
bid objects
구매자의 단가 대한 정보를 포함하는 오브젝트 클래스.
속성 | 유형 | 예제 | 설명 |
|---|---|---|---|
| 문자열 | | 로깅 및 트래킹 지원하기 위해 입찰자가 생성한 단가 ID입니다. |
| 문자열 | | 이 단가 관련된 노출의 ID입니다. 이 값은 단가 요청에 제공된 노출 ID와 일치합니다. |
| 플로트 | | 1,000회 노출당 비용(CPM) 단가. Unity Exchange는 0 이하의 값이나 암호화된 값을 무시합니다. |
| 문자열 | | 단가가 승리하면 게재될 사전 로드된 광고의 입찰자가 생성한 ID입니다. |
| 문자열 | | 광고가 사용자 렌더링될 때 Unity 핑하는 낙찰 알림 URL입니다. 이 속성 과금 가능한 노출 카운터로도 사용됩니다. |
| 문자열 | | 단가가 청구될 때 Unity Exchange에서 호출하는 청구 알림 URL입니다. 이는 거래별 비즈니스 정책을 기반으로 합니다. 대체 매크로를 포함할 수 있습니다. |
| 문자열 | | 캠페인의 콘텐츠를 나타내는 이미지(광고 품질 및 안전 점검을 위해)에 캐시 버스트를 적용하지 않는 URL입니다. |
| 문자열 | | 광고 품질 확인을 지원하기 위해 입찰자가 생성한 캠페인 ID입니다. |
| 문자열 | | 광고 품질 확인을 지원하기 위해 파트너가 제공하는 머티리얼 ID입니다. |
| 문자열 | | 직접 거래에 대한 고유 식별자(해당하는 경우). |
| 문자열 배열 | | 소재 적용되는 IAB 콘텐츠 카테고리입니다. 지원되는 값의 전체 목록은 OpenRTB API 가이드의 표 5.1를 참조하십시오. |
| 문자열 | 자세한 예제는 단가 응답 예제 섹션을 참조하십시오. | 단가 승리하는 경우 광고 마크업을 전달하는 수단입니다. |
| 문자열 배열 | 정답:
오답:
| 차단 목록 확인을 위한 광고주 도메인. 소재는 회전할 수 없으며 하나의 도메인 허용됩니다. 포맷은 프로토콜이 없는 루트 도메인만이어야 합니다(하위 도메인이 "www"이 아닌 경우 포함할 수 있음 참고). |
| 문자열 | Google 예시:
Apple 예시:
| 플랫폼별 애플리케이션 식별자(Apple 앱 스토어 또는 Google Play 스토어 ID)로, 광고 대상 앱과 고유하며 거래와는 독립성. 이 기능은 광고 품질 사용할 수 있습니다. |
| int | | 소재 너비(기기 독립성 화소(DIPS 기준)입니다. |
| int | | 소재 높이(기기 독립성 화소(DIPS 기준)입니다. |
|
int | |
이 노출에 대해 지원되는 API 프레임워크입니다. |
bid.ext objects
bid속성 | 유형 | 예제 | 설명 |
|---|---|---|---|
| 문자열 | | 해당하는 경우 광고 중인 앱 스토어 ID입니다. 앱 스토어 ID를 찾는 방법에 대한 자세한 내용은 스토어 ID에 있는 Unity Ads 수익화 대시보드 문서를 참조하십시오. |
| 문자열 | | 해당하는 경우 광고 중인 앱의 앱 이름입니다. |
| 문자열 | | 해당하는 경우 광고 중인 앱 스토어 URL입니다. |
| 문자열 배열 |
| Unity 과금 가능한 노출 이벤트 기록할 때 일관되게 추적할 노출 트래커(첫 번째 및 타사)의 배열. 단가 |
| 정수 | | 동영상의 길이(해당하는 경우 초 단위)입니다. |
| 문자열 | | 광고 에셋 소재 유형입니다. 유효한 유형은 다음과 같습니다.
|
| 정수 | | SKOverlay를 표시할지 여부를 나타냅니다.
|
| 정수 | | SKOverlay의 포지션을 나타냅니다.
|
| 정수 | | 사용자 SKOverlay를 해제할 수 있는지 여부를 나타냅니다.
|
| 정수 | | SKOverlay가 표시되기 전에 지연되는 시간(초)을 나타냅니다. 여기서 0은 즉시입니다.
|
| 문자열 | | 자세한 내용은 여러 제품 페이지 버전 설정을 참고하십시오. |
| Integer | | 다양한 버전의 Auto Storekit을 나타냅니다.
|
| 정수 | | 클릭 가능한 동영상 경험 활성화하다, 사용 가능하다 여부를 나타냅니다.
|
단가 응답 예제
플레이어블 리스폰스
{ "id": "7jrUifdKuw3HDIR9dbqDVJ", "seatbid": [{ "bid": [{ "id": "1234567890123456789", "impid": "1", "price": 0.78, "adid": "12345678", "nurl": "https://secure-datacenter.dsp.com/ab?e=wqT_3FL5gUgASotCQAAAQZjkxNjQ.\\u0026referrer=play.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.any.game\\u0026pp=${AUCTION_PRICE}\\u0026label=nurl", "burl": "https://secure-datacenter.dsp.com/ab?e=wqT_3FL5gUgASotCQAAAQZjkxNjQ.\\u0026referrer=play.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.any.game\\u0026pp=${AUCTION_PRICE}\\u0026pplabel=burl", "adm": "<img src=\"https://my.impression.com/custom/pixel?1234%3D\" style=\"display: none;\">\n <a href=\"https:/my.custom.click/event?&partner=myDSP\"><div style=\"위치: 고정; 상단:0; 왼쪽:0; 너비: 100vw, 높이: 100vh; 배경 위치: 중앙; 배경 이미지: url('https://ex_assets.com/ad_assets/files/000/897/403/original/.jpg?c=1595511733'); 배경 크기: contain;\"> </Important>ript type=\"application/JavaScript\"> bmTrackViewableChange= 함수(e){mraid.addEventListener(\"viewableChange\", 함수(){bSendFill(),bmSubscribeClickE.log(\"empty viewableChange.....event\")},e&bmSendImpression()},bmSubscribeViewableEvent= 함수(){"viewableChange\", 함수(){bmSendFill\", 함수(){bmSendFill.log}, 함수(){bmSendFill.log},\n</script>", "adomain": ["viaplay.fi"], "bundle": "com.unityexample.game", "iurl": "https://secure-datacenter.dsp.com/cr?id=12345678", "cid": "1234", "crid": "12345678", "cat": ["IAB3-12", "IAB3-8", "IAB21-2", "IAB10-9", "IAB3", "NEX3-101", "IAB3-11", "IAB3-10", "NEX3-102", "IAB3-5", "IAB3-6"], "attr": [], "h": 320, "w": 480, "appcategory": ["게임"], "appsubcategory": ["어드벤처", "행동"], "ext": { "appname": "예제 게임", "storeurl": "https://play.google.com/store/apps/details?id=com.unityexample.game", "crtype": "PLAYABLE" } }], "seat": "1234" }], "bidid": "CHYr9b0ODI8OGLpedtfCpuCH", "cur": "USD",}
VAST 리스폰스
{ "id": "7jrUifdKuw3HDIR9dbqDVJ", "bidid": "CHYr9b0ODI8OGLpedtfCpuCH", "cur": "USD", "seatbid": [{ "seat": "예제 협력사", "bid": [{ "impid": "1", "adomain": ["examplegame.com"], "iurl": "https://secure-datacenter.dsp.com/cr?id=12345678", "crid": "12345678", "cid": "1234", "adid": "87654321", "cat": ["IAB9-25", "IAB9-25"], "bundle": "com.unityexample.game", "attr": [], "h": 568, "w": 320, "id": "unrtb-com.unityexample.game-320x568-1ADJE5D8721B3-453S-9DYA-B0AVD69AA1A1", "price": 15.04, "nurl": "https://secure-datacenter.dsp.com/ab?e=wqT_3FL5gUgASotCQAAAQZjkxNjQ.\\u0026referrer=play.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.any.game\\u0026pp=${AUCTION_PRICE}\\u0026label=nurl", "burl": "https://secure-datacenter.dsp.com/ab?e=wqT_3FL5gUgASotCQAAAQZjkxNjQ.\\u0026referrer=play.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.any.game\\u0026pp=${AUCTION_PRICE}\\u0026pplabel=burl", "adm": "yourdsp<![CDATA[]]><![CDATA[]]>00:00:15<![CDATA[]]><![CDATA[]]><![CDATA[]]><![CDATA[]]><![CDATA[]]><![CDATA[]]><![CDATA[]]><![CDATA[]]><![CDATA[,Set&creativeID=329c8ef3]]><![CDATA[]]><![CDATA[]]><![CDATA[]]><![CDATA[,Set&CreativeID=329c8ef3]]>", <?xml version=\"1.0\"?><VAST version=\"2.0\"><Ad id=\"179e7ee9\"><InLine><AdSystem></AdSystem><Error>https://ads.yourdsp.com/ads/vast.php?appkey=unrtb-com.catchall.game-320x568&adid=179e7ee9&appid=1139609950&aid=1ABAE8D8-21B3-453D-9DEA-B9ABD69AA1A1&partnerkey=unrtb&campaignID=123184311&adgroupID=180968&ra=&code=err</Error><Impression>https://ads.yourdsp.com/ads/vast.php?appkey=unrtb-com.catchall.game-320x568&adid=179e7ee9&appid=1139609950&aid=1ABAE8D8-21B3-453D-9DEA-B9ABD69AA1A1&partnerkey=unrtb&campaignID=1234567890&adgroupID=180968&ra=&code=impression</Impression><Creatives><Creative AdID=\"179e7ee9\"><Linear><Duration></Duration><TrackingEvents><Tracking event=\"skip\">https://ads.yourdsp.com/ads/vast.php?appkey=unrtb-com.catchall.game-320x568&adid=179e7ee9&appid=1139609950&aid=1ABAE8D8-21B3-453D-9DEA-B9ABD69AA1A1&partnerkey=unrtb&campaignID=123456789&adgroupID=180968&ra=&code=skip&s=</Tracking><Tracking event=\"engagedView\">https://ads.yourdsp.com/ads/vast.php?appkey=unrtb-com.catchall.game-320x568&adid=179e7ee9&appid=1139609950&aid=1ABAE8D8-21B3-453D-9DEA-B9ABD69AA1A1&partnerkey=unrtb&campaignID=123456789&adgroupID=180968&ra=&code=engagedView&s=</Tracking><Tracking event=\"creativeView\">https://ads.yourdsp.com/ads/vast.php?appkey=unrtb-com.catchall.game-320x568&adid=179e7ee9&appid=1139609950&aid=1ABAE8D8-21B3-453D-9DEA-B9ABD69AA1A1&partnerkey=unrtb&campaignID=123184311&adgroupID=180968&ra=&code=creativeView&s=</Tracking><Tracking event=\"start\">https://ads.yourdsp.com/ads/vast.php?appkey=unrtb-com.catchall.game-320x568&adid=179e7ee9&appid=1139609950&aid=1ABAE8D8-21B3-453D-9DEA-B9ABD69AA1A1&partnerkey=unrtb&campaignID=123184311&adgroupID=180968&ra=&code=start&s=</Tracking><Tracking event=\"firstQuartile\">https://ads.yourdsp.com/ads/vast.php?appkey=unrtb-com.catchall.game-320x568&adid=179e7ee9&appid=1139609950&aid=1ABAE8D8-21B3-453D-9DEA-B9ABD69AA1A1&partnerkey=unrtb&campaignID=123184311&adgroupID=180968&ra=&code=firstQuartile&s=</Tracking><Tracking event=\"midpoint\">https://ads.yourdsp.com/ads/vast.php?appkey=unrtb-com.catchall.game-320x568&adid=179e7ee9&appid=1139609950&aid=1ABAE8D8-21B3-453D-9DEA-B9ABD69AA1A1&partnerkey=unrtb&campaignID=123184311&adgroupID=180968&ra=&code=midpoint&s=</Tracking><Tracking event=\"thirdQuartile\">https://ads.yourdsp.com/ads/vast.php?appkey=unrtb-com.catchall.game-320x568&adid=179e7ee9&appid=1139609950&aid=1ABAE8D8-21B3-453D-9DEA-B9ABD69AA1A1&partnerkey=unrtb&campaignID=123184311&adgroupID=180968&ra=&code=thirdQuartile&s=</Tracking><Tracking event=\"complete\">https://ads.yourdsp.com/ads/vast.php?appkey=unrtb-com.catchall.game-320x568&adid=179e7ee9&appid=1139609950&aid=1ABAE8D8-21B3-453D-9DEA-B9ABD69AA1A1&partnerkey=unrtb&campaignID=123184311&adgroupID=180968&ra=&code=complete&s=</Tracking></TrackingEvents><VideoClicks><ClickThrough>https://c.yourdsp.com/ads/c.php?a=unrtb&b=unrtb-com.catchall.game-320x568&c=179e7ee9&d=1ABAE8D8-21B3-453D-9DEA-B9ABD69AA1A1&ct=0&nb=0&its=1499375139&gf=https%3A%2F%2Fcdngs.yourdsp.com%2F1028%2F768x1024_Unsub_NewGame_Video_All_ZHCN_MZCA02xbqA4.ipad_20170629_09_44_11_.mp4&f=&ra=&aid=1ABAE8D8-21B3-453D-9DEA-B9ABD69AA1A1&campaignID=123184311&adgroupID=180968&adgroup=NewGame_iOS_NL&defcpa=0&defcpc=0&appid=1186994231&creativeID=329c8ef3&adType=5&countrycode=NL&ccimpid=X96142d9408c8a40179e7ee907061405&accountid=1028&siteaccountid=4917655231945&pubappid=&sg=&it=&inf=0&price=0.04800847457627119&cg=New</ClickThrough><ClickTracking>https://ads.yourdsp.com/ads/vast.php?appkey=unrtb-com.catchall.game-320x568&adid=179e7ee9&appid=1139609950&aid=1ABAE8D8-21B3-453D-9DEA-B9ABD69AA1A1&partnerkey=unrtb&campaignID=123184311&adgroupID=180968&ra=&code=click</ClickTracking></VideoClicks><MediaFiles><MediaFile delivery=\"progressive\" type=\"video/mp4\" bitrate=\"500\" width=\"768\" height=\"1024\" scalable=\"true\" maintainAspectRatio=\"true\">https://cdngs.yourdsp.com/1028/768x1024_Unsub_NewGame_Video_All_ZHCN_MZCA02xbqA4.ipad_20170629_09_44_11_.mp4</MediaFile></MediaFiles></Linear></Creative><Creative AdID=\"179e7ee9\"><CompanionAds><Companion width=\"768\" height=\"1024\"><StaticResource creativeType=\"image/jpeg\"><![CDATA[]]></StaticResource><TrackingEvents><Tracking event=\"creativeView\">https://ads.yourdsp.com/ads/vast.php?appkey=unrtb-com.catchall.game-320x568&adid=179e7ee9&appid=1139609950&aid=1ABAE8D8-21B3-453D-9DEA-B9ABD69AA1A1&partnerkey=unrtb&campaignID=123184311&adgroupID=180968&ra=&code=engagedView</Tracking></TrackingEvents><CompanionClickThrough>https://c.yourdsp.com/ads/c.php?a=unrtb&b=unrtb-com.catchall.game-320x568&c=179e7ee9&d=1ABAE8D8-21B3-453D-9DEA-B9ABD69AA1A1&ct=0&nb=0&its=1499375139&gf=https%3A%2F%2Fcdngs.yourdsp.com%2F1028%2F768x1024_Unsub_NewGame_Video_All_ZHCN_MZCA02xbqA4.ipad_20170629_09_44_11_.mp4&f=&ra=&aid=1ABAE8D8-21B3-453D-9DEA-B9ABD69AA1A1&campaignID=123184311&adgroupID=180968&adgroup=NewGame_iOS_NL&defcpa=0&defcpc=0&appid=1186994231&creativeID=329c8ef3&adType=5&countrycode=NL&ccimpid=X96142d9408c8a40179e7ee907061405&accountid=1028&siteaccountid=4917655231945&pubappid=&sg=&it=&inf=0&price=0.04800847457627119&cg=New</CompanionClickThrough></Companion></CompanionAds></Creative></Creatives></InLine></Ad></VAST> "ext": { "advertisername": "One Cool Advertiser", "appid": "1234567890123", "appname": "예제 게임", "storeurl": "https://itunes.apple.com/us/app/trash-dash/id1198634425?mt=8", "length": 15, "crtype": "VAST" "clickablevideo": 1, "deeplinking": 1, "cta_text": "이제 구매", "skadn": { "ext": { "ask": 2 }, "productpageid": "00d00d1e-ff93-67fc-653f-8ggd1eeghcdf", "skoverlay": { "show": 1, "position": 0, "dismissable": 0, "video_delay": 5, } } } }] }] }
단가 응답 없음(NBR)
Unity Exchange는 단가 없는 경우 여러 응답 유형을 지원합니다. 이러한 응답 중 하나를 사용하여 노출에 단가 않겠다고 명시적으로 알리는 것이 중요. 그렇지 않으면 응답이 시간 초과 오류로 해석될 수 있습니다.
답변 | 예제 |
|---|---|
| 콘텐츠 없음 | |
| 빈 JSON 객체 | |
| 정확하게 구성된 단가 응답(사유 코드 포함 또는 없음) | |
| 기타 |
|
자세한 내용은 OpenRTB 사양의 섹션 7.1을 참조하십시오.
NBR 사유 코드
값 | 설명 |
|---|---|
| 알 수 없는 오류 |
| 기술적 오류 |
| 잘못된 요청 |
| 알려진 웹 스파이더 |
|
사람이 아닌 트래픽 | 의심
| 클라우드, 데이터 센터 또는 프록시 IP |
| 지원되지 않는 기기 |
| 차단된 퍼블리셔 또는 사이트 |
| 비일치된 사용자 |
가격 난독화
nURL${AUCTION_PRICE:BF}방법론
데이터를 난독화하기 위해 Unity 입력 데이터에 PKCS5 패딩바이트 차단 크기의 PKCS7 패딩이 적용된 Blowfish를 ECB 모드로 사용합니다. 그러면 데이터가 base64 URL로 인코딩되어 바이너리 데이터 URL에서 유효합니다. 문제 해결을 위해 요청 시 소스 코드를 사용할 수 있습니다.
base64_URLEncode(blowfish_ecb_encrypt_pkcs5_padding(plaintext))
파라미터 | 예제 값 |
|---|---|
| 키 | |
| plaintext | |
| 암호화된 base64 URL 인코딩 | |
암호화 해제
데이터를 암호화 해제 위해 입력 문자열은 base64 URL로 디코딩됩니다. 그런 다음 PKCS5 패딩 암호화된 데이터에서 제거되고 블러 피쉬 ECB 암호화 되돌아갑니다.
blowfish_ecb_decrypt_pkcs5_padding(base64_URLDecode(encodedtext))