Skip to content

High Impact

High-impact groups allow mutually exclusive ad formats — such as skins, topscrolls, and midscrolls — to compete in a single auction across multiple placements. Only the highest CPM bid wins, renders in its native placement, and blocks companion placements. This enables premium, page-dominating creatives to compete fairly without conflicting with each other.

When Htag processes bids during an auction, it applies the following logic for high-impact bids:

  1. Bids that include a highImpact configuration are excluded from the normal per-placement auction.
  2. These bids are grouped by their highImpact.group value. All bids sharing the same group string compete against each other.
  3. The bid with the highest CPM within the group wins.
  4. The winning bid renders in its original placement.
  5. All placements listed in the winner’s companions array are blocked and will not render their own ads.
  6. Losing bids’ placements fall back to their normal (non-high-impact) bids, if any are available.

High-impact behavior is configured per bid using the highImpact field on the bid configuration object:

highImpact?: {
group: string;
companions: string[];
}
  • group: A string identifier that determines which bids compete against each other. All bids with the same group value participate in the same high-impact auction.
  • companions: An array of placement element IDs that should be blocked if this bid wins. These are placements that would conflict with the winning creative (e.g., a skin blocking sky placements).

Consider a page with three placements: a superbanner, a left sky, and a right sky. Two high-impact formats (skin and topscroll) compete for dominance, along with a sitebar bidder on the right sky.

// Superbanner placement with a skin bidder and a topscroll bidder
window.htag.api('1').definePlacement({
elementId: 'superbanner',
adUnitPath: '/123456/site/superbanner',
sizes: [[728, 90]],
mediaTypes: ['BANNER'],
preloadGroup: 'main',
bids: [
{
bidder: 'skinProvider',
params: { placementId: 'skin-1' },
sizes: [[728, 90]],
mediaTypes: ['BANNER'],
highImpact: {
group: 'hi',
companions: ['sky_left', 'sky_right'],
},
},
{
bidder: 'topscrollProvider',
params: { placementId: 'topscroll-1' },
sizes: [[728, 90]],
mediaTypes: ['BANNER'],
highImpact: {
group: 'hi',
companions: ['floor_ad'],
},
},
],
});
// Right sky placement with a sitebar bidder
window.htag.api('1').definePlacement({
elementId: 'sky_right',
adUnitPath: '/123456/site/sky_right',
sizes: [[160, 600]],
mediaTypes: ['BANNER'],
preloadGroup: 'main',
bids: [
{
bidder: 'sitebarProvider',
params: { placementId: 'sitebar-1' },
sizes: [[160, 600]],
mediaTypes: ['BANNER'],
highImpact: {
group: 'hi',
companions: [],
},
},
],
});

In this scenario, the skinProvider, topscrollProvider, and sitebarProvider bids all share the high-impact group "hi". Htag compares their CPMs:

  • If the skin bid wins, sky_left and sky_right are blocked.
  • If the topscroll bid wins, floor_ad is blocked.
  • If the sitebar bid wins, no companions are blocked.

Losing bids’ placements fall back to any remaining non-high-impact bids.

  • Same preload group: All placements participating in a high-impact group must share the same preloadGroup value. This ensures they are batched in the same bid request and can be evaluated together.
  • Mutually exclusive with roadblock: A bid cannot have both highImpact and roadblockType configured. These are separate mechanisms with different semantics.
  • Priority and override bids take precedence: Bids marked as priority or override bypass the high-impact auction and are processed first.

High-impact settings can also be applied dynamically using the bid config extension macro embedded in ad content. This allows advertisers to configure high-impact behavior without changes to the base Htag setup.

<!-- @@extend_bid_config:{"highImpact":{"group":"hi","companions":["sky_left","sky_right"]}}@@ -->

See Bid Config Extension for more details.