A wallpaper (also called a skin, fireplace, or page takeover) paints a full-page background image on the side rails behind your centered content, with an optional top billboard. On viewports too narrow to show the rails, the creative falls back to the billboard alone, so one call covers desktop and mobile.
The BiddingStack ad tag renders the wallpaper with window.BID_AD.displayWallpaper. The call is identical whether you run it inside a Google Ad Manager creative or directly on the page (JS tag) — when it loads inside a GAM friendly iframe, the renderer walks up to the top document and paints the publisher's page.
| Asset | Requirement |
|---|---|
| Skin image | Full-page background art, recommended 1920×1080 or larger. The center column — as wide as your page content (contentWidth, default 1000px) — is repainted with the page background, so keep all messaging and logos on the left and right rails, outside that column |
| Billboard image | Top leaderboard, default 970×250 (970×90 and 728×90 also work — set topWidth / topHeight to match). Shown alone on narrow viewports, so it must stand on its own |
| Format | JPEG, PNG, WebP, or SVG. Keep the skin under ~300 KB and the billboard under ~150 KB |
| Background color | A solid color matching the skin's outer edges, used where the viewport is wider than the skin image |
| Click-through URL | One URL used by both the skin rails and the billboard |
Design the skin around your actual content column width: with a 1000px column on a 1920px-wide image, each rail has about 460px of visible art, and the outermost edges only appear on very wide screens.
You can use the BiddingStack example creatives to test before advertiser assets are ready:
https://www.biddingstack.com/demo/assets/wallpaper-skin.svghttps://www.biddingstack.com/demo/assets/wallpaper-billboard.svgTraffic the wallpaper as a third-party / custom HTML creative against your top leaderboard ad unit (for example a 970×250 unit above the content). The billboard renders in-place inside that booked slot, and the skin escapes the iframe to paint the page background.
<script src="https://pubtm.com/serve/tag.js"></script>
<script>
(function waitForTag() {
if (window.BID_AD && window.BID_AD.displayWallpaper) {
window.BID_AD.displayWallpaper({
skinImage: "https://www.biddingstack.com/demo/assets/wallpaper-skin.svg",
topImage: "https://www.biddingstack.com/demo/assets/wallpaper-billboard.svg",
clickUrl: "%%CLICK_URL_UNESC%%https://www.advertiser.com/landing",
backgroundColor: "#0C033A",
contentWidth: 1000,
topWidth: 970,
topHeight: 250,
});
} else {
setTimeout(waitForTag, 50);
}
})();
</script>
When served from the top unit, the billboard automatically fills the slot GAM already sized and positioned — you do not need topSelector or topAlwaysVisible. The %%CLICK_URL_UNESC%% macro prefix gives GAM click tracking on both the rails and the billboard.
Place the call directly on your page (direct-sold campaigns, house ads, or your own ad server):
<script src="https://pubtm.com/serve/tag.js" async></script>
<script>
(function waitForTag() {
if (window.BID_AD && window.BID_AD.displayWallpaper) {
window.BID_AD.displayWallpaper({
skinImage: "https://www.biddingstack.com/demo/assets/wallpaper-skin.svg",
topImage: "https://www.biddingstack.com/demo/assets/wallpaper-billboard.svg",
clickUrl: "https://www.advertiser.com/landing",
backgroundColor: "#0C033A",
contentWidth: 1000, // your page content column width
topWidth: 970,
topHeight: 250,
topAlwaysVisible: true, // show the billboard together with the skin
});
} else {
setTimeout(waitForTag, 50);
}
})();
</script>
By default the billboard floats fixed at the top of the page on narrow viewports. To place it in your own layout instead, pass a topSelector pointing at a div in your header area — the billboard renders inside it in normal flow and stays visible at every width:
topSelector: "#top-ad-slot",
Set up a preview line item that only serves when you ask for it, so you can check the wallpaper on your live site without showing it to real visitors:
bs_preview with value true. Create the key-value in GAM (Inventory → Key-values) if it does not exist yet.?biddingstack_preview=true appended to the URL:https://www.yoursite.com/article?biddingstack_preview=true
The BiddingStack tag detects the parameter and sets the page-level GAM targeting bs_preview=true, so the preview line item wins only on that visit. Regular visitors never match the key-value and see normal ads.
While previewing, check:
minSkinWidth: wide viewports show the skin, narrow viewports fall back to the billboard alone.When you go live with the real campaign, the same pricing rule applies: run direct-sold wallpapers as Sponsorship line items or at a CPM above your typical open web bidding prices, so the takeover reliably wins the slot.
| Option | Description |
|---|---|
skinImage | Full-page background image URL (the wallpaper art) |
topImage | Billboard image URL. Optional, but recommended as the narrow-screen fallback |
clickUrl | Click-through URL for the skin rails and the billboard |
backgroundColor | Page background color behind the skin |
contentWidth | Width of the centered content column the skin wraps around (default 1000) |
contentBackground | Color repainted over the content column. Defaults to the page's own background color, auto-detected |
skinWidth | Skin image display width, for centering. Defaults to the image's natural size |
topOffset | Gap from the top of the viewport, e.g. for a fixed navigation bar (default 0) |
minSkinWidth | Minimum viewport width to show the skin; below it only the billboard shows (default contentWidth + 260) |
topWidth / topHeight | Billboard size (default 970×250) |
topSelector | CSS selector of a publisher div to pin the billboard into, in normal flow |
topAlwaysVisible | Show the billboard together with the skin on wide screens instead of only as the narrow-screen fallback (default false; billboards served in a GAM unit always show) |
impressionTracker | Optional impression pixel URL |
linkTarget | Anchor target for click-throughs (default _blank) |
displayWallpaper resolves with an instance exposing show(), hide(), and destroy(). destroy() removes the skin and billboard and restores the page's original background and any content the billboard replaced.
Need help trafficking a wallpaper campaign? Contact the BiddingStack team.
Header bidding, yield, and ad tech insights for publishers. A few emails a month, no spam.