---
title: "White-label preferences reference"
description: "Every field of the four White label preferences tabs — company details, platform defaults, ad-serving settings, supply chain, branded overlay, the eleven image slots with their sizes, the sign-in background modes — with defaults, validation and the corner cases; the companion to the Configure white-label branding guide."
type: "reference"
audience: [admin]
keywords: [white label fields, image slots, logo size, favicon size, login background, sign-in background modes, ad-serving domain, VAST AdSystem, set password URL, hide sign-up, branded overlay, decimal precision, top n, seller domain, sellers.json, OWNERDOMAIN, MANAGERDOMAIN]
ui_path: "Admin → Ad serving → White label preferences"
---

Fetch the complete documentation index at: https://epom.com/ad-server/docs/llms.txt. Use this file to discover all available pages before exploring further. Append .md to any documentation page URL to get its markdown version.

# White-label preferences reference

The companion to [Configure white-label branding](https://epom.com/ad-server/docs/guides/admin/white-label.md). The guide has the steps per
tab, the caveats and the fix-it table; this page holds every field, the image slots and the
corner cases.

## Options and fields

### Company info — company details

| Field | What it does | Notes |
|---|---|---|
| Company name | Signs outgoing mail — the footer of every notification, the daily digest and scheduled analytics reports. | **Required.** An empty value fails the save. |
| Website | Shown in the e-mail footer as *Visit our website*, and used as the `<AdSystem>` value in VAST responses unless **VAST AdSystem name** is set. | Not validated as a URL; stored verbatim. |
| Email | The *Contact us* address in the e-mail footer. | Not validated as an address. |
| Phone | Shown as a `tel:` link in the e-mail footer. | |
| Support page URL | Target of the help icon in the app header. | Leading and trailing spaces are trimmed on save. |
| Terms of use URL | Target of the terms link on the sign-up page. The whole terms-agreement line only appears once a URL is set — on both the classic and the new sign-up. | Must be a valid URL if filled. |

### Company info — platform defaults

| Field | What it does | Default |
|---|---|---|
| Default language | The locale for anonymous visitors and for users who have not chosen one. | English |
| Allow language change on public pages | Shows the language picker on sign-in, sign-up, forgot- and reset-password. | Off |
| Allow language change for Logged-in users | Shows **Display language** in the header user menu and on the Preferences page. | Off |
| Default theme | Light or dark for anyone who has not chosen: a user with no saved preference, in a browser that has never stored one. Also applies on the new sign-in pages. A user's own choice always wins. | Light |
| Allow theme change on public pages | Adds the light/dark switch to the new sign-in pages' preferences menu. | Off |
| Default density | Cozy or compact for anyone who has not chosen — the same rule as **Default theme**. | Cozy |
| Allow density change on public pages | Adds the cozy/compact switch to the new sign-in pages' preferences menu. | Off |
| Default UI version | Which interface a visitor gets when they have not chosen: *Classic (legacy)* or *New*. | Classic (legacy) |
| Allow UI version switch on public pages | Shows the "switch UI" control on the classic sign-in and in the new sign-in's preferences menu, and the UI-version row in the signed-in header menu. | Off |

> **Note:** on the new sign-in, sign-up, forgot- and reset-password pages the four "allow …"
> toggles feed one gear-icon preferences menu, which shows only the rows you enabled — **Display
> language**, **Color theme**, **Density**, **Open classic UI**. Turn all four off and the gear
> icon disappears entirely. The classic pages instead show a standalone language dropdown and a
> standalone "switch UI" button.

### Ad-serving settings

| Field | What it does | Notes |
|---|---|---|
| System default ad-serving domain | The network's one host for every URL that is not on a placement's tag domain: conversion pixels and postbacks (unless the campaign picked its own conversion-pixel domain), the set-cookie pixel on Preferences, opt-out, creative preview, `$$SERVE_DOMAIN$$`, and impression and click URLs for requests that arrive on any other host. Placement codes do not fall back to it: a placement with no Domain picked uses the network's default tag domain, and its Direct URL, Simple Iframe, VAST, e-mail and video player codes reach the system default only on a network with no tag domain configured at all. There are no per-site, per-advertiser or per-user overrides. | Empty falls back to a server-side default host set by Epom support. Before changing it, follow [Change the system default ad-serving domain](https://epom.com/ad-server/docs/guides/admin/networks-and-domains.md#change-the-system-default-ad-serving-domain): confirm the new domain is not banned, ask Epom support to set up its DNS, SSL and routing, and to register it on every ad server. |
| Redirect URL for ad-serving domain | Where a console page requested on the system-default host, or on one of the host names registered for your network, is redirected — hosted test pages are left alone. See [Test pages and your ad-serving domain](https://epom.com/ad-server/docs/guides/admin/networks-and-domains.md). | Must be a valid URL if filled. |
| VAST AdSystem name | The `<AdSystem>` value in every VAST response. | Empty falls back to **Website**. |
| Custom log in URL | Sends unauthenticated visitors here instead of the built-in sign-in. | Must be a valid URL if filled. |
| Custom log out URL | Where users land after signing out. | Must be a valid URL if filled. |
| Password required | Forces every new account to have a password. | When checked, **Set password URL** is greyed out. |
| Set password URL | External page where an invited user sets their first password. The invitation e-mail links to it with the single-use token appended after a `#`, so the page reads the token from its own URL fragment; empty uses the built-in password page. | Only usable while **Password required** is off. |
| Hide sign-up | Removes the sign-up link from the sign-in page, classic and new alike. | Hides the link only; the sign-up form stays reachable by its address — see the corner case below. |
| Sign-up URL | External page to use instead of the built-in sign-up. | Must be a valid URL if filled. |
| Forgot password URL | External page to use instead of the built-in recovery flow. | Must be a valid URL if filled. |

### Supply chain

The section opens with a summary of what buyers can verify today: the sites listed in
`sellers.json`, the DSP partners sending the supply chain, the advertisers with ads.txt lines,
and how many sites the last ads.txt check found with all lines, missing lines, unreadable or not
yet checked; sites with no URL to check are counted on a line of their own. Below it are these
settings:

- **Seller domain** — your own domain as your buyers know it, and where your `sellers.json` is
  served. Once **Publish sellers.json** is on, bid requests to DSPs name it as the seller (the
  installation domain when it is empty); before that they keep the installation domain.
  Header-bidding tags name it only on a site that also has a **Seller ID** — with either one
  empty they carry no chain, which is the correct state when you are not reselling. Enter the
  domain only; a pasted address such as `https://Ads.Example.com/` is saved as `ads.example.com`,
  and anything that is still not a domain is refused.
- **Publish sellers.json** — serves `/sellers.json` listing the active sites you opted in one by
  one (**List in sellers.json** on each site), so buyers can verify those chains. Off by default,
  because the list becomes public. Turning it on also switches the supply chain in bid requests to
  DSPs to the seller domain and each site's seller ID, so tell your DSP partners first.
- **sellers.json contact address** — the file's `contact_address`; its `contact_email` is the
  **Email** above.
- **Legal name in sellers.json** — the name listed for the sites you sell yourself: those nobody
  owns or your admin user owns. Empty uses the **Company** name.
- **ads.txt / app-ads.txt lines** — lines of ad systems that sell every site of the network,
  pasted as the partner gave them; each site's ads.txt block adds them after the network's own
  line. Lines that are not ads.txt records or variables are refused on save, with their line
  numbers. This is the only place for `OWNERDOMAIN=` and `MANAGERDOMAIN=`, which name the site's
  owner and its manager: one `OWNERDOMAIN`, and one `MANAGERDOMAIN` per country (a second is
  refused on save). `MANAGERDOMAIN` opens every site's ads.txt block; `OWNERDOMAIN` only the
  blocks of the sites you own yourself (nobody owns them, or your admin user does), because a
  publisher's site is the publisher's to name. A demand partner's or a site's own lines cannot
  carry them. `CONTACT=` and `SUBDOMAIN=` describe the publisher's own file and are refused here
  too; lines saved before that are left out of every block.

See [Supply chain and sellers.json](https://epom.com/ad-server/docs/guides/inventory/supply-chain-and-sellers-json.md) and
[setup by scenario](https://epom.com/ad-server/docs/guides/inventory/supply-chain-ads-txt-setup.md).

### Branded placement settings

Controls the small branded overlay the ad server can draw on top of a served ad.

| Field | What it does |
|---|---|
| Enable placement overlay | Master switch for the overlay feature. |
| Enable by default on site placements | New site placements get the overlay switched on. |
| Enable by default on non-standard placements | New non-standard placements get the overlay switched on. |
| Overlay text | The caption rendered in the overlay. |
| Overlay landing page | Where a click on the overlay goes. Must be a valid URL if filled. |
| Overlay text colour | Caption colour. |
| Overlay width | Overlay width in pixels. Must be 0 or more. |
| Overlay background colour | Overlay background. |
| Overlay background opacity (0-1) | 0 is fully transparent, 1 fully opaque. |
| Horizontal position | *Left* or *Right*. |
| Vertical position | *Top* or *Bottom*. |

The overlay's icon is the `overlay.png` image slot on the Images tab. The classic White Label
Preferences page also carries a branded-placement **Sample** preview, which the new page does not.

### The remaining Main-tab sections

| Section | Field | What it does |
|---|---|---|
| Social media | Facebook / LinkedIn / Twitter / YouTube | Icon links in the footer of every notification e-mail. Each must be a valid URL if filled. |
| Email template customizations | Email header background | Background of the header band in notification e-mails. Empty leaves the stock dark band. |
| Analytics customizations | Decimal precision | Decimal places for money and rate columns in reports. Accepted range **2–3**; the input does not say so, the save does. |
| Analytics customizations | Top n with "other" | How many rows a chart shows before the rest are collapsed into *Other*. Accepted range **3–50**. |
| Referral program settings | Title | Heading of the referral page. See [Referral program](https://epom.com/ad-server/docs/guides/collaboration/referral-program.md). |
| Referral program settings | Referral program URL | The link a user copies and shares. `$$REF_ID` in it is replaced with that user's id. |
| Referral program settings | Referral program description URL | Target of the *Learn more* link on the referral page. Rendered as a textarea, but it is a single URL and is validated as one. |
| User's payment details | Billing contact label / Wire details label / PayPal details label | The explanatory text shown beside each payment-details block when an admin edits a user. |

### Appearance tab

Twenty preset themes, each with a light and a dark palette. **Fine-tune colours** overrides
individual tokens — Accent, Accent text, Background, Panel, Raised panel, Text, Muted text and
Subtle text — separately for Light and Dark; setting a token back to the preset's own value
removes the override, a **Customised** badge appears while any override exists and **Reset to
preset** clears them all. Border colours are derived automatically and are not editable. Picking
a preset clears any per-colour tweaks. Both **Live preview** cards render in their own palette
regardless of the mode you are using. **Save** and **Reset** stay disabled until something
changed; the toast reads **Theme saved — it now applies across the platform**, and the new
palette is applied to your own session immediately.

### Sign-in background modes

The mode is stored separately from the image, and the two together decide what the sign-in
looks like.

| Mode | What the new sign-in does |
|---|---|
| Off | No background image; the page sits on the plain theme colour. |
| Cover | The image fills the screen and is cropped to fit. Best for full-bleed artwork. |
| Tile | A small image repeats to fill the screen. Upload a light-weight tile, not a full-screen render. |
| Center | The whole image, centred and scaled to fit — never cropped. |

**Readability scrim** washes the background behind the sign-in card so the fields stay legible
over busy artwork. In dark mode the background is dimmed further on top of the scrim, so one
image serves both modes. The block has its own **Save**, independent of the Main tab's.

### Image slots

Eleven slots appear on the Images tab. The size shown on each card is the dimensions of the file
currently in the slot — the packaged default, or your override once you upload one. For an SVG
that is the width and height the file *declares*, which is why both account logos read 100×100:
the packaged files declare neither, and 100×100 is the fallback.

| Slot | Group | Used for | Default size |
|---|---|---|---|
| `login-logo.svg` | Sign-in pages | Sign-in / sign-up logo, light theme. Also the classic UI's sign-in logo. | 129×45 |
| `login-logo-dark.svg` | Sign-in pages | Sign-in / sign-up logo, dark theme. | 129×45 |
| `login-bg.png` | Sign-in pages | The sign-in background image. | 1734×1423 |
| `account-logo-light.svg` | Account UI | App header logo for the **light** theme — dark artwork on transparency. | 100×100 |
| `account-logo.svg` | Account UI | App header logo for the **dark** theme — light artwork on transparency. | 100×100 |
| `favicon.ico` | Account UI | Browser tab icon. | 16×16 |
| `referral.png` | Account UI | Referral page banner — classic UI only; the new referral page uses its own illustration. | 619×195 |
| `email-logo.png` | Emails | Header logo in notification e-mails. | 384×120 |
| `logo-report.png` | Email reports | Header logo in e-mailed analytics reports. | 131×129 |
| `logo-small.png` | Email reports | Footer logo in e-mailed analytics reports. | 120×44 |
| `overlay.png` | Ad serving | The branded overlay icon drawn on served ads. | 32×32 |

A twelfth slot, `logo.png`, still exists on the server — a legacy sign-in logo that pre-dates
`login-logo.svg` and is used only when that one has never been uploaded. It is not shown in this
tab and can only be replaced from the classic White Label Preferences page.

These twelve names are the only ones an upload or a revert accepts; a request naming any other
image is refused with a message on that field.

To replace an image, click its preview (or drop a file onto it); the card previews the file
locally and **Upload** becomes available; a **Done** toast confirms the upload. A green
**Overridden** badge marks every slot running your file instead of the packaged one, and only
those slots get a **Delete** button, which asks *Revert to default image?* and brings the stock
artwork back.

### REST API keys tab

**Keys management** holds the network-level pair, **Public key (username)** and **Private key
(password)**, which authenticate the keyed REST endpoints
`POST /rest-api/register-user/{key}/{hash}/{timestamp}` and
`POST /rest-api/user-sign-up/{key}/{hash}/{timestamp}`, the hash being signed with the private
key. **Regenerate keys** generates and saves a new random pair at once (*Keys regenerated.*); a
key of your own is 16 hex characters typed into the field and saved with **Save**. The old pair
stops working within about a minute.

**AI (Anthropic API key)**: the network's own key from the Anthropic Console, saved with **Save
key**. Every user without a key of their own then runs the
[AI assistant](https://epom.com/ad-server/docs/guides/collaboration/ai-assistant.md) and the other AI features on it — the Traffic
Quality report's analyst notes and AI matching of pasted targeting lists among them — and the
platform bills nothing for it. The key is checked with Anthropic before it is stored (a refused
key is not saved), kept encrypted and never shown again — only its last four characters (*The
network key …7f3a is in use*). **Replace key** swaps it, **Remove key** deletes it: users without
a key of their own then lose the AI features at once, unless the platform's key is switched on
for the network (and then billed).

## Corner cases and gotchas

> **Warning:** **saving the Main tab switches the sign-in background back off.** The Main tab's
> Save posts a whole-form object that includes the two sign-in-background keys even though the
> tab has no controls for them, so the display mode is written back as *Off* and the readability
> scrim back on. Set the background to *Cover* with the scrim off, save the Main tab, and the
> sign-in loses its background. Whenever you save the Main tab, go back to **Images → Sign-in
> pages**, set the mode again and press that section's own Save.

> **Corner case:** a saved change is not instantly true everywhere. The servers, including the ad
> servers, can keep serving the previous settings for up to a minute, and the browser can cache
> them for another minute. Give a text change about a minute and a reload before you conclude it
> did not take.

> **Corner case:** images take longer than text. An uploaded file reaches every server within
> about a minute and is then cached by browsers for five minutes. Browsers hold favicons
> especially hard, so allow the full five minutes — or open a private window — before deciding an
> upload failed.

> **Corner case:** the **Appearance** theme only re-tints the new UI. The classic interface keeps
> its own colours regardless of the preset, and so do notification e-mails and served-ad markup.
> On a repeat visit the new UI paints from a copy of the theme cached in the browser and then
> refreshes it from the server, so the very first load after a theme change can show the previous
> palette for a moment.

> **Corner case:** both language toggles are off in a fresh installation, and they are the *only*
> thing standing between your users and the 15 translated interfaces. With both off there is no
> language picker anywhere — not on the sign-in page, not in the header menu, not on the
> Preferences page — and nothing tells a user that other languages exist. If your platform is
> translated and nobody can find the switch, this pair is where to look.

> **Corner case:** **Default theme** and **Default density** reach only people who have not
> chosen. The order is: a switch made in the current tab, then the user's saved preference, then
> what this browser last used, then these two defaults. Anyone who has ever flipped the switch in
> a browser keeps that choice there, so changing a default is mostly felt by new users and new
> browsers. It reaches open sessions within about five minutes.

> **Corner case:** **Website** does double duty. It is the *Visit our website* link in every
> notification e-mail *and* the default `<AdSystem>` value in VAST responses, so every video
> player parsing your tags reads it. Fill in **VAST AdSystem name** to decouple the two.

> **Corner case:** the logo slots are theme-specific and fall back to each other, so uploading
> one of a pair is enough — `account-logo.svg` (dark theme) and `account-logo-light.svg` (light
> theme) stand in for one another, and the sign-in pair `login-logo.svg` / `login-logo-dark.svg`
> does the same. Upload both only when you have artwork tuned per background. No other slot has
> a fallback: leave `favicon.ico`, `overlay.png` or an e-mail logo alone and the packaged Epom
> artwork is what ships.

> **Corner case:** each slot accepts only the file type its extension implies — SVG for a `.svg`
> slot, PNG for a `.png` slot, and ICO *or* PNG for `favicon.ico`. Sizes are checked too: a
> raster file must match the slot's default dimensions exactly, an SVG only has to declare a
> width of 500 px or less, and a favicon must be square and 500 px or less. The one exception is
> `login-bg.png`, which is scaled to fill and accepts any dimensions. A rejected file produces a
> toast naming the rule — *Size must be 32x32, or up to 500px wide for this image* — and nothing
> is stored.

> **Corner case:** the size message for an SVG slot quotes a number you should ignore. The
> packaged `account-logo.svg` declares no width or height, so the platform reads it as 100×100
> and a too-wide upload is refused with *Size must be 100x100, or up to 500px wide for this
> image*. Only the 500 px width cap applies to an SVG; your artwork does not have to be 100×100.

> **Corner case:** uploaded files are stored and served byte for byte — the platform checks the
> format and the dimensions and writes the file unchanged, on every server. Upload only artwork
> you produced or trust, particularly SVG, which is markup rather than pixels.

> **Corner case:** the classic sign-in page paints `login-bg.png` whatever the display mode says.
> *Off* removes the background from the **new** sign-in only; the classic page falls back to its
> fixed 867×711 centred rendering, and never applies the readability scrim.

> **Corner case:** **Hide sign-up** removes the link from both sign-in pages, but it does not
> disable the sign-up form itself — anyone who knows its address can still open it. Which roles a
> visitor can sign up into is each role's *Sign-up* grant.

> **Corner case:** two settings live only on the classic White Label Preferences page — **Custom
> CSS** and the `logo.png` slot. Saving from the new page leaves them untouched, so it is safe to
> use both, but you cannot see or edit them here. The classic page also carries the
> branded-placement **Sample** preview, which the new page does not.

> **Corner case:** the **system default ad-serving domain** is not just a label. It is the one
> host for every URL that is not on a placement's tag domain, and it ends up inside the
> impression, click and conversion URLs of served creatives — see
> [Get the pixel and S2S tracking code](https://epom.com/ad-server/docs/guides/conversions/s2s-and-pixels.md). Change it only
> together with Epom support, who register the new host on every ad server; a host the ad servers
> do not answer on silently breaks tracking. Codes already pasted on publisher pages keep working
> only while their old hostname stays registered and pointed at Epom.

## Per-role notes

- **Administrators** need **White Label Preferences**; without it the sidebar entry disappears
  and every endpoint behind all four tabs is refused. The grant is all-or-nothing — there is no
  images-only or theme-only variant.
- **Network managers, publishers and advertisers** cannot open this page. They get its results:
  the logo, colours and company details on every screen, and the branding on their mail.
- **Every user** gets the language and UI-version defaults until they choose otherwise in
  [Preferences](https://epom.com/ad-server/docs/guides/collaboration/preferences.md); the language toggles decide whether they can
  choose at all.

## Related

- [Configure white-label branding](https://epom.com/ad-server/docs/guides/admin/white-label.md)
- [White-label & multitenancy concept](https://epom.com/ad-server/docs/concepts/white-label-and-multitenancy.md)
- [Test pages and your ad-serving domain](https://epom.com/ad-server/docs/guides/admin/networks-and-domains.md)
- [Supply chain and sellers.json](https://epom.com/ad-server/docs/guides/inventory/supply-chain-and-sellers-json.md)
- [Get the pixel and S2S tracking code](https://epom.com/ad-server/docs/guides/conversions/s2s-and-pixels.md)