From 917bf91516d74782db89b03aedc52598d2bbb35b Mon Sep 17 00:00:00 2001 From: mxmCherry Date: Mon, 16 May 2022 23:03:02 +0300 Subject: [PATCH] openrtb2: use 2.6 test examples --- openrtb2/bid_request_test.go | 47 +++++-- openrtb2/bid_response_test.go | 35 +++-- openrtb2/testdata/README.md | 11 +- .../{ => 2.5}/expandable-creative.json | 0 .../bid-request/{ => 2.5}/mobile.json | 0 .../bid-request/{ => 2.5}/native-ad.json | 0 .../{ => 2.5}/pmp-with-direct-deal.json | 0 .../bid-request/{ => 2.5}/simple-banner.json | 0 .../testdata/bid-request/{ => 2.5}/video.json | 0 .../bid-request/2.6/expandable-creative.json | 68 +++++++++ openrtb2/testdata/bid-request/2.6/mobile.json | 70 ++++++++++ .../bid-request/2.6/pmp-with-direct-deal.json | 61 ++++++++ .../bid-request/2.6/simple-banner.json | 37 +++++ openrtb2/testdata/bid-request/2.6/video.json | 130 ++++++++++++++++++ .../{ => 2.5}/ad-served-on-win-notice.json | 0 .../direct-deal-ad-served-on-win-notice.json | 0 .../native-markup-returned-inline.json | 0 .../vast-xml-document-returned-inline.json | 0 .../2.6/ad-served-on-win-notice.json | 34 +++++ .../direct-deal-ad-served-on-win-notice.json | 32 +++++ .../2.6/native-markup-returned-inline.json | 16 +++ .../vast-xml-document-returned-inline.json | 16 +++ 22 files changed, 536 insertions(+), 21 deletions(-) rename openrtb2/testdata/bid-request/{ => 2.5}/expandable-creative.json (100%) rename openrtb2/testdata/bid-request/{ => 2.5}/mobile.json (100%) rename openrtb2/testdata/bid-request/{ => 2.5}/native-ad.json (100%) rename openrtb2/testdata/bid-request/{ => 2.5}/pmp-with-direct-deal.json (100%) rename openrtb2/testdata/bid-request/{ => 2.5}/simple-banner.json (100%) rename openrtb2/testdata/bid-request/{ => 2.5}/video.json (100%) create mode 100644 openrtb2/testdata/bid-request/2.6/expandable-creative.json create mode 100644 openrtb2/testdata/bid-request/2.6/mobile.json create mode 100644 openrtb2/testdata/bid-request/2.6/pmp-with-direct-deal.json create mode 100644 openrtb2/testdata/bid-request/2.6/simple-banner.json create mode 100644 openrtb2/testdata/bid-request/2.6/video.json rename openrtb2/testdata/bid-response/{ => 2.5}/ad-served-on-win-notice.json (100%) rename openrtb2/testdata/bid-response/{ => 2.5}/direct-deal-ad-served-on-win-notice.json (100%) rename openrtb2/testdata/bid-response/{ => 2.5}/native-markup-returned-inline.json (100%) rename openrtb2/testdata/bid-response/{ => 2.5}/vast-xml-document-returned-inline.json (100%) create mode 100644 openrtb2/testdata/bid-response/2.6/ad-served-on-win-notice.json create mode 100644 openrtb2/testdata/bid-response/2.6/direct-deal-ad-served-on-win-notice.json create mode 100644 openrtb2/testdata/bid-response/2.6/native-markup-returned-inline.json create mode 100644 openrtb2/testdata/bid-response/2.6/vast-xml-document-returned-inline.json diff --git a/openrtb2/bid_request_test.go b/openrtb2/bid_request_test.go index 89df631..ca06f93 100644 --- a/openrtb2/bid_request_test.go +++ b/openrtb2/bid_request_test.go @@ -28,29 +28,52 @@ var _ = Describe("BidRequest", func() { Expect(actual).To(MatchJSON(expected)) }, + // 2.5 Entry( - "Simple Banner", - "bid-request/simple-banner.json", + "2.5 Simple Banner", + "bid-request/2.5/simple-banner.json", new(BidRequest)), Entry( - "Expandable Creative", - "bid-request/expandable-creative.json", + "2.5 Expandable Creative", + "bid-request/2.5/expandable-creative.json", new(BidRequest)), Entry( - "Mobile", - "bid-request/mobile.json", + "2.5 Mobile", + "bid-request/2.5/mobile.json", new(BidRequest)), Entry( - "Video", - "bid-request/video.json", + "2.5 Video", + "bid-request/2.5/video.json", new(BidRequest)), Entry( - "PMP with Direct Deal", - "bid-request/pmp-with-direct-deal.json", + "2.5 PMP with Direct Deal", + "bid-request/2.5/pmp-with-direct-deal.json", new(BidRequest)), Entry( - "Native Ad", - "bid-request/native-ad.json", + "2.5 Native Ad", + "bid-request/2.5/native-ad.json", + new(BidRequest)), + + // 2.6 + Entry( + "2.6 Simple Banner", + "bid-request/2.6/simple-banner.json", + new(BidRequest)), + Entry( + "2.6 Expandable Creative", + "bid-request/2.6/expandable-creative.json", + new(BidRequest)), + Entry( + "2.6 Mobile", + "bid-request/2.6/mobile.json", + new(BidRequest)), + Entry( + "2.6 Video", + "bid-request/2.6/video.json", + new(BidRequest)), + Entry( + "2.6 PMP with Direct Deal", + "bid-request/2.6/pmp-with-direct-deal.json", new(BidRequest)), ) }) diff --git a/openrtb2/bid_response_test.go b/openrtb2/bid_response_test.go index 1c4b2e8..98eba9d 100644 --- a/openrtb2/bid_response_test.go +++ b/openrtb2/bid_response_test.go @@ -28,21 +28,40 @@ var _ = Describe("BidResponse", func() { Expect(actual).To(MatchJSON(expected)) }, + // 2.5 Entry( - "Ad Served on Win Notice", - "bid-response/ad-served-on-win-notice.json", + "2.5 Ad Served on Win Notice", + "bid-response/2.5/ad-served-on-win-notice.json", new(BidResponse)), Entry( - "VAST XML Document Returned Inline", - "bid-response/vast-xml-document-returned-inline.json", + "2.5 VAST XML Document Returned Inline", + "bid-response/2.5/vast-xml-document-returned-inline.json", new(BidResponse)), Entry( - "Direct Deal Ad Served on Win Notice", - "bid-response/direct-deal-ad-served-on-win-notice.json", + "2.5 Direct Deal Ad Served on Win Notice", + "bid-response/2.5/direct-deal-ad-served-on-win-notice.json", new(BidResponse)), Entry( - "Native Markup Returned Inline", - "bid-response/native-markup-returned-inline.json", + "2.5 Native Markup Returned Inline", + "bid-response/2.5/native-markup-returned-inline.json", + new(BidResponse)), + + // 2.6 + Entry( + "2.6 Ad Served on Win Notice", + "bid-response/2.6/ad-served-on-win-notice.json", + new(BidResponse)), + Entry( + "2.6 VAST XML Document Returned Inline", + "bid-response/2.6/vast-xml-document-returned-inline.json", + new(BidResponse)), + Entry( + "2.6 Direct Deal Ad Served on Win Notice", + "bid-response/2.6/direct-deal-ad-served-on-win-notice.json", + new(BidResponse)), + Entry( + "2.6 Native Markup Returned Inline", + "bid-response/2.6/native-markup-returned-inline.json", new(BidResponse)), ) }) diff --git a/openrtb2/testdata/README.md b/openrtb2/testdata/README.md index 0857681..7db181f 100644 --- a/openrtb2/testdata/README.md +++ b/openrtb2/testdata/README.md @@ -1,5 +1,14 @@ # testdata -JSON examples copied from [OpenRTB](https://iabtechlab.com/standards/openrtb/) [2.6](https://iabtechlab.com/wp-content/uploads/2022/04/OpenRTB-2-6_FINAL.pdf) spec - section 6. Bid Request/Response Samples. +JSON examples copied from [OpenRTB](https://iabtechlab.com/standards/openrtb/) spec documents: +- [2.5](https://iabtechlab.com/wp-content/uploads/2016/07/OpenRTB-API-Specification-Version-2-5-FINAL.pdf) spec - section 6. Bid Request/Response Samples +- [2.6](https://iabtechlab.com/wp-content/uploads/2022/04/OpenRTB-2-6_FINAL.pdf) spec - section 6. Bid Request/Response Samples Some empty/zero attributes were omited (not copied) because of [encoding/json](https://golang.org/pkg/encoding/json/) `omitempty` and [gomega.MatchJSON(...)](http://onsi.github.io/gomega/#matchjsonjson-interface). + +Sloppy examples (and types) is not something new for OpenRTB spec, so the following adjustments were made: + +- [bid-request/2.6/simple-banner.json](bid-request/2.6/simple-banner.json) - spec example embedded `user` into `site`, moved `user` to top level +- [bid-request/2.6/expandable-creative.json](bid-request/2.6/expandable-creative.json) - `data[2].value` added, moved to `data[2].segment[0].value` +- [bid-request/2.6/mobile.json](bid-request/2.6/mobile.json) - `imp[0].instl = 0` removed (because of JSON/omitempty) +- [bid-request/2.6/VIDEO.json](bid-request/2.6/VIDEO.json) - `imp[0].video.apis` renamed to `api` (it is singular in spec, but plural in example) diff --git a/openrtb2/testdata/bid-request/expandable-creative.json b/openrtb2/testdata/bid-request/2.5/expandable-creative.json similarity index 100% rename from openrtb2/testdata/bid-request/expandable-creative.json rename to openrtb2/testdata/bid-request/2.5/expandable-creative.json diff --git a/openrtb2/testdata/bid-request/mobile.json b/openrtb2/testdata/bid-request/2.5/mobile.json similarity index 100% rename from openrtb2/testdata/bid-request/mobile.json rename to openrtb2/testdata/bid-request/2.5/mobile.json diff --git a/openrtb2/testdata/bid-request/native-ad.json b/openrtb2/testdata/bid-request/2.5/native-ad.json similarity index 100% rename from openrtb2/testdata/bid-request/native-ad.json rename to openrtb2/testdata/bid-request/2.5/native-ad.json diff --git a/openrtb2/testdata/bid-request/pmp-with-direct-deal.json b/openrtb2/testdata/bid-request/2.5/pmp-with-direct-deal.json similarity index 100% rename from openrtb2/testdata/bid-request/pmp-with-direct-deal.json rename to openrtb2/testdata/bid-request/2.5/pmp-with-direct-deal.json diff --git a/openrtb2/testdata/bid-request/simple-banner.json b/openrtb2/testdata/bid-request/2.5/simple-banner.json similarity index 100% rename from openrtb2/testdata/bid-request/simple-banner.json rename to openrtb2/testdata/bid-request/2.5/simple-banner.json diff --git a/openrtb2/testdata/bid-request/video.json b/openrtb2/testdata/bid-request/2.5/video.json similarity index 100% rename from openrtb2/testdata/bid-request/video.json rename to openrtb2/testdata/bid-request/2.5/video.json diff --git a/openrtb2/testdata/bid-request/2.6/expandable-creative.json b/openrtb2/testdata/bid-request/2.6/expandable-creative.json new file mode 100644 index 0000000..87ed8ef --- /dev/null +++ b/openrtb2/testdata/bid-request/2.6/expandable-creative.json @@ -0,0 +1,68 @@ +{ + "id": "123456789316e6ede735f123ef6e32361bfc7b22", + "at": 2, + "cur": [ + "USD" + ], + "imp": [ + { + "id": "1", + "bidfloor": 0.03, + "iframebuster": [ + "vendor1.com", + "vendor2.com" + ], + "banner": { + "h": 250, + "w": 300, + "pos": 0, + "battr": [ + 13 + ], + "expdir": [ + 2, + 4 + ] + } + } + ], + "site": { + "id": "102855", + "cat": [ + "IAB3-1" + ], + "domain": "www.foobar.com", + "page": "http://www.foobar.com/1234.html", + "publisher": { + "id": "8953", + "name": "foobar.com", + "cat": [ + "IAB3-1" + ], + "domain": "foobar.com" + } + }, + "user": { + "id": "55816b39711f9b5acf3b90e313ed29e51665623f", + "buyeruid": "545678765467876567898765678987654", + "data": [ + { + "id": "12341318394918", + "name": "auto intenders" + }, + { + "id": "1234131839491234", + "name": "auto enthusiasts" + }, + { + "id": "23423424", + "name": "data-provider1-age", + "segment": [ + { + "value": "30-40" + } + ] + } + ] + } +} diff --git a/openrtb2/testdata/bid-request/2.6/mobile.json b/openrtb2/testdata/bid-request/2.6/mobile.json new file mode 100644 index 0000000..c69572e --- /dev/null +++ b/openrtb2/testdata/bid-request/2.6/mobile.json @@ -0,0 +1,70 @@ +{ + "id": "IxexyLDIIk", + "at": 2, + "bcat": [ + "IAB25", + "IAB7-39", + "IAB8-18", + "IAB8-5", + "IAB9-9" + ], + "badv": [ + "apple.com", + "go-text.me", + "heywire.com" + ], + "imp": [ + { + "id": "1", + "bidfloor": 0.5, + "tagid": "agltb3B1Yi1pbmNyDQsSBFNpdGUY7fD0FAw", + "banner": { + "w": 728, + "h": 90, + "pos": 1, + "btype": [ + 4 + ], + "battr": [ + 14 + ], + "api": [ + 3 + ] + } + } + ], + "app": { + "id": "agltb3B1Yi1pbmNyDAsSA0FwcBiJkfIUDA", + "name": "Yahoo Weather", + "cat": [ + "IAB15", + "IAB15-10" + ], + "ver": "1.0.2", + "bundle": "12345", + "storeurl": "https://itunes.apple.com/id628677149", + "publisher": { + "id": "agltb3B1Yi1pbmNyDAsSA0FwcBiJkfTUCV", + "name": "yahoo", + "domain": "www.yahoo.com" + } + }, + "device": { + "dnt": 0, + "ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 6_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3", + "ifa": "AA000DFE74168477C70D291f574D344790E0BB11", + "carrier": "VERIZON", + "language": "en", + "make": "Apple", + "model": "iPhone", + "os": "iOS", + "osv": "6.1", + "js": 1, + "connectiontype": 3, + "devicetype": 1 + }, + "user": { + "id": "ffffffd5135596709273b3a1a07e466ea2bf4fff" + } +} diff --git a/openrtb2/testdata/bid-request/2.6/pmp-with-direct-deal.json b/openrtb2/testdata/bid-request/2.6/pmp-with-direct-deal.json new file mode 100644 index 0000000..805bf9b --- /dev/null +++ b/openrtb2/testdata/bid-request/2.6/pmp-with-direct-deal.json @@ -0,0 +1,61 @@ +{ + "id": "80ce30c53c16e6ede735f123ef6e32361bfc7b22", + "at": 1, + "cur": [ + "USD" + ], + "imp": [ + { + "id": "1", + "bidfloor": 0.03, + "banner": { + "h": 250, + "w": 300, + "pos": 0 + }, + "pmp": { + "private_auction": 1, + "deals": [ + { + "id": "AB-Agency1-0001", + "at": 1, + "bidfloor": 2.5, + "wseat": [ + "Agency1" + ] + }, + { + "id": "XY-Agency2-0001", + "at": 2, + "bidfloor": 2, + "wseat": [ + "Agency2" + ] + } + ] + } + } + ], + "site": { + "id": "102855", + "domain": "www.foobar.com", + "cat": [ + "IAB3-1" + ], + "page": "http://www.foobar.com/1234.html", + "publisher": { + "id": "8953", + "name": "foobar.com", + "cat": [ + "IAB3-1" + ], + "domain": "foobar.com" + } + }, + "device": { + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.13 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2" + }, + "user": { + "id": "55816b39711f9b5acf3b90e313ed29e51665623f" + } +} diff --git a/openrtb2/testdata/bid-request/2.6/simple-banner.json b/openrtb2/testdata/bid-request/2.6/simple-banner.json new file mode 100644 index 0000000..88f7508 --- /dev/null +++ b/openrtb2/testdata/bid-request/2.6/simple-banner.json @@ -0,0 +1,37 @@ +{ + "id": "80ce30c53c16e6ede735f123ef6e32361bfc7b22", + "at": 1, + "cur": [ + "USD" + ], + "imp": [ + { + "id": "1", + "bidfloor": 0.03, + "banner": { + "h": 250, + "w": 300, + "pos": 0 + } + } + ], + "site": { + "id": "102855", + "cat": [ + "IAB3-1" + ], + "domain": "www.foobar.com", + "page": "http://www.foobar.com/1234.html ", + "publisher": { + "id": "8953", + "name": "foobar.com", + "cat": [ + "IAB3-1" + ], + "domain": "foobar.com" + } + }, + "user": { + "id": "55816b39711f9b5acf3b90e313ed29e51665623f" + } +} diff --git a/openrtb2/testdata/bid-request/2.6/video.json b/openrtb2/testdata/bid-request/2.6/video.json new file mode 100644 index 0000000..ba999c2 --- /dev/null +++ b/openrtb2/testdata/bid-request/2.6/video.json @@ -0,0 +1,130 @@ +{ + "id": "1234567893", + "at": 2, + "tmax": 120, + "imp": [ + { + "id": "1", + "bidfloor": 0.03, + "video": { + "w": 640, + "h": 480, + "pos": 1, + "startdelay": 0, + "minduration": 5, + "maxduration": 30, + "maxextended": 30, + "minbitrate": 300, + "maxbitrate": 1500, + "api": [ + 1, + 2 + ], + "protocols": [ + 2, + 3 + ], + "mimes": [ + "video/x-flv", + "video/mp4", + "application/javascript" + ], + "linearity": 1, + "boxingallowed": 1, + "playbackmethod": [ + 1, + 3 + ], + "delivery": [ + 2 + ], + "battr": [ + 13, + 14 + ], + "companionad": [ + { + "id": "1234567893-1", + "w": 300, + "h": 250, + "pos": 1, + "battr": [ + 13, + 14 + ], + "expdir": [ + 2, + 4 + ] + }, + { + "id": "1234567893-2", + "w": 728, + "h": 90, + "pos": 1, + "battr": [ + 13, + 14 + ] + } + ], + "companiontype": [ + 1, + 2 + ] + } + } + ], + "site": { + "id": "1345135123", + "name": "Site ABCD", + "domain": "siteabcd.com", + "cat": [ + "IAB2-1", + "IAB2-2" + ], + "page": "http://siteabcd.com/page.htm", + "ref": "http://referringsite.com/referringpage.htm", + "privacypolicy": 1, + "publisher": { + "id": "pub12345", + "name": "Publisher A" + }, + "content": { + "id": "1234567", + "series": "All About Cars", + "season": "2", + "episode": 23, + "title": "Car Show", + "cat": [ + "IAB2-2" + ], + "keywords": "keyword-a,keyword-b,keyword-c" + } + }, + "device": { + "ua": "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16", + "os": "OS X", + "js": 1 + }, + "user": { + "id": "456789876567897654678987656789", + "buyeruid": "545678765467876567898765678987654", + "data": [ + { + "id": "6", + "name": "Data Provider 1", + "segment": [ + { + "id": "12341318394918", + "name": "auto intenders" + }, + { + "id": "1234131839491234", + "name": "auto enthusiasts" + } + ] + } + ] + } +} diff --git a/openrtb2/testdata/bid-response/ad-served-on-win-notice.json b/openrtb2/testdata/bid-response/2.5/ad-served-on-win-notice.json similarity index 100% rename from openrtb2/testdata/bid-response/ad-served-on-win-notice.json rename to openrtb2/testdata/bid-response/2.5/ad-served-on-win-notice.json diff --git a/openrtb2/testdata/bid-response/direct-deal-ad-served-on-win-notice.json b/openrtb2/testdata/bid-response/2.5/direct-deal-ad-served-on-win-notice.json similarity index 100% rename from openrtb2/testdata/bid-response/direct-deal-ad-served-on-win-notice.json rename to openrtb2/testdata/bid-response/2.5/direct-deal-ad-served-on-win-notice.json diff --git a/openrtb2/testdata/bid-response/native-markup-returned-inline.json b/openrtb2/testdata/bid-response/2.5/native-markup-returned-inline.json similarity index 100% rename from openrtb2/testdata/bid-response/native-markup-returned-inline.json rename to openrtb2/testdata/bid-response/2.5/native-markup-returned-inline.json diff --git a/openrtb2/testdata/bid-response/vast-xml-document-returned-inline.json b/openrtb2/testdata/bid-response/2.5/vast-xml-document-returned-inline.json similarity index 100% rename from openrtb2/testdata/bid-response/vast-xml-document-returned-inline.json rename to openrtb2/testdata/bid-response/2.5/vast-xml-document-returned-inline.json diff --git a/openrtb2/testdata/bid-response/2.6/ad-served-on-win-notice.json b/openrtb2/testdata/bid-response/2.6/ad-served-on-win-notice.json new file mode 100644 index 0000000..621b4cb --- /dev/null +++ b/openrtb2/testdata/bid-response/2.6/ad-served-on-win-notice.json @@ -0,0 +1,34 @@ +{ + "id": "1234567890", + "bidid": "abc1123", + "cur": "USD", + "seatbid": [ + { + "seat": "512", + "bid": [ + { + "id": "1", + "impid": "102", + "price": 9.43, + "nurl": "http://adserver.com/winnotice?impid=102", + "iurl": "http://adserver.com/pathtosampleimage", + "adomain": [ + "advertiserdomain.com" + ], + "cid": "campaign111", + "crid": "creative112", + "attr": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 12 + ] + } + ] + } + ] +} diff --git a/openrtb2/testdata/bid-response/2.6/direct-deal-ad-served-on-win-notice.json b/openrtb2/testdata/bid-response/2.6/direct-deal-ad-served-on-win-notice.json new file mode 100644 index 0000000..0aabb0d --- /dev/null +++ b/openrtb2/testdata/bid-response/2.6/direct-deal-ad-served-on-win-notice.json @@ -0,0 +1,32 @@ +{ + "id": "1234567890", + "bidid": "abc1123", + "cur": "USD", + "seatbid": [ + { + "seat": "512", + "bid": [ + { + "id": "1", + "impid": "102", + "price": 5, + "dealid": "ABC-1234-6789", + "nurl": "http: //adserver.com/winnotice?impid=102", + "adomain": [ + "advertiserdomain.com" + ], + "iurl": "http: //adserver.com/pathtosampleimage", + "cid": "campaign111", + "crid": "creative112", + "adid": "314", + "attr": [ + 1, + 2, + 3, + 4 + ] + } + ] + } + ] +} diff --git a/openrtb2/testdata/bid-response/2.6/native-markup-returned-inline.json b/openrtb2/testdata/bid-response/2.6/native-markup-returned-inline.json new file mode 100644 index 0000000..6ad0341 --- /dev/null +++ b/openrtb2/testdata/bid-response/2.6/native-markup-returned-inline.json @@ -0,0 +1,16 @@ +{ + "id": "123", + "seatbid": [ + { + "bid": [ + { + "id": "12345", + "impid": "2", + "price": 3, + "nurl": "http://example.com/winnoticeurl", + "adm": "{\"native\":{\"ver\":\"1.0\",\"link\":{ ... },\"imptrackers\":[ ... ],\"assets\":[ ... ]}}" + } + ] + } + ] +} diff --git a/openrtb2/testdata/bid-response/2.6/vast-xml-document-returned-inline.json b/openrtb2/testdata/bid-response/2.6/vast-xml-document-returned-inline.json new file mode 100644 index 0000000..b2f09f0 --- /dev/null +++ b/openrtb2/testdata/bid-response/2.6/vast-xml-document-returned-inline.json @@ -0,0 +1,16 @@ +{ + "id": "123", + "seatbid": [ + { + "bid": [ + { + "id": "12345", + "impid": "2", + "price": 3, + "nurl": "http://example.com/winnoticeurl", + "adm": "\n\n\n\nSpotXchange\n\n\n\nhttp://sample.com\n\n\n\n \n\n\n00:00:30\n < /TrackingEvents>\n\n\n\n\n\n< MediaFiles >\n < MediaFile delivery =\"progressive\" bitrate=\"256\" width=\"640\" height=\"480\" type=\"video/mp4\">\n\n< /MediaFile>\n\n < /Linear>\n< /Creative>\n\n < /InLine>\n\n < /VAST>" + } + ] + } + ] +}