Dynamic flooring helps protect the inventory against low quality ads, falling CPMs and with the right optimization increases revenue significantly.
The Assertive Yield Flooring is built for first price auctions with the goal to support all major platforms, providing transparency to DSPs resulting better results than what is possible within GAM and UPRs.
v2 is completely different to v1. Configuration should start from scratch. The new version is more flexible and supports more use cases. The new version is also more accurate and provides better results as well as reporting.
Support for Floor Mappings as well as LineItem based floors is dropped, due to the increased availability and adoption of Unified Pricing Rules (UPRs) and the Prebid Flooring Module.
2.25.0
ay_floor
key/value (reportable)ay_hash
key/value (custom dimension) -> please reach out if not possible for the instructions of how to set it up with Reportable Key/Values instead.!! IMPORTANT !! Setups with randomly generated slotId's/prebid adUnitCodes are not supported out of the box, please let us know if this is the case on your site. If you are unsure you can run a Placement report (https://suite.assertiveyield.com/view/placements) -> if it returns thousands of rows it is the case.
Floors need to be set before the auction is initialized. For this to work the order of loading scripts is important and needs to be:
The scripts can be loaded async. If they are not available in time floors will be skipped for the first pageview/auction. On following pageviews and auctions the files are available right away due to the browser cache.
If you prefer us to set up the Key/Values and UPRs for you, please reach out to your point of contact.
Self setup:
ay_floor
with the values below and Include values in reporting
ticked.Custom Targeting
, and to change the Pricing Option to Set floor prices
with the respected floor.0.00
0.05
0.10
0.15
0.20
0.25
0.30
0.35
0.40
0.45
0.50
0.55
0.60
0.65
0.70
0.75
0.80
0.85
0.90
0.95
1.00
1.05
1.10
1.15
1.20
1.25
1.30
1.35
1.40
1.45
1.50
1.55
1.60
1.65
1.70
1.75
1.80
1.85
1.90
1.95
2.00
2.05
2.10
2.15
2.20
2.25
2.30
2.35
2.40
2.45
2.50
2.55
2.60
2.65
2.70
2.75
2.80
2.85
2.90
2.95
3.00
priceFloors
is available (you can check installed modules by executing pbjs.installedModules
in the browser console)pbjs.setConfig({ floors: {} });
Note: It has to be an empty {}
since we are taking care of all the other configuration dynamically.
Before sending the slot object to Amazons fetchBids
call please send them to AY for floor enrichment. Example:
if (assertive && assertive.addAmazonFloors) {
amazonSlots = assertive.addAmazonFloors(amazonSlots);
}
apstag.fetchBids({ slots: amazonSlots }, function (bids) {
// ...
});
To enable dynamic flooring, set assertive.floor.enabled
option to true
and the assertive.floor.limit.percentage
according to your traffic (please consult).
You may want to limit the floors to specific slots, in this case you can set the assertive.floor.limit.slotIds
to an array of slotIds.
Full config:
window.assertive.floor = {
enabled: true,
currency: "USD", // Currency used by the Ad Server (GAM) (default "USD")
prebid: true, // Enable Prebid Floors (default true)
priceBuckets: { min: 0, max: 3, increment: 0.05 }, // Price Buckets for GAM UPRs (default {min: 0, max: 3, increment: 0.05})
addToHashKey: true, // Add the floor to the hash key for accurate attribution (default true)
limit: {
slotIds: ["...", "..."], // Whitelist of slotIds to enabled reduction on (default all)
percentage: 0.9, // Run on 90% of the users (default 98%)
},
};
Note: enabling flooring force enables the tracking of unfilled impressions as these are required for the optimization and evaluation of the winning strategies.
Note: This is not a drop in example, please check the other pages for the details of each part.
<script>
window.assertive = {
entityId: "< your entity id >", // your entity id from the dashboard see: https://suite.assertiveyield.com/welcome
analytics: {
logUnfilled: true, // enable unfilled logging for a better comparison
},
};
window.assertive.hash = {
generator: "server",
values: 5000,
key: function () {
return [localStorage.getItem("ay_utm_s")].join("|");
},
};
window.assertive.floor = {
enabled: true,
currency: "USD", // Currency used by the Ad Server (GAM) (default "USD")
prebid: true, // Enable Prebid Floors (default true)
priceBuckets: { min: 0, max: 3, increment: 0.05 }, // Price Buckets for GAM UPRs (default {min: 0, max: 3, increment: 0.05})
addToHashKey: true, // Add the floor to the hash key for accurate attribution (default true)
limit: {
percentage: 0.4, // Run on 40% of the users (default 98%)
},
};
</script>
<script async src="https://< your entity id >.ay.delivery/floorPrice/< your entity id >/js/floorPrice/linreg.min.js"></script>
<script src="https://< your entity id >.ay.delivery/client-v2.js" async></script>
Discover helpful resources for deep-dive industry knowledge
Experience faster and more effective assistance with our exclusive AY support
With comprehensive courses and recognizable certificates, take your next steps with us.
Browse an extensive list of industry-related buzzwords and find answers to your questions.
What's new on AY? This collection is an overview of new products and features release in AY tools.