Browse the help center

Set a placement's OpenRTB settings

Use a placement's RTB configuration card — custom tag id, IAB category, blocked IAB categories and blocked banner attributes — to shape the bid requests DSP partners receive for that slot, in the console, over the REST API or through an AI assistant.

How-to network manager admin Account → Publishers → site → zone → placement → RTB configuration

Every placement that sells to DSP partners sends them an OpenRTB bid request. The placement’s RTB configuration card lets you shape that request for this one slot: give it your own tag id, describe its content with an IAB category, and refuse creatives by IAB category or by creative attribute. None of these settings affect direct campaigns you trafficked inside Epom — they only travel in bid requests to programmatic demand.

Who this is for

Network managers who sell placements to DSP partners. The card needs the Open RTB permission — if it is missing, ask your network administrator to turn it on in Admin → Users & access → User roles & permissions. Changing the card also needs update rights on the placement’s site (your own site or an editable share).

The video bid-request fields — playback method, API framework, durations — are a different block with its own permission, Video RTB Configuration; see Video bid-request settings below.

Prerequisites

  • A saved placement — the card appears only after the first save, on every placement type.
  • At least one DSP partner that actually bids on this placement, or the settings have nothing to travel in (see Programmatic DSP demand).

Steps

  1. Open the placement (Account → Publishers → site → zone → placement) and find the RTB configuration card, directly below Pre-targeting. It is collapsed unless something on it is already set — click its title to open it. Placement edit page for Homepage Leaderboard with the RTB configuration card open below Pre-targeting: Custom tag ID filled, IAB category, Blocked IAB category and Blocked banner attributes each showing their stored values as chips
  2. Type a Custom tag ID — the id DSPs see for this slot instead of the placement key. Surrounding spaces are trimmed; leave it blank to send the placement key.
  3. Open IAB category and tick the categories that describe what the slot’s page is about. Type in the box at the top of the list to narrow it — a code such as IAB12 or a word from the name such as news.
  4. Open Blocked IAB category and tick the categories you ask DSPs not to bid with. Blocking is a request, not a filter — see the corner cases below.
  5. Open Blocked banner attributes and tick the creative behaviours you refuse. Each row is the OpenRTB attribute id and its description, for example 8 Pop (e.g., Over, Under, or upon Exit). Blocked banner attributes picker open on the Homepage Leaderboard placement, two attributes ticked under Selected (2) and the rest listed below as an id and a description
  6. Click the card’s own Save. A Done toast confirms it, and after a reload every pick comes back as a chip. The card saves on its own — the placement’s Basic info Save does not write it, and this Save does not write Basic info.

How the pickers behave

The three pickers are filled from two fixed lists: the 391 IAB content categories, each labelled code - description (IAB25_3 - Pornography), and the 16 creative attributes, each labelled id description. The site and zone cards use the same IAB list.

  • Search matches text anywhere in the row, in any case. Both IAB25_3 and pornography find IAB25_3 - Pornography. For attributes, a word (audio, pop) or the id (8) works.
  • Type the code the way the label shows it. The label uses an underscore, so IAB25-3 finds nothing here, although the REST API accepts that spelling. The API names in the table below (AUDIO_AD_AUTO_PLAY) are not in the console labels either — search audio.
  • A short code matches more than it names. IAB1 lists 158 rows: IAB1, all its sub-codes and IAB10 to IAB19 with theirs. Add what follows the code to narrow it — IAB1 - finds only the top-level IAB1, IAB1_ only its sub-codes.
  • Ticked rows come first. With more than ten options, opening a picker gathers what is ticked under Selected (N), above Not selected. The order stays fixed while the list is open and is not applied while you search.
  • The field shows two chips and a counter. Only the first two picks are drawn, in list order rather than the order you ticked them, cut to a short width, then +N more. The chips have no ✕: open the picker to see every pick in full and to untick one.

What each field puts in the bid request

FieldBid-request fieldWhat DSPs get
Custom tag IDimp.tagidThis value instead of the placement key. Blank means the placement key is sent. Publisher macros such as $$PLACEMENT_ID$$ or $$CUSTOM_PARAM(section)$$ are expanded per request
IAB categorysite.pagecat (or app.pagecat for app inventory)The placement’s IAB content categories
Blocked IAB categorybcatMerged with the site’s and the zone’s blocked categories
Blocked banner attributesbattr on the impression objectThe OpenRTB creative-attribute ids — on imp.video for a video creative on a video placement, imp.native for a native creative, imp.banner otherwise

The IAB categories come from the fixed IAB content taxonomy (IAB1…IAB26 and their subcodes, 391 entries), not from your network’s own advertising categories. The banner attributes are the OpenRTB creative-attribute list; the console shows the id and description, the API takes the name or the id:

IdConsole labelName over the API
1Audio Ad (Auto Play)AUDIO_AD_AUTO_PLAY
2Audio Ad (User Initiated)AUDIO_AD_USER_INITIATED
3Expandable (Automatic)EXPANDABLE_AUTOMATIC
4Expandable (User Initiated - Click)EXPANDABLE_USER_INITIATED_CLICK
5Expandable (User Initiated - Rollover)EXPANDABLE_USER_INITIATED_ROLLOVER
6In-Banner Video Ad (Auto Play)IN_BANNER_VIDEO_AD_AUTO_PLAY
7In-Banner Video Ad (User Initiated)IN_BANNER_VIDEO_AD_USER_INITIATED
8Pop (e.g., Over, Under, or upon Exit)POP
9Provocative or Suggestive ImageryPROVOCATIVE_OR_SUGGESTIVE_IMAGERY
10Shaky, Flashing, Flickering, Extreme Animation, SmileysSHAKY_FLASHING_FLICKERING_EXTREME_ANIMATION_SMILEYS
11SurveysSURVEYS
12Text OnlyTEXT_ONLY
13User Interactive (e.g., Embedded Games)USER_INTERACTIVE
14Windows Dialog or Alert StyleWINDOWS_DIALOG_OR_ALERT_STYLE
15Has audio on/off buttonHAS_AUDIO_ON_OFF_BUTTON
16Ad can be skipped (e.g., skip button on preroll video)AD_CAN_BE_SKIPPED

How the placement combines with its site and zone

Sites and zones have their own OpenRTB integration card (see Create and edit a site and Work with zones). Nothing overrides anything — each level either fills its own field or is merged:

SettingSiteZonePlacementIn the bid request
IAB categorysite.cat / app.catsectioncatpagecatAll three, each in its own field
Blocked IAB categoryyesyesyesUnion of all three in bcat — blocked at any level means blocked
Blocked banner attributes——yesPlacement only
Custom tag ID——yesPlacement only
Open RTB publisher IDshown, read-only——Derived from the site; nothing to set

So you cannot unblock at the placement a category the site blocks — remove it on the site (or zone) instead. To block a category on one slot only, block it on that placement and leave the site and zone lists alone.

Video bid-request settings

A video placement also tells DSPs what its player can do: Playback method, API framework, Min. ad duration (sec), Max. ad duration (sec) and Skip min (sec). These live in a subsection of the Basic info card, confusingly also titled RTB configuration, are saved with the Basic info Save, and need the Video RTB Configuration permission rather than Open RTB. A native placement shows the two duration fields only. Only an administrator can grant that permission. The full description is on Video placements.

Over the API

MethodPathDoes
GET/rest-api/placements/{placementId}/openrtb.doReturns placementId, customOpenRtbTagId, iabCategories and blockedIabCategories (each {id, code, description}) and blockedBannerAttributes (each {name, id, description})
POST/rest-api/placements/{placementId}/openrtb.doSets any of iabCategories, blockedIabCategories, blockedBannerAttributes, customOpenRtbTagId; returns the settings after the save, in the shape of the GET
GET/rest-api/iab-categories.doThe IAB catalogue: every category’s id, code and description

Rules of the POST, as the server applies them:

  • Only the fields you send change. A field you leave out keeps its stored value.
  • A field sent empty clears it — blockedIabCategories= removes every blocked category of the placement; customOpenRtbTagId= goes back to sending the placement key.
  • Categories are named by IAB code or by catalogue id, comma-separated. Codes are read in any case and with - or _: IAB7_39, IAB7-39 and iab7_39 are the same category. A bare number is the catalogue id from /rest-api/iab-categories.do, not the IAB number — 7 is a row id, not IAB7. Banner attributes are named by name (any case) or OpenRTB id: POP or 8.
  • One unknown category or attribute refuses the whole request with a 400 that names it — nothing is half-saved. A custom tag id over 256 characters is a 400 too, and so is a POST that sends none of the four fields.
  • 403 when your role lacks Open RTB (Your role lacks the OPEN_RTB permission.) or you have no rights on the placement’s site (view rights for the GET, update rights for the POST); 404 for a deleted or unknown placement (Placement 4012 not found.).

The video fields are videoPlaybackMethod and videoApiFramework (plus the durations) on POST /rest-api/placements/update/video.do, read back by GET /rest-api/placements/{placementId}.do — see Video placements.

Example: block pop-unders and auto-play audio on one slot of an invented site, and give it a tag id that carries the section the page passes in:

POST /rest-api/placements/4012/openrtb.do
  blockedBannerAttributes=POP,AUDIO_AD_AUTO_PLAY
  customOpenRtbTagId=northwind-$$CUSTOM_PARAM(section)$$-top

Through an AI assistant

An AI assistant connected through MCP sees these settings in placement_overview, in its openRtb section (the body of the GET above). When your role may not read them, openRtb is empty and openRtbNote says This account may not read it. whoami says what your role may change: openRtbSettings for this card, videoRtbSettings for the video fields. To change them, the assistant runs the POST above (or update/video for the video fields) with api_write, under the same rules — ask it, for example, “block pop-under creatives on the Harbour Gazette homepage leaderboard”. It works with the API’s names (POP, IAB7_39), not the console pickers’ descriptive labels, and reads the result back with the same GET.

Corner cases and gotchas

Corner case: the card’s Save writes the whole card — Custom tag ID and all three pickers in one request — so what you see is what is stored afterwards. Untick every pick of a list and Save to clear it; clear the tag field to go back to the placement key. The REST POST works the other way round and only changes the fields it carries. A card left open while someone changes the placement over the API therefore puts its old values back on its next Save: reload before you save.

Corner case: a Custom tag ID over 256 characters is refused on Save with the toast Custom open rtb tag id: size must be between 0 and 256, and nothing is saved. The field itself does not stop you typing more.

Corner case: blocked categories and attributes are signals to the DSP, not a server-side filter. Nothing checks a returned bid against bcat or battr, so a partner that ignores them can still win with such a creative. If one gets through, block that creative or its partner by name — see Keep unwanted ad categories off your inventory.

Corner case: none of these fields affect direct banners you linked to the placement — they never go through a bid request. Keep direct demand off with rules and name blocks instead.

Corner case: a placement cannot lift a block set higher up. bcat is the union of site, zone and placement, so a category blocked on the site stays blocked on every placement under it.

Corner case: some partners read the tag id elsewhere as well — TrafficHunt, for example, receives it again as imp.ext.subid.

Corner case: a $$CUSTOM_PARAM(…)$$ in the custom tag id that the request does not fill (the page did not pass that parameter) is, by default, dropped — the DSP receives the tag id with a gap in it. If nothing is left after the macros are expanded, the placement key is sent instead. Test the tag with the parameter present and absent.

Corner case: changes reach live traffic on the next ad-serving cache reload — every 10 minutes by default — not on the next request, and saving does not trigger a reload. Allow up to 10 minutes before checking a bid request.

Corner case: a pop placement on some ad networks (ExoClick, HilltopAds, TrafficStars and others) sends no banner object at all, so its blocked banner attributes never reach those partners.

Corner case: the page has two sections called RTB configuration. The card below Pre-targeting is this one (Open RTB); the subsection inside Basic info is the video one (Video RTB Configuration) and saves with Basic info.

Per-role notes

  • Can View share — the card is locked and has no Save.
  • Custom-role users — without Open RTB the card is absent and the REST endpoints answer 403; without Video RTB Configuration the video subsection is absent and an API save ignores its fields.
  • Demo account — the example placements are shared read-only, so their card is locked; on a placement you created it follows your role. See Demo accounts.

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.