---
title: "Native placements"
description: "Configure a native placement — icon, image and video sizes, required fields and context types — and understand its API-only serving model (no classic tag, no preview)."
type: "howto"
audience: [network-manager, admin]
keywords: [native placement, native ads, icon size, image size, required fields, context type, native API, JSON]
ui_path: "Account → Publishers → site → zone → placement (Native)"
---

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.

# Native placements

A native placement serves ads that match your page's look — a title, description, icon, image
and call-to-action delivered as **structured JSON over an API request**, not as ready-made
HTML. You configure what the ad must contain here; your page or app renders it in its own
style.

> **Note:** the type is always called *Native Placement* in the console. The zone's **Add new
> placement…** button, the left tree's **+** menu and this card's subsection always show that name;
> a network-level label for the Native type does not rename it there (see the [Placement types reference](https://epom.com/ad-server/docs/reference/placement-types.md)).

## Who this is for

Publishers integrating a native feed via API, and network managers preparing native inventory.

## Prerequisites

- A saved placement of the Native type ([create one](https://epom.com/ad-server/docs/guides/inventory/placements-create.md)).
- A developer on your side able to fetch a URL and render JSON — native placements have no
  copy-paste tag.

## Steps

1. Open the placement. The Basic info card contains a dedicated **Native Placement** subsection. It
   carries the three size pairs; the Required fields picker and the three context combos appear
   only once your network administrator grants them (see the corner case below).
   ![Native placement settings with size pairs, required fields and context types](https://epom.com/docs-images/ad-server/placement-native/native-settings.webp)
2. Set the three **size pairs** — **Icon size**, **Image size**, **Video size** (width ×
   height, `0` = not used). Banners must provide assets matching what you require.
3. Pick the **Required fields** — the asset fields (title, icon, image, description, rating…)
   a native banner must have to be eligible for this placement.
4. Optionally classify the slot with **Context type**, **Context sub type** and **Placement
   type** (the native-standard placement context, e.g. content feed vs. recommendation
   widget). These are passed to programmatic buyers.
5. Click **Save** — the native settings save together with the rest of Basic info in one go.
6. Open the **Ad tags & API** card → **API** tab and hand the **Request URL** to your
   developer.
   ![Native placement API tab with the request URL and parameter table](https://epom.com/docs-images/ad-server/placement-native/native-api-tab.webp)

## Options and fields

| Field | What it does | Default |
|---|---|---|
| Icon size / Image size / Video size | Asset dimensions the ad must provide; `0×0` disables the asset | 0×0 |
| Required fields | Asset fields a banner must contain to serve here | none |
| Context type | Content context of the surrounding page (OpenRTB native values) | — |
| Context sub type | The finer context classification | — |
| Placement type (native context) | Where in the layout the ad sits (feed, content wall, widget…) | — |
| Refresh interval (sec) | How often the app should re-request the ad. Renders only on a placement that already carries a value | — |
| RTB configuration: Min./Max. ad duration | Video-asset duration bounds forwarded to RTB demand. Native gets the durations only, not Playback method / API framework / Skip min | — |
| Placement key | The identifier your API request carries. Read-only, saved placements only | — |

Which of these fields you see depends on your role — see [User roles](https://epom.com/ad-server/docs/guides/admin/users-and-roles.md).

> **Corner case:** on a new network the subsection shows only the three size pairs. **Required
> fields** and the three context fields stay hidden until your network administrator grants them to your role in
> **Admin → Permissions**, under the **Native Preferences** group — ask your network admin.

## How serving works (and why there is no preview)

- The **API tab** documents the integration: the request URL
  (`…?key=<placement key>`), the parameter table — including the native-only
  **`count`** (how many ads to return, default 1), **`rank`** (selection mode: `full`,
  `fast`, or `none` for client-side re-ranking) and **`tmax`** (a millisecond budget after which
  you get the ads selected so far) — plus sample success and "no ads" JSON responses. The
  [Native API reference](https://epom.com/ad-server/docs/reference/native-api.md) covers all three in full, along with the
  response shapes and the beacons.
- The response is a JSON object with `title`, `subtitle`, `description`, `ctaText`, `advertiser`,
  `rating`, `icons`, `images`, `videos`, `clickUrl`, `refreshInterval` and impression `beacons` —
  a field the creative does not carry is left out. Your renderer must fire the beacons and use
  `clickUrl` for the click, otherwise nothing is counted.
- Because the server never produces displayable markup for this type, the **Preview button
  does not appear** on native placements — there is nothing self-contained to render. Test by
  calling the request URL and inspecting the JSON.

## Corner cases and gotchas

> **Corner case:** there is **no classic ad tag**. The copy-ad-tag quick action in trees and
> grids answers "This placement type has no ad tag" for native placements — that's expected,
> use the API request URL instead.

> **Corner case:** the **native adapter template is not here on purpose**. If you want
> native-*looking* ads rendered by the ad server inside a normal web slot, use a
> [display placement](https://epom.com/ad-server/docs/guides/inventory/placement-display.md) with a native adapter template. A Native
> placement is for integrations that render the ad themselves.

> **Corner case:** over-constraining **Required fields** and sizes silently shrinks demand:
> a native banner missing any required asset never matches this placement. If fill drops
> after an edit, loosen the requirements first.

> **Corner case:** the placement's **default tag parameters** (channel, custom parameters, click,
> the pass-through privacy signals) are not applied to an arbitrary incoming native request — the
> ad server does not substitute them for a parameter you left out. They *are* spliced into the
> **Request URL shown on the API tab**, though. So a developer who copies that URL gets them and a
> developer who hand-builds the query string from the parameter table does not. Copy the URL.

## Per-role notes

- **Publisher and network manager** — the same page for both: the **Native** subsection in Basic
  info and the **API** tab, the only integration path this type has.
- **Can View share** — the native inputs are read-only, but the API tab stays visible so you can
  still copy the request URL.
- **Demo account** — the Preview button appears and opens the demo showcase page with this
  placement's native API URL.

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

## Related

- [Create a placement](https://epom.com/ad-server/docs/guides/inventory/placements-create.md)
- [Native banners](https://epom.com/ad-server/docs/guides/advertising/banner-native.md)
- [Ad tags, invocation codes and the API](https://epom.com/ad-server/docs/guides/inventory/ad-tags-and-api.md)
- [Native API reference](https://epom.com/ad-server/docs/reference/native-api.md)
- [Placement types reference](https://epom.com/ad-server/docs/reference/placement-types.md)