---
title: "Advertiser reference"
description: "Every field of the advertiser Basic info card with its control, default, permission and masking behaviour, how the OpenRTB advertiser domain is chosen and who may set it, the REST endpoints, and the corner cases — the companion to the Create and edit an advertiser guide."
type: "reference"
audience: [network-manager, advertiser]
keywords: [advertiser fields, advertiser domain, adomain, set advertiser domain permission, analytics finalization policy, confirmation delay, last confirmed date, private advertiser, masked share, statistic user, advertisers update.do, advertisers status.do, deleted-entities restore]
ui_path: "Account → Advertisers → advertiser"
---

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.

# Advertiser reference

The companion to [Create and edit an advertiser](https://epom.com/ad-server/docs/guides/advertising/advertisers.md). The guide has the steps, the
cards, the header actions and the fix-it table; this page holds every field, the advertiser
domain rules, the API and the corner cases.

## Options and fields

Everything the Basic info card can show, split by the three sections you see on screen. "Where"
says whether a field is on the create form, the edit page, or both.

### Basic info

The always-visible top of the card.

| Field | What it does | Control | Default | Where | Notes |
|---|---|---|---|---|---|
| Name | Advertiser display name | Text, max 128 | — | Both | Required. Locked (and skipped on save) when the share masks the identity. |
| Active | On/off switch for the whole subtree | Toggle | network default | Both | Hidden when your role cannot switch advertisers on and off. |
| Category | Advertiser categories for rules/reporting | Searchable multi-select | none | Both | Your role may show it locked (it then reads "All without category") or make it required, in which case a save with none is refused ("You must provide at least one category"). |
| *Additional fields* | Network-defined extra text fields | Text, max 255 | empty | Both | Only present when your network administrator defined additional entity fields for advertisers; the label is whatever they named it. Not hidden by masking. |

### Advanced settings

A collapsed subsection. It is rendered only if at least one of its three fields applies to you —
hold none of the permissions and there is no **Advanced settings** row at all.

| Field | What it does | Control | Default | Where | Notes |
|---|---|---|---|---|---|
| Advertiser domain | The brand's own domain, published to buyers as the OpenRTB `adomain` on bids for this advertiser's creatives | Text, max 255 | empty | Both | Hidden for masked shares. See [Advertiser domain](#advertiser-domain). |
| Private | Leaves the advertiser out of the linked-banner trees and of analytics for users who hold no share on it, and out of label-only auto-linking of new placements | Checkbox | off | Both | Unlike its two neighbours, it is *not* hidden by masking. |
| Analytics finalization policy | When this advertiser's analytics is considered final (confirmed) | Select | *Default* | **Edit only** | Absent from the create form — it needs a saved advertiser. Over the REST API the same fields are `confirmationDelay`, `preliminaryConfirmationDays` and `lastConfirmedDate` (`yyyy-MM-dd`) on `advertisers/update.do`, and `GET /rest-api/advertisers/{id}.do` returns them to roles that may set the policy. |
| Days for confirmation | How many trailing days stay unconfirmed | Text, 0–365 | 1 | Edit only | Appears only while the policy is *Last N Days*. |
| Last confirmed date | The cut-off date for confirmed analytics | Date picker | empty | Edit only | Appears only while the policy is *Last Confirmed Date*. |

![Advanced settings on a saved advertiser, with the finalization policy and its dependent field](https://epom.com/docs-images/ad-server/advertisers/advanced-settings-saved.webp)

> **Note:** the policy options read *Default*, *None*, *Last N Days* and *Last Confirmed Date*
> (translated in other interface languages; the REST API takes `DEFAULT`, `NONE`, `LAST_N_DAYS`,
> `LAST_CONFIRMED_DATE`). *Default* means "follow the network setting"; *None* means this
> advertiser's analytics is never marked confirmed.

### Additional information

A second collapsed subsection. On a masked share it holds nothing but **Created**.

| Field | What it does | Control | Default | Where | Notes |
|---|---|---|---|---|---|
| Contact name | Client contact name | Text, max 64 | empty | Both | Hidden for masked shares. |
| Email | Client contact email | Text, max 64 | empty | Both | Hidden for masked shares. Validated for format only when non-blank, and only on save — there is no client-side check. Pre-fills the statistic user's email. |
| Description | Free text | Textarea | empty | Both | Hidden for masked shares. The form checks no length. |
| Created | Creation date | Read-only text | — | Edit only | Audit field, always rendered last. |

## Advertiser domain

An OpenRTB bid can name the advertiser behind the creative in a field called `adomain`. Whoever
receives that bid — a publisher's page running [header bidding](https://epom.com/ad-server/docs/guides/inventory/header-bidding.md),
their ad server, an exchange further down the chain — matches the domain against its own
advertiser block lists and reports demand by it. Epom fills that field in this order:

1. **This field.** Whatever you enter wins, for every creative under the advertiser.
2. **The DSP's own declaration.** For a creative bought from a DSP partner, the domain that came
   back on the winning bid is used when this field is empty.
3. **Nothing.** With neither, the bid carries no `adomain` at all.

Enter the brand's own site — `acme.com` for Acme's campaigns. Not the click tracker the
creative's landing link points at (Affise and its kind): a tracker's domain published as the
advertiser tells every buyer the wrong name, which is worse than telling them nothing. An absent
`adomain` is honest; a wrong one gets the bid blocked by anyone who blocks that tracker, and
never blocked by anyone avoiding the real brand.

Ad selection does not use this field to filter or target, with one exception: a video placement
whose **Competitive separation in a pod** is on compares advertiser domains to keep competing
advertisers out of one ad break (`https://www.toyota.com/` and `toyota.com` count as one). See
[Keeping competitors apart in a pod](https://epom.com/ad-server/docs/guides/inventory/placement-video.md#keeping-competitors-apart-in-a-pod).
An advertiser with no domain is never separated by domain.

### Who may set it

The field carries its own permission — **Set Advertiser Domain (OpenRTB adomain)**, in the
**Campaigns Management** group of the role matrix — separate from the rights that let someone
edit the advertiser at all. It is granted separately because the value leaves the platform:
whatever is typed here is the name Epom gives this advertiser on every bid it sends, to every
buyer, and a domain that is not the brand's own can get the network's supply blocked wherever
that domain is on a block list.

Without the permission the field is not on the page, and a save that carries the value anyway
is ignored. Nothing else is affected: **Advanced settings** keeps whichever of its other fields
you can use, and disappears entirely only when you can use none of them.

The permission starts **off for every role**: this is the one advertiser field whose value
leaves the platform, so nobody speaks for a brand until you say who may. To let the people who
set up your advertisers use the field, grant them the permission in **Admin → Users & Access →
User Roles & Permissions**.

An advertiser that already has a domain keeps it: the field is hidden, not cleared, and bids
keep publishing the stored value.

## Header actions

The title of a saved advertiser carries two counters, each a link: **(campaigns: N)** opens the
advertiser's campaigns, and **(banners: N)** opens every banner of the advertiser in one list,
across all its campaigns. Both counts exclude deleted entities. The banners list is the full
banners grid narrowed to this advertiser — toolbar, **Extended filter**, saved views, columns and
the bulk actions all work as they do on **All banners** — with the **Advertiser** column dropped,
since every row is this one. **Filter by** offers *Campaign* and *Banner*; a **Campaigns |
Banners** switch above the grid moves between the two lists. There is no **Add banner** button,
because a banner belongs to one campaign and this list spans them all; create it from the
campaign instead.

**Add new campaign** needs the right to create campaigns and an advertiser you can edit; on a
masked share the button is visible but disabled. **Actions** opens a menu with up to two
entries: **Create user & share**, which needs the right to share campaigns, at least one role you
may assign and edit rights on the advertiser, and **Delete this advertiser**, which is offered on
an advertiser you can edit.

### Create user & share

Creates a *statistic user*: a login pre-shared to this advertiser as **Can view**. The dialog is
titled *Create statistic account* and asks for a username, an email and a role (the roles you are
allowed to assign that can also view campaigns). **Username starts blank** — only the email,
taken from the advertiser's contact email, and the role are pre-filled. **Save** sends the
invitation and the toast reads *Invitation to choose a password sent to* the address; **Reset**
puts the three fields back. The invitation carries a link for the user to set a password, never
a password itself.

> **Corner case:** the pre-selected **Role** is simply the first role you are allowed to assign,
> which is not necessarily an advertiser-side one — on a stock network it can come up as
> *Self-serve Publisher*. Set it deliberately rather than accepting the default.

> **Warning:** a username or email that is already taken is **not refused** — the server rewrites
> it first. A taken username gets a number appended (`ops` becomes `ops1`, `ops2`, …) and a taken
> email gets `+N`, a random digit from 1 to 9, put before the `@`. The invitation goes to the
> rewritten address and the toast names it, so read the toast. Because of the rewrite, a taken
> username or email never produces a "must be unique" error. A blank username or email answers
> "Required" and a malformed email "Invalid email".

> **Note:** if the advertiser's own **Email** is blank, creating a statistic user backfills it
> with that user's email. The Basic info card will show a contact email you did not type.

### Delete this advertiser

Asks "The advertiser will be deleted along with its campaigns and banners. You can restore it
within 90 days. Are you sure?" and, on **Delete**, marks the advertiser and every campaign and
banner under it as deleted and switches them off. They leave the console and its lists. The
success toast carries a **Recently deleted** link; that page (also the box-with-arrow button in
the tree's action rail) or `POST /rest-api/deleted-entities/{type}/{id}/restore` brings the
advertiser back together with all of them for 90 days
([Restore something you deleted](https://epom.com/ad-server/docs/troubleshooting/restore-deleted.md)).

## Corner cases and gotchas

### Creating

> **The create form is Basic info only.** Targeting, limits, capping, payments, shares and every
> other card appear after the first **Save** — the entity has to exist first.

> **Analytics finalization policy is not on the create form.** It needs a saved advertiser, so
> even with the right permission you will only find it when you come back to edit.

> **Unsaved edits are kept in your browser.** Leave the card with changes you have not saved and
> the next visit shows "You have unsaved changes from a previous visit." with **Restore** and
> **Discard** above the form — a stale draft is the usual reason a card opens with text you do
> not recognise.

> **An advertiser with zero campaigns cannot serve anything.** The page shows a setup nudge with
> a **Create campaign** shortcut until the first campaign exists.

### Deleting

> **Only the owner can delete.** Deleting needs an **Is owner** share. With **Can view**,
> **Delete** still shows in the tree rail, but the server refuses it.

> **Deletion cascades — and can be undone for 90 days.** Deleting an advertiser marks all of its
> campaigns and banners as deleted too, switches them off and unlinks the banners from their
> placements; the confirm dialog says so and that it can be restored within 90 days. A deleted
> advertiser answers 404 over the API, including for writes — but for 90 days **Recently
> deleted**, the **Undo** on the toast of a delete made from the tree rail, or
> `POST /rest-api/deleted-entities/{type}/{id}/restore` restores the advertiser together with
> exactly those campaigns and banners, their on/off state and their placement links
> ([Restore something you deleted](https://epom.com/ad-server/docs/troubleshooting/restore-deleted.md)).

### Masked shares

> **A masked share locks the identity fields.** When you can see the advertiser but not its real
> identity, Name is locked and Contact name, Email and Description are hidden; whatever those
> fields would contain is not saved. The rest of the form saves normally — Active, Category,
> additional fields and Private are all still yours to change.

> **Add new campaign is disabled, not hidden,** on a masked share.

### When Advertiser domain is not on the page

> **Corner case:** the **Advertiser domain** field can be absent from an advertiser that has one
> set. Its absence hides the field, not the value — the stored domain is unchanged and is still
> published on bids. So if a buyer reports the wrong advertiser domain and you cannot find the
> field, the value is still there and still in use. Ask your network manager to surface it rather
> than assuming it is empty.

> **Corner case:** an advertiser you hold as a masked share never shows the domain field,
> whatever else is set up for you — masking and field-level availability are separate things, and
> each one alone is enough to keep it off the page.

> **An emptied Advertiser domain is stored as no value, not an empty one.** Bids then fall back
> to the DSP's declaration, or omit the field.

## Over the API

`POST` or `PUT /rest-api/advertisers/update.do` creates an advertiser (no `id`) or updates one.
Fields you do not send keep their stored value, and a field the caller has no permission for is
ignored and listed in `ignoredFields` with its reason in `ignoredFieldReasons`. An unknown or
deleted `id` answers `404`. `POST /rest-api/advertisers/status.do` switches up to 500 advertisers
on or off in one call; it is all-or-nothing on permissions.
`DELETE /rest-api/advertisers/{advertiserId}/delete.do` is the soft delete described above.

The advertiser's custom fields are under `/rest-api/additional-fields/ADVERTISER/{advertiserId}.do`
(see [Admin tools](https://epom.com/ad-server/docs/guides/admin/admin-tools.md#over-the-api)), and its Matched Placements card under
`GET /rest-api/matched/ADVERTISER/{advertiserId}.do?returnType=SITE|ZONE|PLACEMENT`. The Payments
card is `GET /rest-api/advertiser/{advertiserId}/payments.do`. The demand partner ads.txt lines
card is `GET /rest-api/advertisers/{advertiserId}/ads-txt`, `POST` the same path with `lines` to
add, and `POST /rest-api/advertisers/{advertiserId}/ads-txt/{lineId}/delete` to remove one.
Adding and removing payments is described in
[Finances, fees and referral billing](https://epom.com/ad-server/docs/guides/admin/finances-and-billing.md#over-the-api).

## Per-role notes

- **Network manager** — Basic info, Targeting, Limits, Frequency capping and Sharing settings,
  plus the extra cards (price adjustment, matching rules, payments) your network administrator
  grants.
- **Advertiser** — the same five cards; Basic info has no Category field and no Advanced
  settings.
- **Can view share**, including a statistic user — every card is read-only, with no Save or
  Reset. Ask the owner for **Can edit**.
- **Masked share** — identity fields locked or hidden, **Add new campaign** disabled; stats still
  work.

Exact grants: see [User roles](https://epom.com/ad-server/docs/guides/admin/users-and-roles.md).

## Related

- [Create and edit an advertiser](https://epom.com/ad-server/docs/guides/advertising/advertisers.md)
- [Campaigns](https://epom.com/ad-server/docs/guides/advertising/campaigns.md)
- [Shares](https://epom.com/ad-server/docs/guides/collaboration/shares.md)
- [Header bidding on a publisher page](https://epom.com/ad-server/docs/guides/inventory/header-bidding.md)
- [OpenRTB integration reference](https://epom.com/ad-server/docs/reference/openrtb-integration-reference.md)
- [Restore something you deleted](https://epom.com/ad-server/docs/troubleshooting/restore-deleted.md)