---
title: "Quick start: serve your first ad as a network manager"
description: "End-to-end walkthrough from an empty account to a served ad — advertiser, campaign, banner, site, zone, placement, linking, ad tag and first analytics rows."
type: "tutorial"
audience: [network-manager]
keywords: [quick start, first ad, create advertiser, create campaign, create banner, create site, create zone, create placement, link, ad tag, analytics]
ui_path: "Account → Advertisers / Publishers"
---

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.

# Quick start: serve your first ad as a network manager

This tutorial takes you from an empty account to a real ad on a page. You will build both
sides of the system — a banner on the demand side, a placement on the supply side — link
them, copy the ad tag, watch the ad render, and see the first rows arrive in Analytics.
Plan for 20–30 minutes.

## Who this is for

Network managers. You need create rights on both the **Advertisers** and **Publishers** trees,
and this tutorial builds one chain in each — see
[Roles → Network manager](https://epom.com/ad-server/docs/roles/network-manager.md). What a network manager can see and
change is set by the permissions your network administrator grants in **Admin → Users & access → User roles &
permissions**; where a step needs a permission that is not always granted, it says so.

## Prerequisites

- You can sign in to the account area of the new interface.
- An image file to use as the test creative — any PNG/JPEG/GIF in a standard ad size,
  e.g. 300×250.
- To copy and preview a **Universal JS** tag (Stage 4): the **Ajax** permission for site
  placements, and at least one ad-serving domain on the network. The permission is admin-only —
  your network administrator grants it in **Admin → Users & access → Admin roles & permissions**
  (if nobody in your network can open that page, ask Epom support or your account manager) — and without
  it the **Ad tags & API** card offers only the tabs your role holds.

## Steps

### Stage 1 — create the demand side (advertiser → campaign → banner)

1. Go to **Account → Advertisers**. In tree mode, use the action rail next to the tree and
   click **New advertiser** (in grid mode the **New advertiser...** button sits above the grid).
2. On the **Create new advertiser** page fill in **Name** (the only required field) and leave
   the status toggle on **Active**.
   ![Create new advertiser page](https://epom.com/docs-images/ad-server/quick-start-network/new-advertiser.webp)
3. Click **Save**. Success: you land on the advertiser's full edit page — the Basic info card
   is now joined by Targeting, Limits, Frequency capping, Sharing settings and the advertiser's
   other cards.
4. Click **New campaign** (on the action rail, or **Add new campaign** in the advertiser's
   header). Fill in **Name**, keep the status **Active**, and leave **Weight** — and
   **Priority**, which shows only with the **Manage Priority** permission — at its default for
   now. Click **Save**. Success: a "Campaign saved" toast, and you land on the campaign edit
   page.
5. With the campaign selected, click **Add new banner for...** on the action rail (or **Add new
   banner** in the campaign's header). The menu holds one **Add banner for ...** entry per
   placement type you may create banners for. Pick **Add banner for Site Placement** (standard
   display).
6. On the new-banner form fill in **Name** and pick the **Banner type**. For the simplest first
   run use **Local File** and upload your image under **Banner creative** (**Upload file**; **From
   link** takes a URL instead). Set **Ad unit** to match your creative (pick the matching ad unit,
   e.g. 300×250, or choose a custom unit and enter **Width** and **Height**), and enter the
   destination **URL** the click should open.
   ![New banner form](https://epom.com/docs-images/ad-server/quick-start-network/banner-basic-info.webp)
7. Click **Save**. Success: a "Banner saved" toast, and you land on the new banner's edit page.
   The creation save never asks you to link anything; you link manually in Stage 3.

### Stage 2 — create the supply side (site → zone → placement)

8. Go to **Account → Publishers** and click **New site**. Fill in **Name**, optionally pick a
   **Category** (required only where your network demands it), keep **Inventory type** =
   *Website*, and enter the **Site URL**. Click **Save**. Success: a "Site saved" toast and the
   site's edit page.
9. With the site selected, click **New zone**. A zone is just a named group of placements —
   give it a name like "Homepage" and save.
10. With the zone selected, click **Add new placement...** — a menu of the placement types you
    may create opens. Pick **Site Placement** to match the banner.
11. On the **Create new placement** page fill in **Name** and set **Size** to the *same* size
    as your banner's ad unit (e.g. the 300×250 ad unit). Click **Save**. Success: you land on the
    placement edit page, which shows the placement's cards — **Ad tags & API** among them for a
    role that holds a tag permission.

### Stage 3 — link the banner to the placement

12. Open your banner (Advertisers → advertiser → campaign → banner) and find the
    **Linked placements** card. In tree mode (the default) it is a tree of sites, zones and
    placements: expand the site and zone, tick the placement you just created and click
    **Save** — a "Banner placements saved" toast confirms it. In grid mode the card has
    **Site**, **Zone** and **Placement** pickers instead: choose them in turn and click **Link**;
    the placement row appears in the card's grid.
13. Verify the match from both ends: the banner's **Matched placements** card now lists the
    placement, and the placement's **Matched banners** card lists the banner. If either list
    is empty, the pair is not actually servable — see the corner cases below. (The banner-side card
    needs **Matched inventory** and the placement-side card **Matched advertisers**; no stock
    role holds either.)

### Stage 4 — copy the ad tag and see the ad

14. Open the placement and expand the **Ad tags & API** card (it is on a saved, **Active**
    placement and disappears while the status switch is off). It opens on the placement's
    default code type — **Universal JS** for a site placement, where your role holds it. The
    other tabs are the remaining code types your role may use for this placement type (Mount
    JS, Simple Iframe, Direct URL, API) plus **Settings**. Where Domain, Ad wrapper, Protocol
    and Fit container controls are offered above the code, adjust them if you serve from a
    custom domain or an HTTPS-only page, then copy the code block.
    ![Ad tags & API card](https://epom.com/docs-images/ad-server/quick-start-network/placement-ad-tags.webp)
    > **Note:** a **Copy ad tag** quick action copies a placement's tag without opening the edit
    > page. The **Grids** view has it on every taggable placement row; the Publishers tree shows it
    > only on placements with recent traffic, so a placement you have just created has none there.
    > It copies the first tag type your role may use in a fixed order — Simple Iframe and Direct
    > URL come before Universal JS — so copy from the card when you need a particular one.
15. Check the ad before touching a real page: use the **Preview** action on the placement. It
    opens the standalone preview page, which renders the ad in an ad container on the page and
    lets you tweak layout (container size, top and left offsets, page mockup) live, and request parameters
    (invocation code type, IP, channel, custom parameters) with **Apply**, which refetches the
    ad. Success: your test image renders.
16. Paste the tag into a plain HTML file, open it in a browser, and confirm the image
    renders there too. Reload a few times to generate a handful of impressions, and click
    the ad once to record a click.

### Stage 5 — check analytics

17. Go to **Account → Analytics**. In the filter form set **Date range** to **Today**, set
    **Group by** to **Placement** (or **Banner**), and click **Run report**. A report tab opens.
    ![First analytics report](https://epom.com/docs-images/ad-server/quick-start-network/first-report.webp)
18. Success: your placement appears with a non-zero **Impressions** count and your test
    click. Statistics arrive by the hour: an impression shows up shortly after its hour ends
    (one at 10:02 appears at about 11:01), so if the rows are still zero, re-run the report after
    the next full hour.

## Options and fields

Only the fields the tutorial touches; full tables live in the linked references.

| Field | Where | What it does |
|---|---|---|
| Name | every entity | Display name; the only universally required field. |
| Status (Active/Inactive) | every entity | An inactive entity — at *any* level of the chain — stops serving for everything below it. |
| Priority / Weight | campaign (Weight also banner) | Delivery tiering and traffic split between competing ads. Priority shows only with **Manage Priority**. Defaults are fine for the first run. |
| Ad unit | banner | The creative's dimensions: a standard ad unit, or a custom one with **Width** and **Height**. Required for Local File banners. |
| Size | placement | The slot's dimensions. A banner's ad unit and a site placement's size must be compatible for linking and serving. |
| Category | site | Content classification; also feeds category-based rules later. |
| Domain / Ad wrapper / Protocol / Fit container | Ad tags & API card | Shape the generated JavaScript tag: custom serving domain (needs the ad-serving-domain permission), wrapper, HTTPS, responsive container (mobile and non-standard placements). |

See [Banner types](https://epom.com/ad-server/docs/reference/banner-types.md), [Placement types](https://epom.com/ad-server/docs/reference/placement-types.md)
and [Invocation codes](https://epom.com/ad-server/docs/reference/invocation-codes.md) for the exhaustive versions.

## Corner cases and gotchas

> **Corner case:** an unlinked banner serves nothing. Creating a banner and a matching
> placement is not enough — the link is an explicit step (Stage 3). If the placement shows
> an empty **Matched banners** list, no ad can come out of it, and the page shows the
> passback code or nothing at all.

> **Corner case:** size mismatch blocks linking. The link is refused for a "not suitable"
> placement — most commonly the banner size does not match the placement's ad-unit size.
> Fix the size on either side and link again.

> **Corner case:** a **Confirm** dialog that offers to link the banner to all matching
> placements appears only when you **save an existing banner** and the server finds matching placements, never when the banner is first
> created. If you answer **Do not link**, the banner stays unlinked and there is no reminder
> later — you have to link it from the **Linked placements** card.

> **Corner case:** saving an existing placement unlinks banners that no longer fit it —
> after a size change, for example — and says only "Done". Re-check the link list after
> editing a placement that is already in service.

> **Corner case:** country targeting with no resolvable country. If you add country
> targeting to any level and the visitor's country cannot be determined (common on
> localhost or private test networks), country-targeted ads are skipped and the placement
> looks broken. Keep targeting empty for the first run — empty targeting means "serve to
> everyone".

> **Corner case:** moderation does not gate delivery by itself. Ad serving reads no approval
> state: a banner or site that sits in **Pending banners** / **Pending sites** still serves
> unless the *Active* switch is off. The exception is a role carrying **Banners Moderation
> With Deactivation** — its new or edited creatives are switched off until a reviewer approves
> them, and *that* silence looks exactly like a configuration fault. See
> [Moderation and quality](https://epom.com/ad-server/docs/guides/admin/moderation-and-quality.md).

> **Note:** no report shows the hour in progress. A tag that just fired appears shortly after its
> hour ends — up to about an hour later — so don't debug a "missing" impression younger than that.
> See [Freshness](https://epom.com/ad-server/docs/concepts/analytics-pipelines-explained.md#freshness-nothing-shows-the-current-hour).

## Per-role notes

- **Network manager:** the **Matched placements**, **Matched banners** and **Universal JS** steps
  each need a permission of their own; ask your network administrator if one is missing.
- **Publisher and advertiser colleagues:** they run their own half and cannot create links, so
  Stage 3 stays with you. See the [publisher](https://epom.com/ad-server/docs/roles/publisher.md) and
  [advertiser](https://epom.com/ad-server/docs/roles/advertiser.md) playbooks.
- **Can view share:** enough to follow Stage 5, not to build Stages 1–4.
- **Demo account:** build the chain on entities you create; the examples are read-only.

## Related

- [Go-live checklist](https://epom.com/ad-server/docs/start/go-live-checklist.md)
- [UI tour](https://epom.com/ad-server/docs/start/ui-tour.md)
- [Hierarchy and linking](https://epom.com/ad-server/docs/concepts/hierarchy-and-linking.md)
- [Create placements](https://epom.com/ad-server/docs/guides/inventory/placements-create.md)
- [Ad tags and the serving API](https://epom.com/ad-server/docs/guides/inventory/ad-tags-and-api.md)
- [Run a report](https://epom.com/ad-server/docs/guides/analytics/run-report.md)
- [My ad is not serving](https://epom.com/ad-server/docs/troubleshooting/ad-not-serving.md)