OpenRTB DSP Integration Guide

Table of contents

General Info

The MGID SSP platform supports protocol OpenRTB 2.5 banner, native 1.1, native 1.2 and video.

When an impression is available for bidding within the MGID network, a bid request is sent to each DSP. All bid requests are only HTTP POST requests that pass the data in a JSON object (we currently only support JSON encoded bid requests). Bid requests will be sent to the DSP via HTTP to a URL specified by the DSP.

Bid Request

The top-level bid request object contains a globally unique bid request or auction ID. This id attribute is required as is at least one impression object.

BidRequest: parameters

Field

Type

Description

id

string (required)

Unique ID of the bid request, provided by the exchange

imp

object array (required)

Array of Imp objects representing the impressions offered. At least 1 Imp object is required

site

object (recommended)

Details about the publisher's website. Only applicable and recommended for websites

app

object (recommended)

Details about the publisher’s app (i.e., non-browser applications). Only applicable and recommended for apps.

device

object (recommended)

Details about the user's device to which the impression will be delivered

user

object (recommended)

Details about the human user of the device; the advertising audience

at

integer

Auction type, where 1 = first price, 2 = second price. Default is 2

tmax

integer

Maximum time in milliseconds Sovrn allows for bids to be received to avoid timeout

bcat

string array

Blocked advertiser categories using the IAB content categories1

badv

string array

Block list of advertisers by their domains

source

object

A Source object that provides data about the inventory source and which entity makes the final decision

ext

object

Placeholder for exchange-specific extensions to OpenRTB

 

BidRequest.source: parameters

Field

Type

Description

fd

Integer

Entity responsible for the final impression sale decision, where 0 = exchange, 1 = upstream source.

ext

object

Placeholder for exchange-specific extensions to OpenRTB.

 

pchain

string;

Payment ID chain string containing embedded syntax described in the TAG Payment ID Protocol v1.0.

 

BidRequest.regs: parameters

Field

Type

Description

coppa

integer

Flag indicating if this request is subject to the COPPA regulations established by the USA FTC, where 0 = no, 1 = yes. Refer to Section 7.5 for more information.

 

BidRequest.regs.ext: parameters

Field

Type

Description

gdpr

integer

0 indicates request is not subject to GDPR. 1 indicates request is subject to GDPR

us_privacy

string

Must follow the US Privacy string format.

 

BidRequest.imp: parameters

At least one impression object is required.

Field

Type

Description

id

string (required)

Unique identifier for this impression within the context of the bid request

metric

object array

An array of Metric objects

banner

object

Required if this impression is offered as a banner ad opportunity

video

object

Required if this impression is offered as a video ad opportunity

native

object

Required if this impression is offered as a native ad opportunity.

pmp

object

Contains any private marketplace deals in effect for this impression

displaymanager

string

Name of ad mediation partner, SDK technology, or player responsible for rendering ad (typically video or mobile)

displaymanagerver

string

Version of ad mediation partner, SDK technology, or player responsible for rendering ad (typically video or mobile)

instl

integer

1 = ad is interstitial or full screen, 0 = not interstitial. Default is 0

tagid

string

Identifier for specific ad placement or ad tag that was used to initiate the auction. This can be useful for debugging or optimization

bidfloor

float

Minimum bid for this impression expressed in CPM

bidfloorcur

string; default “USD”

Currency specified using ISO-4217 alpha codes. This may be different from bid currency returned by bidder if this is allowed by the exchange

secure

integer

Flag to indicate if the impression requires secure HTTPS URL creative assets and markup, where 0 = non-secure, 1 = secure

ext

object

Placeholder for exchange-specific extensions to OpenRTB

 

BidRequest.banner: parameters

Field

Type

Description

format

object array (recommended)

Array of format objects representing the banner sizes permitted. If none are specified, then use of the h and w attributes

w

integer (required)

Exact width in device independent pixels (DIPS); recommended if no format objects are specified.

h

integer (required)

Exact height in device independent pixels (DIPS); recommended if no format objects are specified.

battr

integer array

Blocked creative attributes. If blank assume all types are allowed

pos

integer

Ad position on screen

topframe

integer

Indicates if the banner is in the top frame as opposed to an iframe, where 0 = no, 1 = yes

expdir

integer array

Directions in which the banner may expand

id

string

Unique identifier for this banner object. Useful for tracking multiple banner objects. Combination of banner ID should be unique

api

integer array

List of supported API frameworks for this impression

ext

object

Placeholder for exchange-specific extensions to OpenRTB

 

BidRequest.video: parameters

Field

Type

Description

mimes

string array (required)

Content MIME types supported (e.g. "video/x-ms-wmv", "video/mp4")

minduration

integer (recommended)

Minimum video ad duration in seconds

maxduration

integer (recommended)

Maximum video ad duration in seconds

protocols

integer

Supported video protocols

w

integer (recommended)

Width of the video player in device independent pixels (DIPS)

h

integer (recommended)

Height of the video player in device independent pixels (DIPS)

startdelay

integer

Indicates the start delay in seconds for pre-roll, mid-roll, or post-roll ad placements.

linearity

integer

Indicates if the impression must be linear, nonlinear, etc. Refer to List 5.7

skip

integer

Indicates if the player will allow the video to be skipped, where 0 = no, 1 = yes

maxbitrate

integer

Maximum bit rate in Kbps

battr

integer array

Blocked creative attributes

playbackmethod

integer array

Playback methods that may be in use. If none are specified, any method may be used. Refer to List 5.10. Only one method is typically used in practice

pos

integer

Ad position on the screen. Refer to List 5.4

api

integer array

List of supported API frameworks for this impression. If an API is not explicitly listed, it is assumed not to be supported

ext

object

Placeholder for exchange-specific extensions to OpenRTB

 

BidRequest.native: parameters

Field

Type

Description

request

string (required)

Request payload complying with the Native Ad Specification

ver

string (recommended)

Version of the Dynamic Native Ads API to which request complies; highly recommended for efficient parsing.

context

integer (recommended)

The context in which the ad appears

contextsubtype

integer

A more detailed contex tin which the ad appears

plcmttype

integer

The design/format/layout of the ad unit being offered

plcmtcnt

integer

The number of identical placements in this Layout

assets

array of objects (required)

An array of Asset Objects. Any bid response must comply with the array of elements expressed     in the bid request.

eventtrackers

array of objects

Appears in Native 1.2. Specifies what type        of event tracking  is             supported. MGID support only event:1, type: 1,2

privacy

integer

Set  to 1 when the native ad supports buyer-specific privacy notice. Set to 0 (or field absent) when the native ad doesn’t support custom privacy           links or if support is unknown

api

integer array

List of supported API frameworks for this impression

battr

integer array

Blocked creative attributes

ext

object

Placeholder for exchange-specific extensions to OpenRTB

 

 

BidRequest.format: parameters

Field

Type

Description

w

integer

Width in device independent pixels (DIPS)

h

integer

Height in device independent pixels (DIPS)

 

 

BidRequest.pmp: parameters

Field

Type

Description

private_auction

integer

Indicator of auction eligibility to seats named in the Direct Deals object. 0 = all bids are accepted, 1 = bids are restricted to the deals specified and the terms therof

deals

object array

Array of Deal objects that convey the specific deals applicable to this impression

 

BidRequest.deal: parameters

Field

Type

Description

id

string (required)

Unique identifier for the direct deal

bidfloor

float

Minimum bid for this impression expressed in CPM

bidfloorcur

string

Currency specified using ISO-4217 alpha codes. Default is USD

at

integer

Optional override of the overall auction type of the bid request, where 1 = First Price, 2 = Second Price Plus, 3 = the value passed in the bidfloor is the agreed upon deal price

 

BidRequest.site: parameters

Field

Type

Description

id

string (recommended)

Site ID on the exchange

name

string

Site name

domain

string

Domain of the site

cat

string array

Array of IAB content categories of the site

pagecat

string array

Array of IAB content categories that describe the current page or view of the site

page

string

URL of the page where the impression will be shown

ref

string

Referrer URL that caused navigation to the current page

mobile

integer

Indicates if the site has been programmed to optimize layout when viewed on mobile devices, where 0 = no, 1 = yes

publisher

object

Details about the Publisher of the site

keywords

string

Comma separated list of keywords about the site

 

BidRequest.app: parameters

Field

Type

Description

id

string

Exchange-specific app ID

name

string

App name

bundle

string (required)

Platform-specific application identifier unique to the app. On Android, this should be a bundle or package name. On iOS, it is typically a numeric ID

domain

string

Domain of the app

storeurl

string

App store URL for an installed app

cat

string array

Array of IAB content categories of the app

ver

string

Application version

paid

integer

0 = app is free, 1 = the app is a paid version

publisher

object

Details about the Publisher of the app

 

 

BidRequest.site.publisher / BidRequest.app.publisher: parameters

Field

Type

Description

id

string

Publisher ID on the exchange

name

string

Publisher name (may be aliased at the publisher’s request)

domain

string

Highest level domain of the publisher (e.g., “publisher.com”)

ext

object

Placeholder for exchange-specific extensions to OpenRTB

 

BidRequest.device: parameters

Field

Type

Description

ua

string

Browser user agent string

geo

object

Location of the device assumed to be the user's current location defined by a Geo object

dnt

integer

"Do Not Track" flag as set in the header by the browser, where 0 = tracking is unrestricted, 1 = do not track

ip

string

IPv4 address closest to device

ipv6

string

IP address closest to device as IPv6

devicetype

integer

The general type of device

make

string

Device make (e.g., "Apple")

model

string

Device model (e.g., "iPhone")

os

string

Device operating system (e.g., "iOS")

osv

string

Device operating system version (e.g., "3.1.2")

h

integer

Physical height of the screen in pixels

w

integer

Physical width of the screen in pixels

ifa

string

ID sanctioned for advertiser use in the clear (i.e., not hashed)

js

integer

Support for JavaScript, where 0 = no, 1 = yes

language

string

Browser language using ISO-639-1-alpha-2

carrier

string

Carrier or ISP (e.g., "VERIZON") using exchange curated string names

connectiontype

integer

Network connection type. Refer to List 5.22

 

BidRequest.device.geo: parameters

Field

Type

Description

lat

float

Latitude from -90.0 to +90.0, where negative is south

lon

float

Logitude from -180.0 to +180.0, where negative is west

type

integer

Source of location data (GPS, IP address, user provided)

country

string

Country code using ISO-3166-1-alpha-3

region

string

Region code using ISO-3166-2; 2-letter state code if USA

metro

string

Google metro code; similar to but not exactly Nielsen DMAs. See Appendix A for a link to the codes

city

string

City using United Nations Code for Trade & Transport Locations. See Appendix A for a link to the codes

zip

string

Zip or postal code

 

BidRequest.user: parameters

Field

Type

Description

id

string

Exchange-specific ID for the user

buyeruid

string

Buyer-specific ID for the user as mapped by the exchange for the buyer

 

BidRequest.user.ext: parameters

Field

Type

Description

consent

string

IAB consent string provided when the request is subject to GDPR

 

BidRequest example

Native 1.1

{
  "id": "80ce30c53c16e6ede735f123ef6e32361bfc7b22",
  "imp": [{
    "id": "1",
    "native": {
      "request": "{\"ver\":\"1.1\",\"context\":1,\"contextsubtype\":10,\"plcmttype\":4,\"plcmtcnt\":1,\"assets\":[{\"id\":1,\"required\":1,\"title\":{\"len\":140}},{\"id\":2,\"required\":1,\"img\":{\"type\":3,\"wmin\":128,\"hmin\":128,\"mimes\":[\"image/jpg\"]}},{\"id\":3,\"required\":0,\"data\":{\"type\":2,\"len\":90}}]}",
      "ver": "1.1",
      "api": [3, 4]
    },
    "instl": 0,
    "bidfloor": 0.03,
    "displaymanager": "Prebid.js",
    "displaymanagerver": "0.34.8",
    "secure": 1
  }],
  "app": {
    "name": "App Name",
    "bundle": "com.appname",
    "domain": "http://www.appname.com",
    "storeurl": "https://play.google.com/store/apps/details?id=com.appname",
    "cat": ["IAB3", "IAB3-1"],
    "privpolicy": 1
  },
  "device": {
    "ua": "user_agent_string",
    "ip": "123.123.123.123",
    "geo": {
      "lat": 35.6895,
      "lon": 139.6917,
      "type": 1,
      "country": "JPN"
    },
    "dnt": 0,
    "lmt": 0,
    "devicetype": 4,
    "make": "Samsung",
    "model": "Galaxy",
    "os": "Android",
    "osv": "7.0",
    "language": "en",
    "carrier": "carrier_name",
    "js": 1
  },
  "user": {
    "id": "user123"
  },
  "at": 1,
  "tmax": 500,
  "cur": ["USD"],
  "bcat": ["IAB26", "IAB25"],
  "badv": ["badadvertiser.com"]
}

 

Native 1.2

{
"id": "123456789",
  "imp": [{
    "id": "1",
    "native": {
      "request": "{\"ver\":\"1.2\",\"context\":1,\"contextsubtype\":11,\"plcmttype\":2,\"eventtrackers\":[{\"event\":1,\"methods\":[1,2]}],\"assets\":[{\"id\":1,\"required\":1,\"title\":{\"len\":140}},{\"id\":2,\"required\":1,\"img\":{\"type\":3,\"wmin\":120,\"hmin\":120,\"mimes\":[\"image/jpg\",\"image/png\"]}},{\"id\":3,\"required\":0,\"data\":{\"type\":1,\"len\":15}},{\"id\":4,\"required\":0,\"video\":{\"mimes\":[\"video/mp4\"],\"minduration\":5,\"maxduration\":30,\"protocols\":[2,3],\"w\":640,\"h\":480}}]}",
      "ver": "1.2",
      "api": [3, 4],
      "battr": [1, 3]
    },
    "instl": 0,
    "bidfloor": 0.05,
    "displaymanager": "Prebid.js",
    "displaymanagerver": "1.0.0",
    "secure": 1
  }],
  "app": {
    "name": "App Name",
    "bundle": "com.appname",
    "domain": "http://www.appname.com",
    "storeurl": "https://play.google.com/store/apps/details?id=com.appname",
    "cat": ["IAB3", "IAB3-2"],
    "privpolicy": 1
  },
  "device": {
    "ua": "user_agent_string",
    "ip": "123.123.123.123",
    "geo": {
      "lat": 35.6895,
      "lon": 139.6917,
      "type": 1,
      "country": "JPN"
    },
    "dnt": 0,
    "lmt": 0,
    "devicetype": 4,
    "make": "Samsung",
    "model": "Galaxy",
    "os": "Android",
    "osv": "8.0",
    "language": "en",
    "carrier": "carrier_name",
    "js": 1
  },
  "user": {
    "id": "user123"
      },
  "at": 1,
  "tmax": 500,
  "cur": ["USD"],
  "bcat": ["IAB26", "IAB25"],
  "badv": ["badadvertiser.com"],
  "regs": {
    "coppa": 0,
    "ext": {
      "gdpr": 0
    }

 

Banner

 {
  "id": "123456789",
  "imp": [{
    "id": "1",
    "banner": {
      "w": 300,
      "h": 250,
      "pos": 1,
      "btype": [1, 3],
      "battr": [1, 2],
      "mimes": ["image/jpeg", "image/png", "application/javascript"],
      "topframe": 1,
      "expdir": [2, 4],
      "api": [3, 4],
      "id": "banner123",
      "vcm": 0
    },
    "instl": 0,
    "bidfloor": 0.10,
    "displaymanager": "Prebid.js",
    "displaymanagerver": "1.0.0",
    "secure": 1
  }],
  "site": {
    "id": "site123",
    "name": "Site Name",
    "domain": "http://www.sitename.com",
    "cat": ["IAB3", "IAB3-2"],
    "page": "http://www.sitename.com/page1",
    "ref": "http://www.referer.com",
    "publisher": {
      "id": "publisher123",
      "name": "Publisher Name"
    }
  },
  "device": {
    "ua": "user_agent_string",
    "ip": "123.123.123.123",
    "geo": {
      "lat": 35.6895,
      "lon": 139.6917,
      "type": 1,
      "country": "JPN"
    },
    "dnt": 0,
    "lmt": 0,
    "devicetype": 4,
    "make": "Apple",
    "model": "iPhone",
    "os": "iOS",
    "osv": "14.0",
    "language": "en",
    "carrier": "carrier_name",
    "js": 1,
    "ifa": "device_ID_string"
  },
  "user": {
    "id": "user123"
  },
  "at": 1,
  "tmax": 500,
  "cur": ["USD"],
  "bcat": ["IAB26", "IAB25"],
  "badv": ["badadvertiser.com"],
  "regs": {
    "coppa": 0,
    "ext": {
      "gdpr": 0
    }
  }
}

 

Video

{
  "id": "123456789",
  "imp": [{
    "id": "1",
    "video": {
      "mimes": ["video/mp4", "video/x-flv"],
      "minduration": 5,
      "maxduration": 30,
      "protocols": [2, 3, 5],
      "w": 640,
      "h": 480,
      "startdelay": 5,
      "linearity": 1,
      "sequence": 1,
      "battr": [1, 3, 6],
      "maxextended": 30,
      "minbitrate": 300,
      "maxbitrate": 500,
      "boxingallowed": 1,
      "playbackmethod": [1, 3],
      "delivery": [2],
      "pos": 1,
      "api": [1, 2],
      "companionad": [{
        "id": "123",
        "w": 300,
        "h": 250,
        "pos": 0
      }],
      "companiontype": [1, 3],
      "skip": 1,
      "skipmin": 10,
      "skipafter": 5
    },
    "instl": 0,
    "bidfloor": 0.50,
    "secure": 1
  }],
  "site": {
    "id": "site123",
    "name": "Site Name",
    "domain": "http://www.sitename.com",
    "cat": ["IAB3", "IAB3-2"],
    "page": "http://www.sitename.com/page1"
  },
  "device": {
    "ua": "user_agent_string",
    "ip": "123.123.123.123",
    "dnt": 0,
    "devicetype": 4,
    "make": "Apple",
    "model": "iPhone",
    "os": "iOS",
    "osv": "14.0",
    "language": "en",
    "carrier": "carrier_name",
    "js": 1,
    "ifa": "device_ID_string"
  },
  "user": {
    "id": "user123",
    "gender": "M",
    "yob": 1990
  },
  "at": 1,
  "tmax": 500,
  "cur": ["USD"],
  "bcat": ["IAB26", "IAB25"],
  "badv": ["badadvertiser.com"],
  "regs": {
    "coppa": 0
  }
}

 

BidResponse

RTB responses contain bids that reference specific impressions within a bid request. Bids are in essence an offer to buy. The bid response consists of the top-level bid response object and optional objects that depict the specific bids.

BidResponse: parameters

Field

Type

Description

id

string (required)

ID of the bid request to which this is a response

seatbid

object array (required)

Array of seatbid objects; 1+ required if a bid is to be made

bidid

string

Bidder generated response ID to assist with logging/tracking

cur

string; default “USD”

Bid currency using ISO-4217 alpha codes

ext

object

Placeholder for bidder-specific extensions to OpenRTB

 

BidResponse.seatbid: parameters

Field

Type

Description

bid (required)

object array

Array of 1+ bid objects; each bid object is related to an impression. Multiple bids can relate to the same impression

seat

string

ID of the buyer seat on whose behalf this bid is made

 

BidResponse.seatbid.bid: parameters

Field

Type

Description

id

string (required)

 

Bidder generated bid ID to assist with logging/tracking

impid

string (required)

 

ID of the Imp object in the related bid request

price

float (required)

 

Bid price expressed as CPM although the actual transaction is for a unit impression only

adm

string (required)

 

Ad markup. XHTML if in response to a banner object, or VAST XML if in response to a video object

nurl

string

Win notice URL called by the exchange if the bid wins (not necessarily indicative of a delivered, viewed, or billable ad); optional means of serving ad markup

burl

string

Billing notice URL called by the exchange when a winning bid becomes billable based on exchange-specific business policy (e.g., typically delivered, viewed, etc.)

w

integer

Width of the creative in device independent pixels (DIPS)

h

integer

Height of the creative in device independent pixels (DIPS)

adid

string (required)

 

ID that references the ad to be served if the bid wins

adomain

string array

Advertiser domain for block list checking

crid

string (required)

 

Creative ID to assist with ad quality checking and reporting

cid

string

Campaign ID to assist with ad quality checking

dealid

string

Reference to the deal.id from the bid request if this bid pertains to a private marketplace direct deal

 

BidResponse example

Native 1.1

{
   "id":"431f0fbf-4be0-11ee-b027-e43d1a2a79f40",
   "bidid":"431f0fbf-4be0-11ee-b027-e43d1a2a79f40",
   "cur":"USD",
   "seatbid":[
      {
         "seat":"seat123",
         "bid":[
            {
               "id":"20230905_rS9mXnMplHePh4WY2Kpi",
               "impid":"1",
               "price":0.050377635025892015,
               "adid":"Je3p59PA1JuPtrdurVYi",
               "burl":"https://billingurl.com/tdc=ams",
               "adm":"{\"ver\":\"1.1\",\"assets\":[{\"id\":1,\"title\":{\"text\":\"samochody na abonament\"}},{\"id\":3,\"data\":{\"value\":\"984 zł - Ad Star Hatchback\"}},{\"id\":6,\"data\":{\"value\":\"domain.pl\"}},{\"id\":4,\"data\":{\"value\":\"984 zł\"}},{\"id\":2,\"img\":{\"url\":\"https://domain/images?id=c002a6e61&w=1200&h=800&o=01b5478486963a09adc6ccb152991d56&fid=xcgGLQexsNd5DL4VhMbC\",\"w\":1200,\"h\":800}}],\"link\":{\"url\":\"https://domain.com/clicks?id=20230905_rS9mXnMplHePh4WY2Kpi&tk\"},\"imptrackers\":[]}",
               "adomain":[
                  "domain.pl"
               ],
               "cid":"mWGb3th5u6ZHQ0xr",
               "crid":"Je3p59PAtrdurVYi",
               "cat":[
                  "IAB22"
               ],
               "attr":[
                  
               ],
               "mtype":4
            }
         ]
      }
   ]
}

 

Native 1.2

{
   "id":"ea45452d-4bd2-11ee-afbe-c84bd684dfc21",
   "seatbid":[
      {
         "bid":[
            {
               "id":"2",
               "impid":"1",
               "price":0.036167,
               "adomain":[
                  "vivo.com.br"
               ],
               "crid":"2249:536674",
               "ext":{
                  "rp":{
                     "advid":81815,
                     "mime":"application\/javascript",
                     "adtype":"native",
                     "size_id":600
                  }
               },
               "admobject":{
                  "native":{
                     "ver":"1.2",
                     "assets":[
                        {
                           "id":1,
                           "title":{
                              "text":"Title Text"
                           }
                        },
                        {
                           "id":6,
                           "data":{
                              "value":"Start"
                           }
                        },
                        {
                           "id":2,
                           "img":{
                              "url":"https:\/\/domai.com\/simgad\/2674344757777989253",
                              "w":1200,
                              "h":627
                           }
                        }
                     ],
                     "link":{
                        "url":"https:\/\/domain.com\/dbm\/clk?sa=L&ai=Cguz3Bvz2ZK6vC",
                        "clicktrackers":[
                           "https:\/\/domain.com\/beacon\/v3\/t\/sjc2\/0\/7904bf8b-d426-456d-a0cf-5ae2c88431f1\/?url=https%3A%2F%2Fdomain.com%2Fdbm%2Fclk"
                        ]
                     },
                     "eventtrackers":[
                        {
                           "event":1,
                           "method":1,
                           "url":"https:\/\/domain.com\/beacon\/n\/7904b00B9D5"
                        },
                        {
                           "event":1,
                           "method":1,
                           "url":"https:\/\/domain.com\/dbm\/ad?dbm_c=AKAmf-VOpl9nmISZsIwIm5r46gSk9Dm33kmmmMfBgB&dc_exteid=31247086886303361337201806006185486&dc_pubid=4"
                        },
                        {
                           "event":1,
                           "method":2,
                           "url":"https:\/\/domain.com\/pagead\/js\/dv3_native_client.js#ChwKGkNLN0swdmlhazRFREZabzRSQWdkR3NnTzNR"
                        }
                     ]
                  }
               }
            }
         ],
         "seat":"2249:201",
         "buyer":"2249"
      }
   ],
   "bidid":"7904bf8b-d426-456d-a0cf-5ae2c88431f1",
   "statuscode":0
}

Banner

{
   "id":"b3b0f654-4be0-11ee-ba3c-e43d1a2a96ea1",
   "bidid":"b3b0f654-4be0-11ee-ba3c-e43d1a2a96ea1",
   "cur":"USD",
   "seatbid":[
      {
         "seat":"rtbhouse",
         "bid":[
            {
               "id":"20230905_rSI2KecrUuRozXEvwsc0",
               "impid":"2",
               "price":0.04621337218491528,
               "adid":"JwncPDUaDbFZA90IcACI",
               "burl":"https://domain.com/win-notify?tk=T4t91A_1J0UgF4oz4rZzGfrdyl9PVQlucdTIaEx2PhOu3Fa5xmChm3c_&wp=${AUCTION_PRICE}&tdc=ams",
               "adm":"<iframe src=\"https://domain.com/imp-delivery?tk=MAc2L35UovPDLcugKG-5dAugYOCph7HfXH-WK8&amp;curl=https%3A%2F%2Fams.domain.com%2Fclicks%3Fid%3D20230905_rSI2KecrUuRozXEvwsc0%26%7BEXTRA_CLICK_PARAMS%7D&amp;tdc=ams\" width=\"336\" height=\"280\" scrolling=\"no\" frameBorder=\"0\"  loading=\"eager\" ></iframe>",
               "adomain":[
                  "domain1.com",
        "domain2.com"
           ],
               "cid":"Kefb7y7AcVPZcirAE",
               "crid":"JwPDUaDbFZAIcACI",
               "cat":[
                  "IAB22"
               ],
               "attr":[
                  
               ],
               "mtype":1,
               "w":336,
               "h":280
            }
         ]
      }
   ]
}