Browse the help center

Set a default code for unfilled requests

Paste a fallback tag into the placement's Default code so the ad server returns it when nothing fills the request, with the macros it substitutes, and set up a bottom-of-stack VAST tag for a video placement that has no default code — step by step, with the placement types that carry the field and a fix-it checklist.

How-to network manager Account → Publishers → site → zone → placement → Basic info → Advanced settings → Default code

What it is and why

Default code is the markup the ad server returns when nothing at all filled the request: the placement-level fallback, typically another ad source’s tag. It is separate from the daisy chain, which only orders the demand Epom already has, and from a banner passback, which hands an impression back from a tag Epom served. This page is one of the three stages of Set up daisy chaining and passbacks; it also covers the video case, where a placement has no default code and the fallback is set up as bottom-of-stack demand instead.

Example. A news site’s article MPU carries a backup network’s tag in Default code, with $$RANDOM$$ as its cache-buster. When every linked banner is capped for a visitor, the Universal JS tag receives that backup tag instead of a blank slot. The site’s pre-roll placement gets a Backfill — Partner Video campaign on the House ads priority with a Third Party VAST tag URL banner, which only receives the requests nothing above it could serve.

Typical scenarios

You wantSetWhere
A backup network’s tag when nothing fills a site placementThe tag in Default code, with $$RANDOM$$ as cache-busterplacement → Basic info → Advanced settings
A fallback VAST tag on a video placement, which has no default codeA House ads campaign with a Third Party VAST/VPAID Tag URL banner, linked at the bottom of the stacka backfill advertiser and campaign
The player to try several partners in turnA VAST waterfall rather than one fallbackVAST waterfall across several networks

Step by step

Set a default code for unfilled requests

  1. On the same placement, open Basic info → Advanced settings (collapsed by default). Default code is there on Site, Mobile site and Non-standard site placements only, and only for a role holding Placement Default Code.

  2. Paste your fallback markup into Default code. Epom substitutes macros into it before returning it, with the same processor as banner markup: $$RANDOM$$ and $$TIMESTAMP$$ as cache-busters, $$PAGE_URL$$, $$COUNTRY$$, $$PLACEMENT_ID$$, $$CHANNEL$$, custom parameters and the rest of the request, page and placement set. No creative was chosen, so banner, campaign and advertiser macros and the click URLs come out empty; a recognised macro that cannot resolve is removed, an unrecognised token (a partner’s own [timestamp]) is left as written. See Macros.

    Default code inside Advanced settings

  3. Click Save. Whether the code is ever returned depends on how the tag calls Epom — see When the default code is returned.

A fallback VAST tag for a video placement

A video placement has no Default code field, so a third-party VAST tag that should play “only when Epom has no ad” is set up as demand at the bottom of the stack:

  1. Create an advertiser and campaign for the fallback (for example Backfill — Partner Video) with delivery priority House ads or Non-guaranteed, below every campaign that should win first. Priority tiers are tried top-down, so this campaign only gets requests nothing above it could serve.
  2. Add a video banner of type Third Party VAST/VPAID Tag URL with the partner’s tag.
  3. Add the campaign’s targeting — for example only the countries the partner buys.
  4. Link the banner to the video placement.

The fallback’s impressions are counted and priced like any other banner’s — by its campaign’s Pricing card — so give it the price you agreed with the partner, or none for a pure house fill. To let the player try several partners in turn, see VAST waterfall across several networks.

Caveats and exceptions

Default code on other placement types. The console draws the field on Site, Mobile site and Non-standard site placements only. A default code stored on another type anyway — the REST API accepts defaultCode for a role holding Placement Default Code — is never returned for an Application placement, never for a VAST/video request, and never from the native JSON endpoint; a Video or Native placement only sees it on the request paths listed under When the default code is returned.

Which request paths return the default code, why the CPM threshold does not “trigger a passback”, the auto-refresh on a no-fill and who can do this are on Set up daisy chaining and passbacks.

Not working?

SymptomCheckWhere
The default code never firesThe request path does not carry it (Application, VAST, native JSON, overlay, API v4, S2S, unknown key); or the field is on a placement type that has noneWhen the default code is returned; the placement type
The default code fires but the backup tag is cachedNo cache-buster in itput $$RANDOM$$ or $$TIMESTAMP$$ in the tag

The No ads column and a missing card are on Set up daisy chaining and passbacks; a slot that stays empty for other reasons is on Low fill rate.

Reference

The Default code field, the request paths that return it and the full list of reasons a request ends without a banner are under Fallback fields outside the card on the hub and on Daisy chaining and passbacks reference; the REST field defaultCode is under Over the API.

Related pages:

Related pages

Please disable Adblock
Are you using adblock? Disable it and reload the page to proceed to the destination page.

A registration has already been submitted from this page. Please try again in 10 minutes.