---
title: "Frequently asked questions"
description: "Quick answers to the questions the checks keep surfacing — masked entities, read-only cards, missing buttons, silent unlinking, incognito capping, demo expiry, API keys and more."
type: "troubleshooting"
audience: [network-manager, publisher, advertiser, admin]
keywords: [faq, payout, paid, payment, revenue share, advertised rate, ads.txt, spend, charges, masked, italics, read-only, missing button, unlinked, incognito, demo expired, api key, legacy ui, entity id, pending, rejected, ad unit, line item, key-value, geo targeting, fill rate, eCPM, deal id, third-party tag]
---

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.

# Frequently asked questions

Short answers, grouped by theme. Each links to the page with the full story.

## Access and visibility

### Why is an entity’s name shown in italics?

Italics mark a **masked** entity: your role is set to hide the owners of other people's sites (or
advertisers), and the site or advertiser belongs to someone else, so its identity is hidden — in grids and edit
pages its name is replaced by an anonymized code such as `SITE_123`. Masking hides *who*, not
*whether*: you still see the entity's volumes and revenue. It does not make the entity
read-only; that comes from a *Can view* share, which is not shown in italics. See
[Sharing and the permission model](https://epom.com/ad-server/docs/concepts/sharing-permission-model.md).

### Why is an entire edit page read-only?

Three different mechanisms produce the same look:

1. the entity is shared to you as *Can view*;
2. your role has the relevant feature permission at the **read-only** granting (controls
   visible, greyed out);
3. you are on a **demo account** looking at the pre-built demo entities.

The fix differs per cause — ask the owner for a *Can edit* share, ask your network administrator for the
permission, or nothing (demo entities stay read-only by design).

### Why don’t I see a card, tab or button that a colleague sees?

Almost every card and toolbar item is permission-gated, and the UI hides what your role
lacks rather than showing it disabled. Ask your network manager to compare your role with your
colleague's. What the stock Publisher and Advertiser roles include is listed in
[What your network controls](https://epom.com/ad-server/docs/roles/publisher.md#what-your-network-controls) and its
[advertiser counterpart](https://epom.com/ad-server/docs/roles/advertiser.md#what-your-network-controls). This also applies to dropdown
*options* — see the next two questions.

### Why is a targeting type missing from the "Add targeting" list?

Each targeting type is an individual permission (and pre-targeting types are separate
permissions from targeting types). The list shows only the types your role is granted.
See [Add targeting](https://epom.com/ad-server/docs/guides/targeting/add-targeting.md).

### Why is there no Subject column in the Frequency Capping card?

The column and its selector (cookie / server-side / IP…) appear only when the network has
server-side capping storage enabled, IP (or last-external-source IP) capping enabled **and** your
role holds the matching IP-subject permission, which no stock role does. Existing caps still
work — you just cannot see or change their subject.
See [Set up frequency capping](https://epom.com/ad-server/docs/guides/delivery/frequency-capping.md).

### Why is the language / theme / interface selector missing from my user menu?

The user menu (your name, top right) always carries **Color theme** and **Density**. **Display
language** appears only when the network allows users to change language, **Open classic UI**
only when it allows interface switching — both are white-label options your network administrator
sets — and **User interface mode** (Trees / Grids) only for a role that holds the *User
Interface Mode* permission.

## Entities and editing

### Why did my banner get unlinked from placements after I changed its size?

Saving a banner re-checks all its links and **silently removes** those where it no longer
fits the placement (exact size, unless the placement has **Flexible placement size** ticked —
then any banner that fits inside it — or uses an Any-size unit). Saving a placement does the
same for its linked banners, showing only a "Done" toast. Fix the size, then re-link on the
**Linked placements** card. See
[the size check](https://epom.com/ad-server/docs/troubleshooting/ad-not-serving.md#check-5--do-the-types-and-sizes-fit).

### Why did switching a banner’s type wipe its settings?

Changing a saved banner's **Banner type** and saving **deletes** the old type's data: every save
cleans the fields the new type does not use. Create a new banner for the new type when you may
need the old content back, and see [Banner types](https://epom.com/ad-server/docs/reference/banner-types.md) for the fields
each type uses.

### Why was my banner switched off and marked Pending after I edited it?

When your role is under the strict review mode (review is set per role, not per network, and the
stock roles are not reviewed), editing a moderated field of an approved banner switches it off and returns it to
*Pending*, and it cannot be switched on again until it is approved. After it is re-approved,
switch it back on yourself — approval does not flip the switch. A reviewer's **Reject** also
switches the creative off. Your network manager knows whether your role is reviewed.

### What do the Pending / Rejected badges on a banner mean — and why is there never an "Approved" badge?

The badges flag creatives needing attention when moderation applies. An approved banner shows
**no badge** — no news is good news. *Pending* means a reviewer has not decided yet;
*Rejected* means it was declined and switched off (the network can send the owner an e-mail
with the reason). A brand-new creative under moderation starts as *New* and shows no badge until
it is submitted for approval.

### Where do I find an entity’s ID?

The ID is part of the edit page's address — `…/advertisers/9/campaigns/4/banners/1/edit` is
banner 1. You can also show IDs beside names across the account: **Account → Preferences →
User interface preferences → Show entities' IDs**. Support and API calls always want this
numeric ID, not the name.

### What does the red "Not serving" pill on a banner or placement mean?

The entity has no links to the other side and its selection Rules are off — nothing can
serve. Yellow *Rules only* means no direct links but Rules are on; gray *Paused · N* means
the entity itself (or every one of its N linked entities) is turned off; green *Serving · N*
means N linked entities are on. The pill reads links and switches only — not parents,
targeting, capping, limits or the other side's linking switch — and it is drawn only while the
page's own **Linked** card switch is on. Click it to jump to the linking card. See [My ad is not serving](https://epom.com/ad-server/docs/troubleshooting/ad-not-serving.md#read-the-signals-first).

### If I move a banner to another campaign, do its statistics and budget move with it?

**Move** keeps the banner's ID, and General reports attribute a banner's rows to the campaign it
is in **now** — so its whole history, impressions and spend included, shows under the new
campaign and advertiser from the moment you move it. Limit counters do not follow: the old
campaign's budget counter keeps what was spent, the new campaign's counter counts only what the
banner delivers after the move. **Copy** creates a new banner with a new ID and no statistics.
See [Bulk banner operations](https://epom.com/ad-server/docs/guides/advertising/banners-bulk-operations.md#clipboard--copy-move-link-between-campaigns).

### Can an advertiser have a balance?

There is no prepaid wallet on an advertiser. A **Total budget** in the advertiser's (or
campaign's) Limits card plays that role: delivery stops when spend reaches it, and the bar under
the field shows what is left. See [Set volume limits and budgets](https://epom.com/ad-server/docs/guides/delivery/limits.md).

## Serving behavior

### Why is a banner still serving minutes after I switched it off?

A saved change normally reaches the ad servers within seconds, because saving publishes an
update message. Anything that message misses waits for the next full rebuild of the ad servers'
snapshot, which on the default schedule runs every 10 minutes. Cached pages and CDN copies of a
creative can extend the visible tail. If it still serves much later, ask Epom support or your account manager to check the ad servers.

### Does frequency capping work for incognito / private-browsing visitors?

Cookie-based caps cannot recognize a returning incognito visitor (the cookie dies with the
window), nor visitors on browsers that do not keep the cookie — Safari, Firefox, Brave,
DuckDuckGo, iOS and Apple TV. When the request reports private browsing, caps with the *cookie +
server-side* subject fall back to the server-side counter; plain cookie caps under-count for such
traffic. Without cookies (apps, connected TV) the server-side counter belongs to the device
advertising ID the request carries, or to an IP / user-agent fingerprint when there is none. See
[Set up frequency capping](https://epom.com/ad-server/docs/guides/delivery/frequency-capping.md).

### Why does a CPA campaign keep turning itself off?

A total cap (impressions, clicks, conversions or budget), a per-conversion-action total limit,
or the **CPA … Auto Deactivation** pair (no conversions after both so many impressions and so
many hours) switches the entity's own **Active** switch off at the next hourly sweep — the switch
being off is the feature, not a bug, and it stays off after you raise the cap. Raise or reset the
limit, then switch it back on yourself. See
[Limits](https://epom.com/ad-server/docs/guides/delivery/limits-how-caps-behave.md#what-happens-when-a-cap-is-reached) and
[Action limits](https://epom.com/ad-server/docs/guides/delivery/action-limits.md).

### Who can see why a DSP creative was blocked?

The **DSP creative scan** grid shows per-creative verdicts. Your network administrator has it; an
account role gets it at **Account → RTB** only when the network administrator switches it on. Everyone else
sees just the effect (the creative never wins). See
[creative policy protection](https://epom.com/ad-server/docs/use-cases/creative-policy-protection.md).

### Why does a deleted entity still show up in reports?

Statistics are history — deleting an entity stops future serving but keeps its recorded
rows, still attributed to its name and ID. That is intentional; filter it out of the report
if you don't want to see it.

## Tags and preview

### Why is there no Preview button on my placement?

Native, application and click-through placements have no preview-capable tag type, so there
is no Preview button — verify them through the API response instead. Site, mobile, non-standard,
video and email placements do have one. On a demo installation a demo-account user sees the
button on every type, but only Site, Native and Video placements open the demo page. See
[Tags and preview problems](https://epom.com/ad-server/docs/troubleshooting/tags-and-preview.md#symptom-no-preview-button-on-my-placement).

### Why did a preview link I sent stop working?

Links from the preview page's **Copy** / **Open** are signed and work for **30 days**; after that
they answer "Not found." Open the preview again and send the new link. Links created before
release 152 stopped working with it. See
[Tags and preview problems](https://epom.com/ad-server/docs/troubleshooting/tags-and-preview.md#symptom-preview-works-but-the-live-page-doesnt-or-the-reverse).

### Why does my tag show nothing on an HTTPS page?

Most likely the tag was generated with the HTTP protocol option — browsers block
mixed-content requests. In the **Ad tags & API** card's **Settings** tab set **Protocol** to
HTTPS (or Relative), copy the regenerated tag and replace it on the page. See
[Tags and preview problems](https://epom.com/ad-server/docs/troubleshooting/tags-and-preview.md).

## Account and analytics

### Where is my API key?

**Account → Preferences → Change personal information**, in the **API key** row. The key is
read-only; **Generate** creates a new key at once (no Save needed) and the old one stops working
immediately for every script that uses it. If the row is missing, your role lacks *API Key
Access*, which no stock role holds — your network administrator grants it. Send the key in the `X-Api-Key`
header ([REST API](https://epom.com/ad-server/docs/api.md)).

### How do I switch back to the legacy interface?

Open the user menu (your name, top right) and choose **Open classic UI**; the choice persists
for your browser. It is available only when your network administrator allows interface switching. The
*Trees / Grids* toggle in the same menu (**User interface mode**) is a different setting — it
changes the view mode inside the current UI, not the UI generation.

### Why did my demo account expire so fast?

The demo window (15 days by default) counts from **account creation**, not first login —
sign up on Monday, first log in on Friday, and four days are already gone. When it runs out
the account locks behind an overlay. See [Demo accounts](https://epom.com/ad-server/docs/roles/demo-account.md).

### Why are my Conversions lower than the number of video events?

VAST playback and viewability events (quartiles, complete, viewable impression) are *system*
conversions and no longer count in the **Conversions** column, nor in I2C or CCR; their money
still counts in Net and Gross. Group the report by **Conversion action** or **Attribution type**
to see them with real counts. See
[Analytics discrepancies](https://epom.com/ad-server/docs/troubleshooting/analytics-discrepancies.md) and the [metrics reference](https://epom.com/ad-server/docs/reference/metrics.md).

### Why do my "today" numbers keep changing?

Reports are fed by periodic log flushes from the ad servers (every hour by default), so today
is always provisional and yesterday can revise slightly upward until all logs land. For final
numbers, report on completed days. See [Analytics discrepancies](https://epom.com/ad-server/docs/troubleshooting/analytics-discrepancies.md).

### Why do two users see different numbers in the same report?

Reports respect entity sharing (each user sees only their slice) and column permissions
(revenue/profit columns can be hidden per role). Same definition, different scope. See
[Analytics discrepancies](https://epom.com/ad-server/docs/troubleshooting/analytics-discrepancies.md#symptom-a-colleague-sees-different-numbers--columns-in-the-same-report).

### Which time zone do statistics use? Can I change it?

General reports, dashboards and widgets use the ad server's **reporting time zone** — one zone for
the whole network, readable as `reportingTimeZone` from `GET /rest-api/network/settings.do`. It
cannot be changed per user or per account. Only the **Advanced** report has a **Time zone**
selector (fixed UTC offsets, UTC by default). Scheduled e-mails go out at an hour you pick **in
UTC**. Details:
[Which time zone do reports use?](https://epom.com/ad-server/docs/concepts/analytics-pipelines-explained.md#which-time-zone-do-reports-use)

### Why does the dashboard show yesterday’s spend but my Advanced report shows nothing?

Usually the two are looking at different days: the dashboard counts in the reporting time zone,
the Advanced report in the zone you picked. Align them (pick the reporting time zone's offset in
the Advanced report) and the days match. Also check that the Advanced report's dates are still
within the few days the analytics cluster keeps.

### Why can I only see a few days in an Advanced report?

Advanced reads the raw event logs, which the analytics cluster keeps for a short window only —
set by Epom per network, two days by default. For a month or more use the **General** report.

### Can I manage the account from my phone?

Yes, in the new interface — its layout adapts to phone screens (in portrait and landscape), and
dialogs open as bottom sheets. Wide grids keep their columns and scroll sideways, so analytics
and long tables are still easiest on a larger screen.

### Can I get reports automatically — by e-mail, or into a chat or spreadsheet?

Yes. Schedule a saved report to arrive by e-mail, or pull it from a script with the analytics
API and forward it wherever you like. See
[Automate reports](https://epom.com/ad-server/docs/guides/analytics/automate-reports.md).

## For publishers

### When and how am I paid?

Your network pays you, under the agreement you have with it: payment dates, minimum amounts and
methods are the network's terms, not product settings. The stock Publisher role has no payout
history or payment-details card, so ask your network manager. What you earn is the **Revenue**
column in your reports and on your dashboard — see
[Watching what it earns](https://epom.com/ad-server/docs/roles/publisher.md#watching-what-it-earns). It is what you are paid,
unless your network adjusts the figures shown to you; if a statement differs, ask your network
manager.

### Why is my revenue below the advertised rate?

The advertised rate is what advertisers pay. Your **Revenue** is what the network pays you for the
same impressions: a fixed price, or a revenue share — a percentage of the advertiser's price —
that the network sets on your site or placements. The difference is the network's margin. Your
**eCPM** is also an average over every impression, including lower-priced campaigns and house ads,
so it is lower than the best rate on offer. Impressions for which the network has set no payout
count at zero. If the figures do not match your agreement, send your network manager the site,
the dates and the report.

### What do I put in my ads.txt?

The lines your network gives you. The product does not create or host `ads.txt` or
`app-ads.txt`; the network knows its seller IDs and the ad systems it sells through. See
[Privacy signals and ads.txt](https://epom.com/ad-server/docs/guides/inventory/privacy-and-ads-txt.md#adstxt-and-app-adstxt).

### Which consent vendor do I add to my CMP?

Epom, IAB vendor ID **849**, unless your network gave you another one. See
[Privacy signals and ads.txt](https://epom.com/ad-server/docs/guides/inventory/privacy-and-ads-txt.md).

## For advertisers

### Where is my spend?

In the **Charges** column: the **Charges** tile and column on the advertiser dashboard, and the
**Charges** column in an Analytics report. There is no column called "spend". See
[Run a report](https://epom.com/ad-server/docs/guides/analytics/run-report.md).

### Why can’t I link my creative, set a frequency cap or get a conversion pixel?

The stock Advertiser role does not include them; your network manager does them for you or adds
them to your role. See [What your network controls](https://epom.com/ad-server/docs/roles/advertiser.md#what-your-network-controls).

## "How do I…" — mapping other ad servers onto Epom

If you arrived from Google Ad Manager, Kevel, AdButler, Revive or similar, the same job
usually exists in Epom under a different name. These answers map the common request onto
Epom's real feature and link to the page with the steps.

### Getting started

#### What is an ad server, and do I also need a DSP?

Epom **is** the ad server: it stores your creatives, evaluates targeting, priority and caps
on every request, picks the winner and logs the impression. A DSP is a bidder you plug in as
an OpenRTB *demand partner* — its bids compete in the same auction as your direct campaigns,
so the two are complementary, not either/or. See
[Ad server vs DSP](https://epom.com/ad-server/docs/concepts/ad-server-vs-dsp.md).

#### How do I get from an empty account to a live ad?

Create an advertiser → campaign → banner on the demand side, a site → zone → placement on the
supply side, link a banner to a placement, then copy the placement's ad tag onto your page.
See [Quick start for a network](https://epom.com/ad-server/docs/start/quick-start-network.md).

#### What is the Epom equivalent of an "ad unit"?

An Epom **placement** — it carries the size and the ad tag and is the on-page slot that
renders ads. A **zone** in Epom is only an organizational grouping under a site, not the slot
itself (the opposite of AdButler/Broadstreet, where "zone" means the slot). See
[Create a placement](https://epom.com/ad-server/docs/guides/inventory/placements-create.md) and
[Zones](https://epom.com/ad-server/docs/guides/inventory/zones.md).

#### What maps to a "line item" or "flight"?

The Epom **campaign** holds the buy: pricing type, dates, budgets, priority and targeting.
Epom has no separate flight entity — the flight dates live on the campaign. See
[Create and edit a campaign](https://epom.com/ad-server/docs/guides/advertising/campaigns.md).

### Targeting

#### How do I geo-target a campaign?

Add a Country, Location or Browser Country rule on the entity's Targeting card (custom country
groups and world regions are options inside the Country list). Location resolves from the
visitor's IP down to Country → Region → City — there is no zip/postal-code, DMA or lat/long
radius picker. See
[Add targeting](https://epom.com/ad-server/docs/guides/targeting/add-targeting.md) and the
[targeting dimensions reference](https://epom.com/ad-server/docs/reference/targeting-dimensions.md).

#### How do I target key-values or keywords passed in the ad tag?

Pass the parameter in the ad tag, then match it with the **Custom Parameter** dimension
(Value / One of / Substring / free-text Expression) or the persisted **Cookie Value**
variant. Both are demand-side only — they do not filter DSP/RTB bids. See
[Target on custom parameters](https://epom.com/ad-server/docs/guides/targeting/custom-parameter-targeting.md).

#### How do I schedule a campaign or run it only on certain days/hours?

Set the campaign start/end dates for the flight, and add Day-of-week / Time-range dayparting
rules for the hours. Dayparting can use the visitor's local time. See
[Seasonal, geo and dayparting](https://epom.com/ad-server/docs/use-cases/seasonal-geo-dayparting.md).

#### How do I stop objectionable ad categories from serving on my site?

Epom has no single global category blocklist. For programmatic demand, add **blocked IAB
categories** on the site's OpenRTB integration card (sent to DSPs as `bcat`); for direct
demand, use category-matching Rules plus name-based pre-targeting blocks. See
[Keep unwanted ad categories off your inventory](https://epom.com/ad-server/docs/guides/targeting/block-ad-categories-on-inventory.md).

#### How do I set up brand safety / avoidance lists?

There is no single "Brand Safety" screen — you assemble it from category-matching Rules,
domain/app-package preset exclude lists, advertiser/campaign/banner name blocks, and
campaign competitive separation. See
[Brand safety controls](https://epom.com/ad-server/docs/use-cases/brand-safety-controls.md).

### Delivery and pricing

#### CPM, CPC or CPA — which pricing model do I pick?

Set the pricing type on the campaign to match the goal: CPM (per 1,000 impressions) for
reach, CPC for clicks, CPA for a tracked conversion. Prices can vary per country. See
[Pricing](https://epom.com/ad-server/docs/guides/delivery/pricing.md).

#### How do I cap how often one user sees an ad?

Add a frequency cap at advertiser, campaign, banner or placement level (the placement level and
the IP subject need permissions your network administrator grants), counting impressions, and — on campaigns,
banners and placements — clicks or conversions, with a per-user-cookie, server-side or IP
subject. See
[Set up frequency capping](https://epom.com/ad-server/docs/guides/delivery/frequency-capping.md).

#### How do I cap total impressions or spend (a budget cap)?

Use **Limits** — total, daily, weekly and monthly caps on impressions, clicks, conversions or
budget per advertiser/campaign/banner/site/placement, with optional start/end dates and even
pacing; which of them your role can set is up to your network manager. Per-conversion caps
live on action limits. See [Limits](https://epom.com/ad-server/docs/guides/delivery/limits.md).

#### How do I control which campaign wins share-of-voice?

The network sets each campaign's **Priority** tier, and only the top tier with something
eligible competes. Within it **Weight** picks the campaign (weight 2 gets roughly twice the
traffic of weight 1), then the banner weight picks a banner inside it; the CTR, I2C or eCPM
optimizers can replace that draw. The **Banners probability** card on a placement shows the
resulting split. See [Optimize ad rotation](https://epom.com/ad-server/docs/guides/delivery/optimization.md).

#### Where do I set a floor price / minimum CPM?

For programmatic demand, per-country **Bid floor** cards on sites, placements and banners (an
admin-only permission) set the minimum DSP bid you accept; the site **CPM threshold** is the
last fallback for that floor. For direct campaigns the equivalent is **Minimum margin** on the
placement or site **Pricing** card. Epom floors are static per country — there is no
soft/dynamic/auto-optimized floor tier. See [Pricing](https://epom.com/ad-server/docs/guides/delivery/pricing.md) and
[CPM threshold](https://epom.com/ad-server/docs/guides/delivery/cpm-threshold.md).

#### First-price or second-price — what does the winner actually pay?

A price auction only happens for programmatic (OpenRTB) bids and PMP deals; direct campaigns are
chosen by priority and weight, not by an auction. For programmatic bids, first price pays the bid;
second price clears one cent above the runner-up or the floor, never above the bid; a fixed-price
deal clears at its floor. See
[First-price vs second-price auctions](https://epom.com/ad-server/docs/concepts/auction-first-vs-second-price.md).

### Creatives

#### Which creative types can I run, and when do I use each?

Image (local/external), HTML Code, Native, Video, OpenRTB and Template banners — each serves
on specific placement types. See the [banner-type decision guide](https://epom.com/ad-server/docs/guides/advertising/banners-overview.md).

#### How do I traffic a third-party ad tag?

Paste it into an **HTML Code** banner; Epom expands its macros (`$$RANDOM$$` cache-buster,
click and impression tokens) at serve time and serves the tag verbatim to the page. See
[HTML and Template banners](https://epom.com/ad-server/docs/guides/advertising/banner-html-and-template.md).

#### How do I serve an HTML5 zip creative?

There is no top-level "upload zip" type — an HTML5 creative goes through an
**HTML5 Template** banner, built on a template your network prepares, whose ZIP is a template
*file property*. See
[Serve an HTML5 creative from a ZIP bundle](https://epom.com/ad-server/docs/guides/advertising/html5-zip-creatives.md).

#### What are the size, file-type and file-size limits for creatives?

Image files are capped (default 200 KB, network-configurable) and uploaded videos at 20 MB
(also network-configurable); an HTML5 ZIP is not held to the image cap but is inspected on
unpacking (1,000 files, 20 MB per file, 50 MB in all); native assets have minimum-dimension and
text-length caps. See the consolidated
[creative ad specs](https://epom.com/ad-server/docs/reference/creative-ad-specs.md).

### Reporting

#### How do I build a custom report?

Pick a report type, date range and time zone, choose group-by dimensions and metric columns,
then apply filters and entity trees. See [Run a report](https://epom.com/ad-server/docs/guides/analytics/run-report.md).

#### What does eCPM (or RPM) mean in my report?

eCPM is revenue per 1,000 impressions — Epom's equivalent of RPM. There are three columns
(Net, Gross, Profit), and the summary row is a *blended* eCPM recomputed from summed totals,
not an average of row ratios. See [CPM, eCPM and RPM explained](https://epom.com/ad-server/docs/concepts/revenue-metrics-cpm-ecpm-rpm.md).

#### What is fill rate, and why is mine low?

Fill rate is impressions ÷ requests. A low one routes to a concrete cause — no matching
demand, a floor rejecting bids, or a missing passback — and the Requests column vanishes if
you group by any demand dimension, which can make it look broken. See
[My fill rate is low](https://epom.com/ad-server/docs/troubleshooting/low-fill-rate.md).

#### How do I report on unfilled impressions?

On the General report use **Requests** and **Fill Rate**, grouped by supply-side dimensions only;
on the Advanced report use the extended-view **Direct requests**, **Returned requests**, **Filled
requests** and **Fill rate, %** columns. Watch Requests against Impressions for the gap. See the
[metrics reference](https://epom.com/ad-server/docs/reference/metrics.md).

#### Why don’t my numbers match another platform’s?

Time-zone bucketing, metric definitions (Requests vs Impressions, Net vs Gross), serve-time
vs render/viewability counting, filtered traffic and ad-blocker asymmetry all shift the count;
a sub-10% gap is normal. See [Analytics discrepancies](https://epom.com/ad-server/docs/troubleshooting/analytics-discrepancies.md).

### Conversions

#### Pixel or server-to-server postback — which should I use?

A browser **pixel** is easy but depends on the cookie surviving; **server-to-server**
(postback with a click ID) is cookie-independent and recovers conversions lost to blockers
and cross-device flows. See [Pixels and S2S](https://epom.com/ad-server/docs/guides/conversions/s2s-and-pixels.md) and the
comparison in the [conversions overview](https://epom.com/ad-server/docs/guides/conversions.md).

#### How long after a click or view does a conversion still count?

Each action carries a **Post-click** and a **Post-view** conversion window (a 0–255 value plus a
period); a qualifying click always beats a view. See
[Conversion actions](https://epom.com/ad-server/docs/guides/conversions/conversion-actions.md).

### Programmatic

#### What is a Deal ID, and how does a PMP deal work in Epom?

A Deal ID is a string both you and the buyer reference; you record it on a campaign PMP deal
row with a buyer seat, floor and auction type, and Epom sends it in the OpenRTB bid request.
Epom does not mint the ID and has no programmatic-guaranteed type. See
[PMP private deals](https://epom.com/ad-server/docs/use-cases/pmp-private-deals.md) and [PMP deals](https://epom.com/ad-server/docs/guides/advertising/pmp-deals.md).

#### My deal isn’t delivering / gets no bids — what do I check?

Confirm the buyer seat first, then the Country rows vs your traffic (a private-auction deal
sends **no** request for uncovered geos), the deal ID the DSP returns, the floor vs the bid,
that OpenRTB banners exist on the campaign, and the creative-scan verdict. See
[My PMP deal is not delivering](https://epom.com/ad-server/docs/troubleshooting/pmp-deal-not-delivering.md).

#### How do I connect an external DSP to bid on my inventory?

Add it as an OpenRTB demand partner in **Admin → Demand partners (DSP) → DSP partners** (or at
**Account → RTB** for a role that holds *DSP Partners*) — URL, protocol version, timeout, max
QPS, pricing model and user sync. See [DSP partners](https://epom.com/ad-server/docs/guides/admin/dsp-partners.md).

### Serving and tags

#### Why aren’t my ads showing?

Walk the decision tree: on/off switches up both trees, moderation state, links, sizes,
targeting, capping, limits and network-level gates. If the tag renders nothing at all, it's a tag
problem, not a selection one. See [My ad is not serving](https://epom.com/ad-server/docs/troubleshooting/ad-not-serving.md) and
[Tags and preview problems](https://epom.com/ad-server/docs/troubleshooting/tags-and-preview.md).

#### Why does a third-party tag render blank even though the slot is set up?

Common causes are mixed-content (HTTP tag on an HTTPS page), a stale serving domain, an ad
blocker, a hand-edited tag, or a script that refuses to render inside an iframe. See
[Tags and preview problems](https://epom.com/ad-server/docs/troubleshooting/tags-and-preview.md).

#### Why did my video ad fail to play?

Players swallow VAST errors silently. Reproduce with the placement's VAST tag URL in a test
player and check the Epom-specific causes — empty VAST when no banner matched, a third-party
wrapper timing out, VPAID settings, or a media mime-type mismatch. See
[Diagnose video ad playback failures](https://epom.com/ad-server/docs/troubleshooting/vast-errors-and-playback.md).

#### Clicks aren’t counting on my third-party tag — how do I fix it?

The Epom click-redirect macro must sit at the very start of the click destination, and
`$$RANDOM$$` must be present so a cached iframe still logs a fresh impression. See
[Fix click tracking on third-party tags](https://epom.com/ad-server/docs/troubleshooting/click-tracking-third-party-tags.md).

## Related

- [Troubleshooting overview](https://epom.com/ad-server/docs/troubleshooting.md)
- [My ad is not serving](https://epom.com/ad-server/docs/troubleshooting/ad-not-serving.md)
- [My fill rate is low](https://epom.com/ad-server/docs/troubleshooting/low-fill-rate.md)
- [Tags and preview problems](https://epom.com/ad-server/docs/troubleshooting/tags-and-preview.md)
- [Analytics discrepancies](https://epom.com/ad-server/docs/troubleshooting/analytics-discrepancies.md)
- [Ad server vs DSP](https://epom.com/ad-server/docs/concepts/ad-server-vs-dsp.md)
- [Publisher playbook](https://epom.com/ad-server/docs/roles/publisher.md)
- [Advertiser playbook](https://epom.com/ad-server/docs/roles/advertiser.md)