Back to Bidders

AFP

Features

Bidder Code afp Prebid.org Member no
Media Types display, video GDPR TCF Support no
User IDs none USP/CCPA Support no
Supply Chain Support no COPPA Support no
Demand Chain Support no Safeframes OK no
Supports Deals check with bidder Prebid.js Adapter yes
IAB GVL ID check with bidder Prebid Server Adapter no
Floors Module Support no First Party Data Support check with bidder
Multi Format Support check with bidder ORTB Blocking Support check with bidder

"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_afp hb_bidder_afp hb_adid_afp
hb_size_afp hb_source_afp hb_format_afp
hb_cache_host_afp hb_cache_id_afp hb_uuid_afp
hb_cache_path_afp hb_deal_afp

Note

You can use this adapter to get a bid from AFP. Please reach out to your AFP 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 Place id. ‘5af45ad34d506ee7acad0c26’ string
placeType required Place type. ‘In-image’, ‘In-image Max’, ‘In-content Banner’, ‘In-content Video’, ‘Out-content Video’, ‘In-content Stories’, ‘Action Scroller’, ‘Action Scroller Light’, ‘Just Banner’ string
placeContainer required (if the frame is not safe) The container of the place where the ad will be displayed. The css selector is specified as the value. ‘#container’ string
imageUrl required (for ‘In-image’, ‘In-image Max’ placeType) URL of the image on which the banner will be displayed. ‘https://creative.astraone.io/files/default_image-1-600x400.jpg’ string
imageWidth required (for ‘In-image’, ‘In-image Max’ placeType) Image width. 600 integer
imageHeight required (for ‘In-image’, ‘In-image Max’ placeType) Image height. 400 integer

InImage Example page

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Prebid.js In-image Example</title>
	<script async src="prebid.js"></script>
	<script>
		var adUnits = [{
			code: 'iib-target',
			mediaTypes: {
				banner: {
					sizes: [0, 0],
				}
			},
			bids: [{
				bidder: "afp",
				params: {
					placeType: "In-image",
					placeId: "613221112871613d1517d181",
					placeContainer: '#iib-container',
					imageUrl: "https://rtbinsight.ru/content/images/size/w1000/2021/05/ximage-30.png.pagespeed.ic.IfuX4zAEPP.png",
					imageWidth: 1000,
					imageHeight: 524,
				}
			}]
		},{
			code: 'jb-target',
			mediaTypes: {
				banner: {
					sizes: [[300, 250]],
				}
			},
			bids: [{
				bidder: "afp",
				params: {
					placeType: "Just Banner",
					placeId: "6139ae832871613d1517dee9", // id from personal account
					placeContainer: '#jb-container',
				}
			}]
		}];
		
		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("iib-target");
					var iframe = document.getElementById("iib-target");
					
					if (params && params['hb_adid']) {
						pbjs.renderAd(iframe.contentDocument, params['hb_adid']);
					}
					
					params = pbjs.getAdserverTargetingForAdUnitCode("jb-target");
					iframe = document.getElementById("jb-target");
					
					if (params && params['hb_adid']) {
						pbjs.renderAd(iframe.contentDocument, params['hb_adid']);
					}
				}
			});
		});
	</script>
</head>
<body>
<h2>In-image</h2>
<div class="container-wrapper">
	<div id="iib-container" style="max-width: 600px;">
		<img src="https://creative.astraone.io/files/default_image-1-600x400.jpg" width="100%" />
	</div>
	<iframe id="iib-target" style="display: none;"></iframe>
</div>

<h2>Just Banner</h2>
<div class="container-wrapper">
	<div id="jb-container"></div>
	<iframe id="jb-target" style="display: none;"></iframe>
</div>
</body>
</html>

InImage Example page with GPT

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Prebid.js In-image Example</title>
	<script async src="https://www.googletagservices.com/tag/js/gpt.js"></script>
	<script async src="prebid.js"></script>
	<script>
		var adUnits = [{
			code: 'div-gpt-ad-1574864639578-0',
			mediaTypes: {
				banner: {
					sizes: [0, 0],
				}
			},
			bids: [{
				bidder: "afp",
				params: {
					placeType: "In-image",
					placeId: "613221112871613d1517d181",
					placeContainer: '#iib-container',
					imageUrl: "https://rtbinsight.ru/content/images/size/w1000/2021/05/ximage-30.png.pagespeed.ic.IfuX4zAEPP.png",
					imageWidth: 600,
					imageHeight: 400,
				}
			}]
		}];
		
		var pbjs = pbjs || {};
		pbjs.que = pbjs.que || [];
		
		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('/19968336/header-bid-tag-0', [300, 250], 'div-gpt-ad-1574864639578-0')
				.addService(googletag.pubads());
			googletag.pubads().enableSingleRequest();
			googletag.enableServices();
		});
	</script>
</head>
<body>
<h2>In-image</h2>
<div class="container-wrapper">
	<div id="iib-container" style="width: 600px;">
		<img src="https://creative.astraone.io/files/default_image-1-600x400.jpg" width="100%" />
	</div>
	<div id="div-gpt-ad-1574864639578-0">
		<script type="text/javascript">
			googletag.cmd.push(function() {
				googletag.display('div-gpt-ad-1574864639578-0');
			});
		</script>
	</div>
</div>
</body>
</html>                   

Back to Bidders