Vungle Open RTB 연동

개요

Vungle exchange는 디맨드 파트너들이  IAB OpenRTB 프로그래매틱 표준을 통해 Vungle 어플리케이션들에 접근하도록 지원합니다.

  • Vungle 은 OpenRTB 2.3.1 표준을 지원합니다
  • 현재 경매 타입은 오직 두번째 가격(second price only) 입니다
  • Vungle의 OpenRTB 스펙은 선택적인 몇개의 필드를 필요로 합니다
  • Vungle의 인벤토리는 엄격히 100% 전면 풀스크린으로 보여질 수 있는, 모바일 비디오 인앱 임프레션만으로 구성합니다

아래는 입찰에 대한 요청과 응답의 전형적인 과정을 설명합니다:

  1. Vungle SDK 가 Vungle Exchange에 광고 요청을 보냅니다
  2. Vungle Exchange 가 DSP에 보낼 OpenRTB 입찰 요청을 수행합니다
  3. Vungle 은 모든 DSP 파트너들의 엔드포인트에 요청할 HTTP POST 를 만듭니다
  4. Vungle 은 모든 유효한 응답들에서 첫번째 가격 경매를 수행합니다
  5. 최종 결정된 입찰의 광고 마크업이 모바일 디바이스에 전달됩니다

경매 규칙들

  • 입창 응답을 위한 경매 타임아웃: 250ms
  • 경매 응답들은 아래서 언급될 마크업을 입증하기 위해 VAST Wrapper들의 푸는 것들을 포함하여 분석 됩니다
  • 입찰 성공 통보(nurl)는 소재가 보여질 때(비디오의 첫 프레임) 기기로 부터 전송됩니다

광고 마크업 규정

  • 길이: ~30초 비디오
  • 최소 비디오 퀄리티: 250 kbps 비트레이트
  • 포맷: 적어도 1개의 .mp4 파일
  • 최대 2개의 VASTAdTagURI Redirects
  • 최대 5MB 크기

입찰 요청

아래 차트는 OpenRTB 2.3.1 스펙의 세부 목록 입니다.  
Vungle은 항상 DSP에 모든 항목을 포함해 전달하려 시도합니다.

Vungle은 오직 Content-Type: application/json 의 OpenRTB 요청/응답을 지원합니다

ObjectParameterDescription
BidRequest id Vungle Unique Bid Request id
BidRequest at integer: 2 - Default second priced auction
BidRequest tmax integer: 250 - Default auction timeout
imp id Vungle Unique Impression id
imp displaymanager string: "Vungle"
imp displaymanagerver string: Vungle SDK Version
imp instl integer: 1 - Default Insterstitials
imp bidfloor float: Vungle Campaign specified floor
imp bidfloorcur string: "USD" - Default
video mimes string: "video/mp4"
video minduration integer: min video duration
video maxduration integer: max video duration
video protocols integer: VAST 1.0/2.0 + Wrapper
video w integer: width of device screen
video h integer: height of device screen
video startdelay integer: 0 - None
video linearity integer: 1 - Linear
video minbitrate integer: 250 - Default
video maxbitrate integer: 2500 - Default
video boxingallowed integer array
video playbackmethod integer array
video delivery integer array
video pos integer: 7 - Default
app id Vungle App Id for Application
app name string: App Store Application Name
app bundle string: Application Package Name
app storeurl string: App Store URL
app cat string array: App IAB Category
app privacypolicy integer: based on app privacy setttings within Vungle
publisher id Vungle Account Id for Publisher
publisher name string: Publisher Account Name
publisher cat string array: Publisher IAB Category
device ua string: Browser User Agent (if available)
device dnt integer: Do Not Track setting from User Device
device lmt integer: Do Not Track setting from User Device
device ip string: IPv4 address from User Device
device devicetype integer: Phone type, typically smartphone or tablet
device model string: Phone model from iOS or Android frameworks
device os string: Device operating system
device osv string: Devier operating system version
device h string: Screen device height
device w string: Screen device width
device language string: Device language setting, 2 letter code
device ifa string: Device Advertiser Id
geo lat float: Device latitude coordinate
geo lon float: Device longitude coordinate
geo type integer: Location data source
geo country string: Two letter country code from IP
geo region string: Two letter region code from IP
user id string: Vungle Exchange user id
user gender string: Publisher supplied gender information
user yob integer: Publisher supplied age information

입찰 응답

광고 마크업 지원 포맷:

  • VAST 1.0/2.0
  • VAST Wrapper 1.0/2.0

BidResponse add 항목은 다음을 포함해야 합니다 : 1.  VAST XML가 인코딩된 완전한 형태의 URL 2. VAST XML을 포함하는 리소스에 대한 URL

입찰을 다루지 않는 방법들 : 1. HTTP 204 응답(Response) 2. 빈 JSON 오브젝트 3. nurl 필드 응답

경매 경고들:

  • Vungle 은 하나의 응답에 여러 입찰을 지원하지 않습니다. 만약 여러 입찰들이 보내지면, 첫번째 입찰만이 유효합니다.
  • Vungle 은 BidResponse nurl 필드를 통한 광고 마크업에서 보내는 것을 지원하지 않습니다.

ObjectParameterRequiredDescription
BidResponse id yes string: Vungle BidRequest id echoed back in the response
BidResponse bidid recommended string: Bidder generated id for tracking
BidResponse cur no string: Vungle default is USD, others will be ignored
BidResponse nbr recommended integer: No bid reason defined by bidder
seatbid seat no string: Bidder defined seat id of the bid
bid id yes string: Bidder genereated id for tracking unique to bid
bid impid yes string: Vungle impressions id echoed back in the response
bid price yes float: Bid price for the impressions in CPM only
bid adid recommended string: Bidder defined id for the ad campaign
bid nurl recommended string: Win notice URL for bid, fired off from device
bid adm yes string: Ad markup VAST XML or URL that refers to VAST XML
bid adomain no string array: Advertiser domain
bid bundle no string: Package name of advertiser application
bid cid no string: Advertiser campaign name/id
bid crid no string: Advertiser creative name/id
bid cat no string array: IAB content category of creative
bid attr no integer array: Creative attributes

입찰 예시

요청 예:

{
  "id": "cdc-7c6d-4029-dcd|1337", // Globally unique ID to track the BidRequest from the beginning of the time.
  "imp": [
    {
      "id": "5376606", // A unique ID used to track a single impression in Vungle
      "video":  {
        "mimes": [ "video/mp4" ],
        "minduration": 5,
        "maxduration": 30,
        "protocols": [ 1,2,4,5 ],
        "w": 1080,
        "h": 1920,
        "startdelay": 0,
        "linearity": 1,
        "minbitrate": 250,
        "maxbitrate": 2500,
        "boxingallowed": 1,
        "playbackmethod": [ 1,2 ],
        "delivery": [ 1,2 ],
        "pos": 7
      },
      "displaymanager": "Vungle", 
      "displaymanagerver": "test-phone/3.3.1", // Vungle SDK version, e.g. Vungle/3.3.1
      "instl": 1, 
      "bidfloor": 15, // Number in CPM as specified in OpenRTB 2.3
      "bidfloorcur": "USD" 
    }
  ],
  "app": {
    "id": "test-pub-app-id", // ID to uniquely identify a publisher application in Vungle.
    "name": "test-pub-app-name", // Name of the publisher app
    "bundle": "com.x.vungle.bundle.id", // Package name
    "storeurl": "https://itunes.apple.com/us/app/id1234567?mt=8",
    "cat": [
      "IAB1" 
    ],
    "privacypolicy": 1, 
    "publisher": {
      "id": "test-pub-app-id", // Vungle App Id
      "name": "test-pub-app-name", // Vungle App Name
      "cat": [
        "IAB1" 
      ]
    }
  },
  "device": { 
    "ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 8_4 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12H141",
    "geo": { 
      "lat": 47.46,
      "lon": -122.16,
      "type": 1, 
      "country": "USA",
      "region": "WA"
    },
    "dnt": 0,
    "lmt": 0,
    "ip": "192.168.1.1",
    "devicetype": 1,
    "model": "iPhone 7,2",
    "os": "iOS",
    "osv": "8.0",
    "w": 1080,
    "h": 1920,
    "js": 1, 
    "language": "en",
    "ifa": "test-ifa"
  },
  "user": {
    "id": "923123", 
    "gender": "F",
    "yob": 1985
  },
  "at": 2, // Second price auction
  "tmax": 250 // Auction timeout
}

응답 예:

{
  "id": "abc-123-456-xyz|1337", // Needs to be same as the bid request ID
  "bidid": "5508", // Bidder defined ID that will likely be used in macro substitution
  "cur": "USD", // Optional
  "seatbid": [
    {
      "seat": "7735", // Bidder defined seat ID
      "bid": [
        {
          "id": "5508", // Bidder bidid
          "impid": "lol-987-654-321", // Vungle Imp Id
          "price": 500, // Price in CPM
          "adid": "618", // Bidders Ad Id
          "nurl": "http://bidder.com/won?price=${AUCTION_PRICE}", // Win URL
          "adm": "http://bidder.com/vast?id=${AUCTION_ID}" // Ad markup: plain HTTP URL or VAST 1.0/2.0.
        }
      ]
    }
  ]
}
또 다른 질문이 있으십니까? 문의 등록

댓글