Implement Fluid Ad Server
Request and Response Overview
ad request/response protocol the main pentaleap call is to an adserver like api is used to request and receive ads from connected demand sources ad unit ids are provided to you from your own publisher manager ui page context is passed by sharing information such as organic products, search queries and categories as relevant; you may also specify additional products and categories to be in scope for sponsorship sponsored products and display/sponsored brand ads follow a common request format (and we recommend that they are called together in one request), but have different responses (display and sponsored brand ads have additional assets, associated products etc) please see docid\ um7buris8l4nquvammt7r and docid 0ygbrfywwibirjyvu dah for the exact api specifications multiple ad units can be called in a single request, and sponsored product and display/sponsored brand type units are also called in the same request format for full specification, please check out the api specifications with examples for sponsored products and display ads in the respective sections important please check out the https //docs pentaleap com/fluid adserver api/faqs about the ad response section to understand some common behaviours and rules of the ad response please see docid\ ftw68c7hotfrqitdgxos7 for advice on calling the apis generally if your use case includes accessing real time third party demand, please also see the https //docs pentaleap com/fluid adserver api/for 3rd party demand implement warmup for demand source calls for specific use cases and recommendations, please see the docid\ qdd7ckicgdypa zmza3q section here is a sample ad request structure the response includes both sponsored product and display ads in batched call i e you can call multiple ad units at once, and those ad units can be both spa and display/sponsored brand ads { "user" { "id" "test" }, "adunitcontext" { //page context goes into adunitcontext it's shared by all ad units "searchquery" "shampoo", "products" \[ //ordered list of gtins/skus organically on the page max 200 (can contain multiple ui pages) { "gtin" "abc" }, { "gtin" "123" }, { "gtin" "def123" }, { "gtin" "345" }, { "gtin" "123" }, { "gtin" " " }, { "gtin" "xyz" } ] }, "adunits" \[ //max 6 per request { "adunitid" "\[spa ad unit id 1]"//search main grid }, { "adunitid" "\[display ad unit id 1]" //display above the fold search } ] } the response returns sponsored and in some cases organic content to be rendered, plus additional information required for rendering and reporting sample response { "adunits" \[ { "adunitid" "\[spa ad unit id 1]", //returns spa ad unit information + organic information "positions" \[ { "gtin" "string", "sponsored" false, "kind" "string", "ext" { "attr1" "val1", "attr2" "val2" } }, { "gtin" "string", "sponsored" true, "kind" "string", "beaconurls" \[ "string" ], "clickurls" \[ "string" ], "ext" { "attr1" "val1", "attr2" "val2" } }, { "adunitid" "\[display ad unit id 1]", //returns display ad unit information "positions" \[ { "banner" { "300x250" { "asseturl" "linktoasset com", "clickurls" \[ "https //trackerurl" ], "beaconurls" \[ "https //trackerurl" ], "ext" { "type" "image" } }, "970x250" { "asseturl" "linktoasset com", "clickurls" \[ "https //trackerurl" ], "beaconurls" \[ "https //trackerurl" ], "ext" { "type" "image", "adcopy" "this is an ad copy" } }, "dynamic" { "asseturl" "linktoasset com", "clickurls" \[ "https //trackerurl" ], "beaconurls" \[ "https //trackerurl" ], "ext" { //contains additional ad information for rendering display ad "type" "html image link" } } }, "kind" "display", "targeturl" "https //pentaleap com", "sponsored" true } ] } ] }