---
title: "Conversion actions reference"
description: "Every field of a conversion action with its range, default and gating, the cards below the form, the campaign card's controls, the grid columns and the REST calls — the companion to the Create and edit conversion actions guide."
type: "reference"
audience: [network-manager, advertiser, developer]
keywords: [conversion action fields, attribution window, post-click window, post-view window, duplicate conversion window, detailed conversion log, reject duplicate conversions, default attribution type, click user IP, conversion action key, pixel key, campaign alias, conversion action sharing, CPA pricing, actions API]
ui_path: "Account → Conversion Actions"
---

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.

# Conversion actions reference

The companion to [Create and edit conversion actions](https://epom.com/ad-server/docs/guides/conversions/conversion-actions.md). The guide has
the steps, the caveats and the fix-it checklist; this page holds every field, card, column and
REST call.

## General information

| Field | What it does | Default | Notes |
|---|---|---|---|
| Conversion Action Name | Identifier used in reports and in the Sub ID macro | — | Max 64 characters, and only `a-z A-Z 0-9 - _`. **No spaces** — it is an identifier, not a label. A name from before the rule is kept, and checked again only when you change it |
| Conversion Action ID | System id of the action | assigned | Read-only |
| Duplicate conversion window (per IP), minutes | Rejects repeat conversions from the same IP within the window | empty (off) | 0–1440. Shown only if your role may set it and **Admin → Validation & anti-fraud → Validation settings → Conversion per IP time frame** is on (the default); while that switch is off the field is not offered and stored values are ignored |
| Duplicate conversion window (per origin IP), minutes | Same, keyed on the last external source IP | empty (off) | 0–1440; shown and gated together with the field above |
| Post-click attribution window + period | How long after a **click** a conversion still counts | 7 Day(s) (at creation) | Value 0–255; clicks take priority over views. Out-of-window matches surface as **Expired post-click conversions** diagnostics. A window longer than a week outlives the click id the landing-page helper stores on Safari — see the guide's caveats |
| Post-view attribution window + period | How long after an ad **view** a conversion still counts | 1 Day(s) (at creation) | Value 0–255; `0` means "never attribute a view" on the pixel route and "do not measure" on the server-to-server route. Out-of-window matches surface as **Expired post-view conversions** diagnostics |
| Period type (create form) / Click to conversion period type, View to conversion period type (edit page) | The unit of the windows | Day(s) | One shared unit at creation, Second(s) … Year(s); an independent unit per window once the action exists |
| Detailed conversion log | Records the raw origin IP, User agent and X-Forwarded-For with each conversion, and is what makes the conversion appear in the per-event **Conversions Log** report at all — with it off, the conversion is still counted everywhere else, it simply has no row there. Also gates the custom-parameter log | on | Aggregate counters (Conversions, Revenue, etc.) are unaffected either way. The custom-parameter log additionally needs the network preference for it **and** custom-parameter forwarding on the campaign — with either missing, this box is ticked and that log stays empty |
| Apply attribution window to server-to-server conversions | Extends the two windows above to conversions posted to the S2S endpoint | on for actions created from release 149, off for older actions | Pixel conversions are always window-checked; leave it off to keep an existing action counting S2S conversions exactly as before. Only conversions that claim a click or a view are checked, so it takes effect together with the postback's `att=` parameter or the default attribution type below. Not shown on system tracking actions |
| Reject duplicate conversions | Throws away a repeat of the same event on one click, **for server-to-server postbacks** | off | Postbacks only. The pixel route has its own network-level duplicate check that this box never touches, and a video or viewability tracking action is exempt on both routes — `AD_PAUSE` and repeated viewable impressions fire again by design. Shown only while **Admin → Validation & anti-fraud → Validation settings → Conversions validation** is on |
| Apply the click's user IP to server-to-server conversions | Judges a postback by the visitor the click was served to: the IP and origin (LES) IP the click ID carries replace the address of the server that sent the postback — for geo, the IP blacklist, the two duplicate-conversion windows above, IP capping and the logs | off | Works only while **Admin → Validation & anti-fraud → Validation settings → User IP in click IDs** is *Included* and the ad server mints sealed (version 2) click IDs. Sealed click IDs start once the whole platform runs release 155: ops switches them on in one step after the rollout. Until then a click ID carries no IP and the postback is judged as before. The click's IP also wins over a `clientIp` the postback sends. Shown only if your role may see the server-to-server tracking codes; not shown on system tracking actions |
| Default attribution type | How a conversion is recorded when neither the postback nor the ad server classified it | Unattributed | Choose **Post-click** or **Post-view** for an integration that always means one of them and cannot send `att=`. A fallback, not an override: the postback's `att=` and a click the ad server observed both win over it, and pixel conversions never reach it. Choosing click or view also brings these conversions under the window when the option above is on. Not shown on system tracking actions |

Only **Unattributed**, **Post-click** and **Post-view** can be chosen as a default. The other
three attribution values a report can show — *Post-click (expired)*, *Post-view (expired)* and
*System* — are derived by the platform, from the window check and from the action's tracking
event; the REST API refuses them with *"Invalid attribution type"*, and an action that somehow
holds one is read by the ad server as **Unattributed**.

The create form offers six of these fields only — name, one shared period type, the two windows,
the server-to-server window checkbox and the default attribution type — in that order. The rest
appear on the edit page.

## Cards below the form

| Card | What it does | Default | Notes |
|---|---|---|---|
| Conversion Tracking | The Postback (S2S) URLs for this action, built against an ad-serving domain you pick | shown | Shown only if your role has server-to-server tracking. The Pixel tab is campaign-specific and appears only on a campaign's card, not here. See [Get the pixel and S2S tracking code](https://epom.com/ad-server/docs/guides/conversions/s2s-and-pixels.md) |
| Conversion Action Sharing | Grants other users access: **Is owner** / **Can edit** / **Can view** | you as owner | Creating an action also applies your **default shares**, so the list may already have entries you did not add. New shares default to Can edit; **Is owner** is offered only if you may delete the action yourself. Only the action's owner (or a user with the share-all grant) can change the list, and nobody can delete their own share (*"Can't delete own share."*). For an advertiser the card is read-only |
| Pricing | CPA value per conversion — a Global row plus per-country rows | off | Used when campaigns pay per conversion; campaigns can layer their own per-action prices on top. **Upload** takes a `.csv` or `.txt` with a `Country,Price` header, `*` for the Global row; unknown countries and non-numeric prices are skipped and listed under *The following warnings occurred during upload*. Clearing the Global row leaves it **Not set**, not zero; switching the card off erases every row |

## On the campaign’s Conversion actions card

| Control | What it does | Default |
|---|---|---|
| Card switch | Whether this campaign counts conversions at all | off |
| Search / **Hide system conversion actions** | Filter the grid | hide-system on |
| **Add the click id to landing page URLs** | Appends `easclid=<click id>` to the creative's Link field | off |
| **Campaign alias** | Groups campaigns so a click on one can convert against another; alphanumeric only, at most 64 characters | the campaign id |
| **Conversion tracking code** | Opens the tracking-code window for the one selected row | needs a selection |
| **Conversion actions** / **Funnels** tab strip | Switches the card between the actions grid and the saved funnels; shown once at least one funnel exists and your role holds the server-to-server tracking permission | Conversion actions |

Everything in that list except the grid itself needs the **Manage Action Tracking** permission;
without it the card renders as a read-only grid. The **Conversion tracking code** button also
needs **Action Tracking: Code** or **Action Tracking: Server-to-Server**. The **Campaign alias**
pencil needs the **Campaign alias** permission. An alias outside `a-z A-Z 0-9` is refused under
the field with *"Please provide a valid alias value (valid characters: a-z, A-Z, 0-9)"*.

**Add the click id to landing page URLs** rewrites the creative's own **Link** field, so it
reaches image and video creatives, click-through and email placements, and not HTML Code,
Template, native or OpenRTB creatives, whose landing page lives inside markup. A URL that already
carries a click id is left exactly as written. The full creative-type matrix is on
[Install the landing-page helper](https://epom.com/ad-server/docs/guides/conversions/landing-page-helper.md).

## Grid columns

The account grid (**Account → Conversion Actions**) shows: Conversion Action Name,
Conversion Action ID, Conversion action key, Pricing, Conversion time frame → Post-view,
Conversion time frame → Post-click, Activity, Created. The campaign card shows a shorter set:
Name, Conversion Action ID, Conversion action key, Post-view attribution window, Post-click
attribution window.

- **Conversion action key** is the action's own key. It is the same value on both grids and in
  the REST API, it does not depend on the campaign, and it is the key the Postback (S2S) URL
  carries — so it is safe to paste into a postback from any campaign. The **pixel** code embeds
  a different, campaign-specific key; copy that code as generated rather than assembling a
  pixel URL by hand.
- **Pricing** shows the configured CPA values (`Global 18.00, Germany 22.50, …`), or `—` when
  the Pricing card is off.
- **Activity** shows **Live** when the action recorded a conversion in the last 2 days, and
  **Idle** otherwise. The set is recomputed once an hour and at server start.
- The search / status / "Hide system conversion actions" filter row is shown only to users whose
  role has the **Global Actions** *create* grant.

Both places also show conversion **funnels** — a panel beside the account grid (below it in a
window narrower than about 1280 px), and a **Conversion actions** / **Funnels** tab strip on the
campaign card once at least one funnel exists and your role holds the server-to-server tracking
permission. A funnel is a named sequence of these actions used when splitting a report; see
[Save a conversion funnel and report on it](https://epom.com/ad-server/docs/guides/conversions/funnels.md).

## Copy and delete

- **Copy** — exactly one row on the global grid, or the button in the edit page's header. The
  copy is named `<name>_copy`, then `<name>_copy_1`, `<name>_copy_2` … if that name is taken. It
  carries the two windows and their period types, both per-IP time frames, **Detailed conversion
  log**, **Apply attribution window to server-to-server conversions**, **Default attribution
  type**, **Reject duplicate conversions**, and the whole Pricing card (global row and every
  country). You become the copy's owner; the original's other shares are not copied. A copy of a
  system action keeps the original name with `_copy` appended and does not inherit the tracking
  event.
- **Delete** — one or more rows, confirm *"Delete N record(s)?"*; the edit page's header has the
  same button and returns you to the grid afterwards. A system action answers *"You do not have
  permission to delete conversion actions"* and refuses the whole selection it is part of.

## Over the API

The Actions tag covers the same life cycle: `POST /rest-api/action/create.do`,
`GET /rest-api/action/id/{id}.do` and `GET /rest-api/actions.do`, `POST /rest-api/action/id/{id}/update.do`
and `DELETE /rest-api/action/{key}/delete.do`. What differs from the console:

- **`name` is required on create**, is not blank and is at most 64 characters. The REST calls do
  not check the character rule the console enforces, so a name with a space saves; the console
  then keeps that name but refuses to rename the action to anything outside the rule. Use letters,
  digits, hyphens and underscores only.
- **Windows** (`clickToConversionTimeFrame`, `viewToConversionTimeFrame`) must be 0 to 255, else a
  `400` names the field; the period types take `SECOND` … `YEAR`.
- **An update changes only what it sends.** A field you leave out keeps its value.
  `defaultAttributionType` takes `UNSPECIFIED`, `POST_CLICK` or `POST_VIEW`; anything else is a
  `400` (*Invalid attribution type*).
- **Deleted and unknown actions answer `404`**, on read, update and delete alike. Deleting a
  built-in (system) action is a `403`.
- Pass `campaignId` on create or on the single-action GET to get that campaign's `pixelKey` back;
  without it the key is left out. The tracking codes themselves are read with
  `GET /rest-api/action/id/{id}/tracking-code.do`, described on
  [Get the pixel and S2S tracking code](https://epom.com/ad-server/docs/guides/conversions/s2s-and-pixels.md#via-the-api).

## Related

- [Create and edit conversion actions](https://epom.com/ad-server/docs/guides/conversions/conversion-actions.md)
- [Conversion tracking overview](https://epom.com/ad-server/docs/guides/conversions.md)
- [Get the pixel and S2S tracking code](https://epom.com/ad-server/docs/guides/conversions/s2s-and-pixels.md)
- [Install the landing-page helper](https://epom.com/ad-server/docs/guides/conversions/landing-page-helper.md)
- [Save a conversion funnel and report on it](https://epom.com/ad-server/docs/guides/conversions/funnels.md)
- [Piggyback pixels](https://epom.com/ad-server/docs/guides/conversions/piggybacks.md)
- [Pricing](https://epom.com/ad-server/docs/guides/delivery/pricing.md)
- [Pricing precedence](https://epom.com/ad-server/docs/guides/delivery/pricing-precedence.md)
- [Analytics metrics](https://epom.com/ad-server/docs/reference/metrics.md)