diff --git a/modules/sspBCBidAdapter.js b/modules/sspBCBidAdapter.js
index 15e0baa811f..9c8f2309c58 100644
--- a/modules/sspBCBidAdapter.js
+++ b/modules/sspBCBidAdapter.js
@@ -1,7 +1,7 @@
 import * as utils from '../src/utils.js';
 import { ajax } from '../src/ajax.js';
 import { registerBidder } from '../src/adapters/bidderFactory.js';
-import { BANNER } from '../src/mediaTypes.js';
+import { BANNER, NATIVE, VIDEO } from '../src/mediaTypes.js';
 import strIncludes from 'core-js-pure/features/string/includes.js';
 
 const BIDDER_CODE = 'sspBC';
@@ -9,7 +9,7 @@ const BIDDER_URL = 'https://ssp.wp.pl/bidder/';
 const SYNC_URL = 'https://ssp.wp.pl/bidder/usersync';
 const NOTIFY_URL = 'https://ssp.wp.pl/bidder/notify';
 const TMAX = 450;
-const BIDDER_VERSION = '5.0';
+const BIDDER_VERSION = '5.2';
 const W = window;
 const { navigator } = W;
 const oneCodeDetection = {};
@@ -155,6 +155,108 @@ const mapBanner = slot => {
   }
 }
 
+/**
+ * @param {string} paramName Native parameter name
+ * @param {object} paramValue Native parameter value
+ * @returns {object} native asset object that conforms to ortb native ads spec
+ */
+const mapAsset = (paramName, paramValue) => {
+  let asset;
+  switch (paramName) {
+    case 'title':
+      asset = {
+        id: 0,
+        required: paramValue.required,
+        title: { len: paramValue.len }
+      }
+      break;
+    case 'cta':
+      asset = {
+        id: 1,
+        required: paramValue.required,
+        data: { type: 12 }
+      }
+      break;
+    case 'icon':
+      asset = {
+        id: 2,
+        required: paramValue.required,
+        img: { type: 1, w: paramValue.sizes[0], h: paramValue.sizes[1] }
+      }
+      break;
+    case 'image':
+      asset = {
+        id: 3,
+        required: paramValue.required,
+        img: { type: 3, w: paramValue.sizes[0], h: paramValue.sizes[1] }
+      }
+      break;
+    case 'body':
+      asset = {
+        id: 4,
+        required: paramValue.required,
+        data: { type: 2 }
+      }
+      break;
+    case 'sponsoredBy':
+      asset = {
+        id: 5,
+        required: paramValue.required,
+        data: { type: 1 }
+      }
+      break;
+  }
+  return asset;
+}
+
+/**
+ * @param {object} slot Ad Unit Params by Prebid
+ * @returns {object} native object that conforms to ortb native ads spec
+ */
+const mapNative = slot => {
+  const native = utils.deepAccess(slot, 'mediaTypes.native');
+  let assets;
+  if (native) {
+    const nativeParams = Object.keys(native);
+    assets = [];
+    nativeParams.forEach(par => {
+      const newAsset = mapAsset(par, native[par]);
+      if (newAsset) { assets.push(newAsset) };
+    });
+  }
+  return assets ? { request: JSON.stringify({ native: { assets } }) } : undefined;
+}
+
+var mapVideo = slot => {
+  var video = utils.deepAccess(slot, 'mediaTypes.video');
+  var videoParamsUsed = ['api', 'context', 'linearity', 'maxduration', 'mimes', 'protocols'];
+  var videoAssets;
+
+  if (video) {
+    var videoParams = Object.keys(video);
+    var playerSize = video.playerSize;
+    videoAssets = {}; // player width / height
+
+    if (playerSize) {
+      var maxSize = playerSize.reduce(function (prev, next) {
+        return next[0] >= prev[0] && next[1] >= prev[1] ? next : prev;
+      }, [1, 1]);
+      videoAssets.w = maxSize[0];
+      videoAssets.h = maxSize[1];
+    } // remaining supported params
+
+    videoParams.forEach(function (par) {
+      if (videoParamsUsed.indexOf(par) >= 0) {
+        videoAssets[par] = video[par];
+      }
+
+      ;
+    });
+  }
+
+  return videoAssets;
+};
+
 const mapImpression = slot => {
   const { adUnitCode, bidId, params = {}, ortb2Imp = {} } = slot;
   const { id, siteId } = params;
@@ -165,32 +267,100 @@ const mapImpression = slot => {
      send this info as ext.pbsize
   */
   const slotSize = slot.sizes.length ? slot.sizes.reduce((prev, next) => prev[0] * prev[1] <= next[0] * next[1] ? next : prev).join('x') : '1x1';
-  adSizesCalled[slotSize] = adSizesCalled[slotSize] ? adSizesCalled[slotSize] + 1 : 1;
+  adSizesCalled[slotSize] = adSizesCalled[slotSize] ? adSizesCalled[slotSize] += 1 : 1;
   ext.data = Object.assign({ pbsize: `${slotSize}_${adSizesCalled[slotSize]}` }, ext.data);
 
   const imp = {
     id: id && siteId ? id : 'bidid-' + bidId,
     banner: mapBanner(slot),
-    // native: mapNative(slot),
+    native: mapNative(slot),
+    video: mapVideo(slot),
     tagid: adUnitCode,
     ext,
   };
 
   // Check floorprices for this imp
   if (typeof slot.getFloor === 'function') {
-    let bannerFloor = 0;
-    // sspBC adapter accepts only floor per imp - check for maximum value for requested ad types and sizes
+    var bannerFloor = 0;
+    var nativeFloor = 0;
+    var videoFloor = 0; // sspBC adapter accepts only floor per imp - check for maximum value for requested ad types and sizes
+
     if (slot.sizes.length) {
-      bannerFloor = slot.sizes.reduce((prev, next) => {
-        const currentFloor = slot.getFloor({ mediaType: 'banner', size: next }).floor;
+      bannerFloor = slot.sizes.reduce(function (prev, next) {
+        var currentFloor = slot.getFloor({
+          mediaType: 'banner',
+          size: next
+        }).floor;
         return prev > currentFloor ? prev : currentFloor;
       }, 0);
     }
-    imp.bidfloor = bannerFloor;
+
+    nativeFloor = slot.getFloor({
+      mediaType: 'native'
+    });
+    videoFloor = slot.getFloor({
+      mediaType: 'video'
+    });
+    imp.bidfloor = Math.max(bannerFloor, nativeFloor, videoFloor);
   }
   return imp;
 }
 
+const isVideoAd = bid => {
+  const xmlTester = new RegExp(/^<\?xml/);
+  return bid.adm && bid.adm.match(xmlTester);
+}
+
+const isNativeAd = bid => {
+  const xmlTester = new RegExp(/^{['"]native['"]/);
+
+  return bid.adm && bid.adm.match(xmlTester);
+}
+
+const parseNative = nativeData => {
+  const result = {};
+  nativeData.assets.forEach(asset => {
+    const id = parseInt(asset.id);
+    switch (id) {
+      case 0:
+        result.title = asset.title.text;
+        break;
+      case 2:
+        result.icon = {
+          url: asset.img.url,
+          width: asset.img.w,
+          height: asset.img.h,
+        };
+        break;
+      case 3:
+        result.image = {
+          url: asset.img.url,
+          width: asset.img.w,
+          height: asset.img.h,
+        };
+        break;
+      case 4:
+        result.body = asset.data.value;
+        break;
+      case 5:
+        result.sponsoredBy = asset.data.value;
+        break;
+
+      default:
+        utils.logWarn('Unrecognized native asset', asset);
+    }
+  });
+  result.clickUrl = nativeData.link.url;
+  result.impressionTrackers = nativeData.imptrackers;
+
+  if (utils.isArray(nativeData.jstracker)) {
+    result.javascriptTrackers = nativeData.jstracker;
+  } else if (nativeData.jstracker) {
+    result.javascriptTrackers = [nativeData.jstracker];
+  }
+  return result;
+}
+
 const renderCreative = (site, auctionId, bid, seat, request) => {
   let gam;
 
@@ -243,6 +413,7 @@ const renderCreative = (site, auctionId, bid, seat, request) => {
   <script>
   window.rekid = ${site.id};
   window.slot = ${parseInt(site.slot, 10)};
+  window.responseTimestamp = ${Date.now()};
   window.wp_sn = "${site.sn}";
   window.mcad = JSON.parse(decodeURI(atob("${mcbase}")));
   window.gdpr = ${JSON.stringify(request.gdprConsent)};
@@ -268,7 +439,7 @@ const renderCreative = (site, auctionId, bid, seat, request) => {
 const spec = {
   code: BIDDER_CODE,
   aliases: [],
-  supportedMediaTypes: [BANNER],
+  supportedMediaTypes: [BANNER, NATIVE, VIDEO],
   isBidRequestValid(bid) {
     // as per OneCode integration, bids without params are valid
     return true;
@@ -377,15 +548,39 @@ const spec = {
               width: w,
               height: h,
               bidderCode: BIDDER_CODE,
-              mediaType: 'banner',
               meta: {
                 advertiserDomains: adomain,
                 networkName: seat,
               },
               netRevenue: true,
-              ad: renderCreative(site, response.id, serverBid, seat, bidderRequest),
             };
 
+            // mediaType and ad data for instream / native / banner
+            if (isVideoAd(serverBid)) {
+              // video
+              bid.adType = 'instream';
+              bid.mediaType = 'video';
+              bid.vastXml = serverBid.adm;
+              bid.vastContent = serverBid.adm;
+            } else if (isNativeAd(serverBid)) {
+              // native
+              bid.mediaType = 'native';
+              // check native object
+              try {
+                const nativeData = JSON.parse(serverBid.adm).native;
+                bid.native = parseNative(nativeData);
+                bid.width = 1;
+                bid.height = 1;
+              } catch (err) {
+                utils.logWarn('Could not parse native data', serverBid.adm);
+                bid.cpm = 0;
+              }
+            } else {
+              // banner ad (default)
+              bid.mediaType = 'banner';
+              bid.ad = renderCreative(site, response.id, serverBid, seat, bidderRequest);
+            }
+
             if (bid.cpm > 0) {
               bids.push(bid);
             }
diff --git a/modules/sspBCBidAdapter.md b/modules/sspBCBidAdapter.md
index 1678f3be594..0da84857cbf 100644
--- a/modules/sspBCBidAdapter.md
+++ b/modules/sspBCBidAdapter.md
@@ -7,7 +7,7 @@ Maintainer: wojciech.bialy@grupawp.pl
 # Description
 
 Module that connects to Wirtualna Polska Media header bidding endpoint to fetch bids.
-Only banner format is supported.
+Supports Banner, Video (instream) and Native formats 
 Supported currencies: USD, EUR, PLN
 
 Required parameters:
diff --git a/test/spec/modules/sspBCBidAdapter_spec.js b/test/spec/modules/sspBCBidAdapter_spec.js
index ae27cf8deea..75a269c93f7 100644
--- a/test/spec/modules/sspBCBidAdapter_spec.js
+++ b/test/spec/modules/sspBCBidAdapter_spec.js
@@ -40,13 +40,6 @@ describe('SSPBC adapter', function () {
       bidderRequestId,
       bidId: auctionId + '1',
       transactionId,
-      ortb2Imp: {
-        ext: {
-          data: {
-            pbadslot: 'test_wideboard'
-          }
-        }
-      }
     },
     {
       adUnitCode: 'test_rectangle',
@@ -69,28 +62,6 @@ describe('SSPBC adapter', function () {
       bidderRequestId,
       bidId: auctionId + '2',
       transactionId,
-    },
-    {
-      adUnitCode: 'test_rectangle_2',
-      bidder: BIDDER_CODE,
-      mediaTypes: {
-        banner: {
-          sizes: [
-            [300, 250]
-          ]
-        }
-      },
-      sizes: [
-        [300, 250]
-      ],
-      params: {
-        id: '011',
-        siteId: '8816',
-      },
-      auctionId,
-      bidderRequestId,
-      bidId: auctionId + '3',
-      transactionId,
     }
     ];
     const bid_OneCode = {
@@ -115,6 +86,67 @@ describe('SSPBC adapter', function () {
       bidId: auctionId + '1',
       transactionId,
     };
+    const bid_native = {
+      adUnitCode: 'test_native',
+      bidder: BIDDER_CODE,
+      mediaTypes: {
+        native: {
+          image: {
+            required: true,
+            sizes: [150, 50],
+          },
+          title: {
+            required: true,
+            len: 80
+          },
+          sponsoredBy: {
+            required: true,
+          },
+          clickUrl: {
+            required: true,
+          },
+          privacyLink: {
+            required: false,
+          },
+          body: {
+            required: true,
+          },
+          icon: {
+            required: true,
+            sizes: [50, 50]
+          }
+        }
+      },
+      sizes: [
+        [1, 1],
+      ],
+      auctionId,
+      bidderRequestId,
+      bidId: auctionId + '1',
+      transactionId,
+    };
+    const bid_video = {
+      adUnitCode: 'test_video',
+      bidder: BIDDER_CODE,
+      mediaTypes: {
+        video: {
+          context: 'instream',
+          playerSize: [[640, 480]],
+          mimes: ['video/mp4', 'video/x-ms-wmv', 'video/webm', 'video/3gpp', 'application/javascript'],
+          protocols: [2, 3, 5, 6],
+          api: [2],
+          maxduration: 30,
+          linearity: 1
+        }
+      },
+      sizes: [
+        [640, 480],
+      ],
+      auctionId,
+      bidderRequestId,
+      bidId: auctionId + '1',
+      transactionId,
+    };
     const bids_timeouted = [{
       adUnitCode: 'test_wideboard',
       bidder: BIDDER_CODE,
@@ -193,6 +225,30 @@ describe('SSPBC adapter', function () {
         stack: ['https://test.site.pl/'],
       }
     };
+    const bidRequestNative = {
+      auctionId,
+      bidderCode: BIDDER_CODE,
+      bidderRequestId,
+      bids: [bid_native],
+      gdprConsent,
+      refererInfo: {
+        reachedTop: true,
+        referer: 'https://test.site.pl/',
+        stack: ['https://test.site.pl/'],
+      }
+    };
+    const bidRequestVideo = {
+      auctionId,
+      bidderCode: BIDDER_CODE,
+      bidderRequestId,
+      bids: [bid_video],
+      gdprConsent,
+      refererInfo: {
+        reachedTop: true,
+        referer: 'https://test.site.pl/',
+        stack: ['https://test.site.pl/'],
+      }
+    };
     const bidRequestOneCode = {
       auctionId,
       bidderCode: BIDDER_CODE,
@@ -264,21 +320,6 @@ describe('SSPBC adapter', function () {
           }],
           'seat': 'dsp2',
           'group': 0
-        }, {
-          'bid': [{
-            'id': '2d766853-ea07-4529-8299-5f0ebaddfaza',
-            'impid': '011',
-            'siteid': '8816',
-            'slotid': '011',
-            'price': 2,
-            'adm': 'AD CODE 3',
-            'cid': '57745',
-            'crid': '858253',
-            'w': 300,
-            'h': 250
-          }],
-          'seat': 'dsp3',
-          'group': 0
         }],
         'cur': 'PLN'
       }
@@ -335,6 +376,58 @@ describe('SSPBC adapter', function () {
         'cur': 'PLN'
       }
     };
+    const serverResponseVideo = {
+      'body': {
+        'id': auctionId,
+        'seatbid': [{
+          'bid': [{
+            'id': '3347324c-6889-46d2-a800-ae78a5214c06',
+            'impid': 'bidid-' + auctionId + '1',
+            'price': 1,
+            'adid': 'lxHWkB7OnZeso3QiN1N4',
+            'nurl': '',
+            'adm': '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><VAST version=\"3.0\"><Ad id=\"12345\"><Wrapper><AdSystem version=\"3.0\">adnxs</AdSystem><VASTAdTagURI><![CDATA[https://video.tag.uri]]></VASTAdTagURI><Impression><![CDATA[https://video.tag.tracker]]></Impression><Creatives><Creative adID=\"305683174\"><Linear></Linear></Creative></Creatives></Wrapper></Ad></VAST>',
+            'adomain': ['adomain.pl'],
+            'cid': 'BZ4gAg21T5nNtxlUCDSW',
+            'crid': 'lxHWkB7OnZeso3QiN1N4',
+            'w': 640,
+            'h': 480,
+            'ext': {
+              'siteid': '8816',
+              'slotid': '150',
+            },
+          }],
+          'seat': 'dsp1',
+          'group': 0
+        }],
+        'cur': 'PLN'
+      }
+    };
+    const serverResponseNative = {
+      'body': {
+        'id': auctionId,
+        'seatbid': [{
+          'bid': [{
+            'id': '3347324c-6889-46d2-a800-ae78a5214c06',
+            'impid': 'bidid-' + auctionId + '1',
+            'price': 1,
+            'adid': 'lxHWkB7OnZeso3QiN1N4',
+            'nurl': '',
+            'adm': '{\"native\":{\"assets\":[{\"id\":3,\"img\":{\"url\":\"native_image\",\"w\":300,\"h\":150}},{\"id\":2,\"img\":{\"url\":\"native_icon\",\"w\":50,\"h\":50}},{\"id\":0,\"title\":{\"text\":\"native_title\"}},{\"id\":5,\"data\":{\"value\":\"native adomain\"}},{\"id\":4,\"data\":{\"value\":\"native_text\"}}],\"link\":{\"url\":\"native_url\"},\"imptrackers\":[\"native_tracker\"]}}',
+            'adomain': ['adomain.pl'],
+            'cid': 'BZ4gAg21T5nNtxlUCDSW',
+            'crid': 'lxHWkB7OnZeso3QiN1N4',
+            'ext': {
+              'siteid': '8816',
+              'slotid': '80',
+            },
+          }],
+          'seat': 'dsp1',
+          'group': 0
+        }],
+        'cur': 'PLN'
+      }
+    };
     const emptyResponse = {
       'body': {
         'id': auctionId,
@@ -345,14 +438,20 @@ describe('SSPBC adapter', function () {
       bids,
       bids_test,
       bids_timeouted,
+      bid_native,
+      bid_video,
       bidRequest,
       bidRequestOneCode,
       bidRequestSingle,
+      bidRequestNative,
+      bidRequestVideo,
       bidRequestTest,
       bidRequestTestNoGDPR,
       serverResponse,
       serverResponseOneCode,
       serverResponseSingle,
+      serverResponseVideo,
+      serverResponseNative,
       emptyResponse
     };
   };
@@ -377,14 +476,15 @@ describe('SSPBC adapter', function () {
   });
 
   describe('buildRequests', function () {
-    const { bids, bidRequest, bidRequestSingle } = prepareTestData();
+    const { bids, bid_native, bid_video, bidRequest, bidRequestSingle, bidRequestNative, bidRequestVideo } = prepareTestData();
     const request = spec.buildRequests(bids, bidRequest);
     const requestSingle = spec.buildRequests([bids[0]], bidRequestSingle);
+    const requestNative = spec.buildRequests([bid_native], bidRequestNative);
+    const requestVideo = spec.buildRequests([bid_video], bidRequestVideo);
     const payload = request ? JSON.parse(request.data) : { site: false, imp: false };
-    const payloadSingle = request ? JSON.parse(requestSingle.data) : { site: false, imp: false };
-    const payloadExt0 = payload.imp ? payload.imp[0].ext : {};
-    const payloadExt1 = payload.imp ? payload.imp[1].ext : {};
-    const payloadExt2 = payload.imp ? payload.imp[2].ext : {};
+    const payloadSingle = requestSingle ? JSON.parse(requestSingle.data) : { site: false, imp: false };
+    const payloadNative = requestNative ? JSON.parse(requestNative.data) : { site: false, imp: false };
+    const payloadVideo = requestVideo ? JSON.parse(requestVideo.data) : { site: false, imp: false };
 
     it('should send bid request to endpoint via POST', function () {
       expect(request.url).to.contain(BIDDER_URL);
@@ -401,17 +501,6 @@ describe('SSPBC adapter', function () {
       expect(payloadSingle.imp.length).to.equal(1);
     });
 
-    it('should add first party data (pbslot)', function () {
-      expect(payloadExt0.data).to.be.an('object').and.to.have.property('pbadslot');
-    });
-
-    it('should add maximum size of adunit, and how many times this size has been requested (pbsize)', function () {
-      expect(payloadExt0.data).to.be.an('object').and.to.have.property('pbsize');
-      expect(payloadExt0.data.pbsize).to.equal('750x200_1');
-      expect(payloadExt1.data.pbsize).to.equal('300x250_1');
-      expect(payloadExt2.data.pbsize).to.equal('300x250_2');
-    });
-
     it('should save bidder request data', function () {
       expect(request.bidderRequest).to.deep.equal(bidRequest);
     });
@@ -428,13 +517,49 @@ describe('SSPBC adapter', function () {
       expect(payload.regs).to.be.an('object').and.to.have.property('[ortb_extensions.gdpr]', 1);
       expect(payload.user).to.be.an('object').and.to.have.property('[ortb_extensions.consent]', bidRequest.gdprConsent.consentString);
     });
+
+    it('should build correct native payload', function () {
+      const nativeAssets = payloadNative.imp && payloadNative.imp[0].native.request;
+
+      expect(payloadNative.imp.length).to.equal(1);
+      expect(nativeAssets).to.contain('{"id":0,"required":true,"title":{"len":80}}');
+      expect(nativeAssets).to.contain('{"id":2,"required":true,"img":{"type":1,"w":50,"h":50}}');
+      expect(nativeAssets).to.contain('{"id":3,"required":true,"img":{"type":3,"w":150,"h":50}}');
+      expect(nativeAssets).to.contain('{"id":4,"required":true,"data":{"type":2}');
+      expect(nativeAssets).to.contain('{"id":5,"required":true,"data":{"type":1}');
+    });
+
+    it('should build correct video payload', function () {
+      const videoAssets = payloadVideo.imp && payloadVideo.imp[0].video;
+
+      expect(payloadVideo.imp.length).to.equal(1);
+      expect(videoAssets).to.have.property('w').that.equals(640);
+      expect(videoAssets).to.have.property('h').that.equals(480);
+      expect(videoAssets).to.have.property('context').that.equals('instream');
+      expect(videoAssets).to.have.property('maxduration').that.equals(30);
+      expect(videoAssets).to.have.property('linearity').that.equals(1);
+      expect(videoAssets).to.have.property('mimes').that.is.an('array');
+      expect(videoAssets).to.have.property('protocols').that.is.an('array');
+      expect(videoAssets).to.have.property('api').that.is.an('array');
+    });
+
+    it('should create auxilary placement identifier (size_numUsed)', function () {
+      const extAssets1 = payload.imp && payload.imp[0].ext.data;
+      const extAssets2 = payloadSingle.imp && payloadSingle.imp[0].ext.data;
+
+      // note that payload comes from first, and payloadSingle from second auction in the test run
+      expect(extAssets1).to.have.property('pbsize').that.equals('750x200_1')
+      expect(extAssets2).to.have.property('pbsize').that.equals('750x200_2')
+    });
   });
 
   describe('interpretResponse', function () {
-    const { bid_OneCode, bids, emptyResponse, serverResponse, serverResponseOneCode, serverResponseSingle, bidRequest, bidRequestOneCode, bidRequestSingle } = prepareTestData();
+    const { bid_OneCode, bid_video, bid_native, bids, emptyResponse, serverResponse, serverResponseOneCode, serverResponseSingle, serverResponseVideo, serverResponseNative, bidRequest, bidRequestOneCode, bidRequestSingle, bidRequestVideo, bidRequestNative } = prepareTestData();
     const request = spec.buildRequests(bids, bidRequest);
     const requestSingle = spec.buildRequests([bids[0]], bidRequestSingle);
     const requestOneCode = spec.buildRequests([bid_OneCode], bidRequestOneCode);
+    const requestVideo = spec.buildRequests([bid_video], bidRequestVideo);
+    const requestNative = spec.buildRequests([bid_native], bidRequestNative);
 
     it('should handle nobid responses', function () {
       let result = spec.interpretResponse(emptyResponse, request);
@@ -476,7 +601,30 @@ describe('SSPBC adapter', function () {
       expect(adcode).to.contain('window.mcad');
       expect(adcode).to.contain('window.gdpr');
       expect(adcode).to.contain('window.page');
-    })
+    });
+
+    it('should create a correct video bid', function () {
+      let resultVideo = spec.interpretResponse(serverResponseVideo, requestVideo);
+
+      expect(resultVideo.length).to.equal(1);
+
+      let videoBid = resultVideo[0];
+      expect(videoBid).to.have.keys('adType', 'bidderCode', 'cpm', 'creativeId', 'currency', 'width', 'height', 'meta', 'mediaType', 'netRevenue', 'requestId', 'ttl', 'vastContent', 'vastXml');
+      expect(videoBid.adType).to.equal('instream');
+      expect(videoBid.mediaType).to.equal('video');
+      expect(videoBid.vastXml).to.match(/^<\?xml.*<\/VAST>$/);
+      expect(videoBid.vastContent).to.match(/^<\?xml.*<\/VAST>$/);
+    });
+
+    it('should create a correct native bid', function () {
+      let resultNative = spec.interpretResponse(serverResponseNative, requestNative);
+
+      expect(resultNative.length).to.equal(1);
+
+      let nativeBid = resultNative[0];
+      expect(nativeBid).to.have.keys('bidderCode', 'cpm', 'creativeId', 'currency', 'width', 'height', 'meta', 'mediaType', 'netRevenue', 'requestId', 'ttl', 'native');
+      expect(nativeBid.native).to.have.keys('image', 'icon', 'title', 'sponsoredBy', 'body', 'clickUrl', 'impressionTrackers');
+    });
   });
 
   describe('getUserSyncs', function () {
