Hybrid.ai

Features

Bidder CodehybridPrebid.org Memberno
Media Typesdisplay, videoGDPR Supportyes
User IDsnoneCOPPA Supportno

"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_hybridhb_bidder_hybridhb_adid_hybrid
hb_size_hybridhb_source_hybridhb_format_hybrid
hb_cache_host_hybridhb_cache_id_hybridhb_uuid_hybrid

"Deal ID" Ad Server Key

hb_deal_hybrid

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://www.googletagservices.com/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>