Hybrid.ai
Features
| Bidder Code | hybrid | Prebid.org Member | no | 
|---|---|---|---|
| Prebid.js Adapter | yes | Prebid Server Adapter | no | 
| Media Types | display, video | Multi Format Support | check with bidder | 
| TCF-EU Support | no | IAB GVL ID | check with bidder | 
| GPP Support | check with bidder | DSA Support | check with bidder | 
| USP/CCPA Support | check with bidder | COPPA Support | check with bidder | 
| Supply Chain Support | check with bidder | Demand Chain Support | check with bidder | 
| Safeframes OK | check with bidder | Supports Deals | check with bidder | 
| Floors Module Support | check with bidder | First Party Data Support | check with bidder | 
| User IDs | none | ORTB Blocking Support | check with bidder | 
| Privacy Sandbox | check with bidder | 
Note
You can use this adapter to get a bid from Hybrid.ai Please reach out to your Hybrid.ai account team before using this plugin to get placeId. The code below returns a demo ad.
Bid Params
| Name | Scope | Description | Example | Type | 
|---|---|---|---|---|
| placeId | required | The place id. | ‘5af45ad34d506ee7acad0c26’ | string | 
| placement | required | Adunit placement, possible values: banner, video, inImage | ‘banner’ | string | 
| imageUrl | required for inImage | URL of the image on which the banner will be displayed | 'https://hybrid.ai/images/image.jpg' | string | 
Sample Banner Ad Unit
var adUnits = [{
    code: 'banner_ad_unit',
    mediaTypes: {
        banner: {
            sizes: [[728, 90]]
        }
    },
    bids: [{
        bidder: "hybrid",
        params: {
            placement: "banner",                  // required
            placeId: "5af45ad34d506ee7acad0c26"   // required
        }
    }]
}];
Sample Video Ad Unit
var adUnits = [{
    code: 'video_ad_unit',
    mediaTypes: {
        video: {
            context: 'outstream',    // required, possible values: instream, outstream 
            playerSize: [640, 480]   // required
        }
    },
    bids: [{
        bidder: 'hybrid',
        params: {
            placement: "video",                   // required
            placeId: "5af45ad34d506ee7acad0c26"   // required
        }
    }]
}];
Sample In-Image Ad Unit
var adUnits = [{
    code: 'test-div',
    mediaTypes: {
        banner: {
            sizes: [0, 0]
        }
    },
    bids: [{
        bidder: "hybrid",
        params: {
            placement: "inImage",
            placeId: "102030405060708090000020",
            imageUrl: "https://hybrid.ai/images/image.jpg"
        }
    }]
}];
Example page with In-Image
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Prebid.js Banner Example</title>
  <script async src="prebid.js"></script>
  <style>
        .banner-block {
            position: absolute;
            width: 100%;
            height: 100%;
            top: 0;
            left: 0;
            z-index: 1;
            border: none;
            overflow: hidden;
        }
    </style>
    <script>
        var adUnits = [{
            code: 'test-div',
            mediaTypes: {
                banner: {
                    sizes: [0, 0]
                }
            },
            bids: [{
                bidder: "hybrid",
                params: {
                    placement: "inImage",
                    placeId: "102030405060708090000020",
                    imageUrl: "https://hybrid.ai/images/image.jpg"
                }
            }]
        }];
        var pbjs = pbjs || {};
        pbjs.que = pbjs.que || [];
        pbjs.que.push(function() {
            pbjs.addAdUnits(adUnits);
            pbjs.requestBids({
                bidsBackHandler: function (e) {
                    if (pbjs.adserverRequestSent) return;
                    pbjs.adserverRequestSent = true;
                    var params = pbjs.getAdserverTargetingForAdUnitCode("test-div");
                    var iframe = document.getElementById('test-div');
                    if (params && params['hb_adid']) {
                        iframe.parentElement.style.position = "relative";
                        iframe.style.display = "block";
                        pbjs.renderAd(iframe.contentDocument, params['hb_adid']);
                    }
                }
            });
        });
    </script>
</head>
<body>
  <h2>Prebid.js InImage Banner Test</h2>
  <div style="width: 600px;">
        <img src="https://hybrid.ai/images/image.jpg" />
        <iframe id='test-div' class="banner-block" style="display: none;"></iframe>
    </div>
</body>
</html>
Example page with In-Image and GPT
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Prebid.js Banner Example</title>
  <script async src="prebid.js"></script>
  <script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script>
  <style>
    .banner-block {
      position: absolute;
      width: 100%;
      height: 100%;
      top: 0;
      left: 0;
      z-index: 1;
      border: none;
      overflow: hidden;
    }
    .banner-block div {
      width: 100%;
      height: 100%;
    }
  </style>
  <script>
    var pbjs = pbjs || {};
    pbjs.que = pbjs.que || [];
    var adUnits = [{
      code: 'div-gpt-ad-1574864639578-0',
      mediaTypes: {
        banner: {
          sizes: [1, 1]
        }
      },
      bids: [{
        bidder: "hybrid",
        params: {
          placement: "inImage",
          placeId: "102030405060708090000020",
          imageUrl: "https://hybrid.ai/images/image.jpg"
        }
      }]
    }];
    var googletag = googletag || {};
    googletag.cmd = googletag.cmd || [];
    googletag.cmd.push(() => {
      googletag.pubads().disableInitialLoad();
    });
    pbjs.que.push(() => {
      pbjs.addAdUnits(adUnits);
      pbjs.requestBids({ bidsBackHandler: sendAdServerRequest });
    });
    function sendAdServerRequest() {
      googletag.cmd.push(() => {
        pbjs.que.push(() => {
          pbjs.setTargetingForGPTAsync('div-gpt-ad-1574864639578-0');
          googletag.pubads().refresh();
        });
      });
    }
    googletag.cmd.push(() => {
      googletag
        .defineSlot('/21877108735/rtb-pbjs', [1, 1], 'div-gpt-ad-1574864639578-0')
        .addService(googletag.pubads());
      googletag.pubads().enableSingleRequest();
      googletag.enableServices();
    });
  </script>
</head>
<body>
  <h2>Prebid.js Banner Ad Unit Test</h2>
  <div style="width: 600px; position: relative">
    <img src="https://hybrid.ai/images/image.jpg" />
    <div id='div-gpt-ad-1574864639578-0' class="banner-block">
      <script>
        googletag.cmd.push(() => { googletag.display('div-gpt-ad-1574864639578-0'); });
      </script>
    </div>
  </div>
</body>
</html>
"Send All Bids" Ad Server Keys
These are the bidder-specific keys that would be targeted within GAM in a Send-All-Bids scenario. GAM truncates keys to 20 characters.| hb_pb_hybrid | hb_bidder_hybrid | hb_adid_hybrid | 
| hb_size_hybrid | hb_source_hybrid | hb_format_hybrid | 
| hb_cache_host_hybrid | hb_cache_id_hybrid | hb_uuid_hybrid | 
| hb_cache_path_hybrid | hb_deal_hybrid |