---
title: "Release 150"
description: "A landing-page conversion helper the advertiser installs by pasting one block, one snippet for a whole funnel, video viewability on Open Measurement players, reporting by OpenRTB Publisher ID, RTB tools delegated to account roles, a rebuilt password reset — and the end of Flash creatives and of the retired ad tag flavours."
type: "reference"
audience: [network-manager, admin]
keywords: [release 150, whats new, RTB tab, RTB Management, DSP partners, DSP creative scan, SSP bidding optimization, landing page helper, easq, easclid, click id, conversion snippet, funnel snippet, Google Tag Manager, Safari tracking prevention, Open Measurement, OMID, AdVerifications, VAST 4.2, video viewability, OpenRTB Publisher ID, password reset, single-use reset link, Flash removed, SWF, even pacing, dayparting, mass upload video, MP4, reject duplicate conversions, max payout per conversion, wrap click-through, retired ad tags, show_ads.js, Lite tag removed, JS Sync, JS Async, serving domain, tracking URLs tab, mobile SDK removed, installation tracking removed, DSP partner Active flag, gzip bid request, click id video, remember me blank page, white label logo new UI, pre-targeting rules not shown, create placement fields, placement labels required, RequireJS, AMD define, DSP analytics CSV export, placement key, native tmax]
---

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.

# Release 150

Release 150 is built around a job that used to need the advertiser's own developer: **measuring
conversions on the advertiser's own site**. You generate a block of JavaScript from the campaign,
the advertiser pastes it once, and every step of their funnel reports with a single line — no
backend work, and nothing that depends on third-party cookies. Around it: video viewability on the
players that were never reporting any, a reporting dimension that reconciles with the numbers your
DSP partners send you, and a password-reset flow rebuilt end to end.

> **Three things to act on.**
>
> **Old ad tags have stopped serving.** If any publisher page still carries a JS Sync, JS Async,
> Iframe Sync, Iframe Async, API JS Sync or Lite tag, the URL it calls is switched off in this
> release and the slot goes blank — silently. Re-issue those tags as Universal JS before the
> upgrade; see [Improvements](#improvements).
>
> **Flash is gone platform-wide.** Any creative still holding an SWF now needs a replacement file —
> see [Improvements](#improvements).
>
> **Password-reset links now work once and expire**, and no email the platform sends contains a
> password any more.

## New features

### Measure conversions on the advertiser’s own site with one pasted block

Open a campaign's **Conversion actions** card, pick an action, click **Conversion tracking code** and
open the **Snippet** tab. The block comes out as plain HTML or as Google Tag Manager tags, with your
ad-serving domain, the event names and any payouts already filled in. The advertiser pastes it once
and writes one line wherever a visitor converts:

```js
easq('track', 'purchase')
```

The block takes the click id out of the landing URL, stores it on the advertiser's own domain and
attaches it to that call — so a click that lands on `lp.shop.example` still converts at
`checkout.shop.example`. Worth knowing before you hand it over:

- **The landing URL has to carry the click id.** **Add the click id to landing page URLs** on the same
  card does that for image and video creatives, the email-placement click and click-through
  placements. HTML, template, native and OpenRTB creatives still need `$$CLICK_ID$$` placed by hand.
- **An action counts once per click** in this first version; a *different* action on the same click
  still counts, so a registration → lead → deposit funnel records three conversions.
- **`payout` is the commission you charge, not the order value.** It is read only where the campaign
  allows conversion pricing from the URL, and the new **Max payout per conversion** caps it. `value`,
  `amount` and `sum` are deliberately not accepted.
- **On Safari the click id lasts about seven days** of browsing without a visit to the advertiser's
  site, not the full 400 days Chrome and Firefox keep. If late Safari conversions matter, a
  server-to-server postback survives it.

See [Install the landing-page helper](https://epom.com/ad-server/docs/guides/conversions/landing-page-helper.md).

### One snippet for a whole funnel

In the new interface the campaign's **Conversion actions** card carries **Actions | Funnels** tabs, and
**Conversion tracking code** opened on a funnel generates one tracking line per step, in the funnel's
own order. Pick the right **ad-serving domain** before you copy — a snippet built on the wrong domain
posts to a host that holds none of the stored click ids. See
[Save a conversion funnel](https://epom.com/ad-server/docs/guides/conversions/funnels.md).

### Video viewability on Google IMA and other Open Measurement players

From VAST 4.1 upward the response also carries the IAB **AdVerifications** block, so players built on
Open Measurement — Google IMA among them — now measure the MRC criterion (50% on screen for two
continuous seconds) and fire your **Viewable**, **Repeated viewable**, **Not viewable** and **View
undetermined** trackers. Nothing is counted twice. Alongside it:

- **VAST 2.0 through 4.3 are all served**, each valid against its schema. In the new interface a
  placement offers one tag field with a version picker (default **4.2**).
- A player's error code is recorded on the placement's troubleshooting log — see
  [troubleshooting log tasks](https://epom.com/ad-server/docs/guides/admin/system-ops.md#capture-ad-requests-with-a-troubleshooting-log-task).
- The four non-standard wrapper settings (maximum execution time, sandbox, iterate, always hide
  controls) are removed.

See [Video placements](https://epom.com/ad-server/docs/guides/inventory/placement-video.md).

### Group and filter reports by OpenRTB Publisher ID

**OpenRTB Publisher ID** is a group-by dimension and a filter on General and Advanced reports, so you
can reconcile your numbers with what DSP partners report. Nothing needs backfilling — it is a property
of the site. **It arrives switched off**: grant the *Analytics Report Group/Filter By OpenRTB Publisher
ID* permission to the roles that need it. See [Analytics dimensions](https://epom.com/ad-server/docs/reference/analytics-dimensions.md).

### Hand RTB work to your own team, without an admin login

DSP Partners, DSP Partners Analytics and DSP Creative Scan are now also an **RTB** tab in the account
area, each behind its own permission in the new **RTB Management** group — so you can build an
RTB-manager role without an admin account. **All three arrive disabled.** The **SSP bidding
optimization** settings moved from Admin → Optimization Settings to a button on the DSP Partners page.
See [Configure DSP partners](https://epom.com/ad-server/docs/guides/admin/dsp-partners.md) and
[Manage users, roles and permissions](https://epom.com/ad-server/docs/guides/admin/users-and-roles.md).

### Cap how long a native ad request may take

Add **`tmax`** (milliseconds) to an `/ads-api-native` request and the ad server returns the creatives it
selected within that budget instead of holding the call open. Fewer creatives than requested is a
normal response. The clock starts when the request arrives, and a creative bought from a demand partner
runs on that partner's timeout, so a tight `tmax` can be overshot by one auction.

## Improvements

- **The retired ad tag flavours have stopped serving.** `/js/show_ads.js` (or your network's own name
  for it), `/ads-sync.js`, `/ads-async.js`, `/ads-api-sync.js` and the Lite tag's `/www/delivery/*.php`
  endpoints are removed; a page still carrying one renders and counts nothing. Search your pages for
  `show_ads.js` and `/www/delivery/` and re-issue each slot as **Universal JS**, **Mount JS**, **Simple
  Iframe**, **Direct URL** or the **API** request URL. Server-side JSP and PHP snippets keep working.
  `/rest-api/placement/{key}/code.do` refuses the retired types with a 400, and
  `/rest-api/testpage/{id}/code.do` is removed. See
  [Retired code types](https://epom.com/ad-server/docs/reference/invocation-codes.md#retired-code-types).
- **Flash creatives are gone.** The Flash file, alternative image, Flash vars and external Flash URL
  fields, the **Default SWF click tag** preference and the Flash link API parameter are removed. A
  creative that held only an SWF shows an empty upload asking for a replacement — use an image or HTML5
  creative. See [Image creatives](https://epom.com/ad-server/docs/guides/advertising/banner-image.md).
- **No email contains a password, and a reset link works once.** Links expire (60 minutes for a
  forgotten password, 72 hours for a new user's link). One password policy applies everywhere a password
  is set: 8–64 characters, no common passwords, nothing resembling the username or email. Every password
  change emails the owner and signs out their other sessions. See
  [Users and roles](https://epom.com/ad-server/docs/guides/admin/users-and-roles.md).
- **A placement has one ad-serving domain.** A single **Domain** on the **Settings** tab of Ad Tags & API
  builds every tag and URL, gated by the **Set Ad-Serving Domain (Placement)** permission. Over the API,
  placement create/update take **`servingDomain`** instead of `ajaxCodeDomain`. Where no domain is flagged
  as the default, the first one declared is now the default. See
  [Invocation code types](https://epom.com/ad-server/docs/reference/invocation-codes.md).
- **Click-through tracking URLs live in the placement's Ad Tags & API card** (new interface), on a
  **Show tracking URLs** tab built on the placement's own Domain and Protocol, with CSV export. See
  [Click-through placements](https://epom.com/ad-server/docs/guides/inventory/placement-mobile-email-other.md#click-through-placements).
- **The mobile SDK downloads and Installation Tracking are removed.** Application and Native placements
  integrate through the **API** tab; a role without the API permission now sees an empty card there.
  See [Application, email and click-through placements](https://epom.com/ad-server/docs/guides/inventory/placement-mobile-email-other.md).
- **Client-side piggybacks take the partner's tag as written** — a tag, a pixel URL, a `.js` URL or plain
  JavaScript — and run inside their own frame on the conversion page. See
  [Piggyback pixels](https://epom.com/ad-server/docs/guides/conversions/piggybacks.md).
- **A DSP partner is simply Active or not.** Per-role partner assignment is gone; every active partner
  is offered on every OpenRTB banner. Deleting a partner says how many active banners it will deactivate.
- **DSP partner tools:** **Export CSV** on DSP Partners Analytics (admin page and RTB tab), a per-partner
  **Gzip bid request** switch, and gzipped bid responses accepted from every partner. See
  [Configure DSP partners](https://epom.com/ad-server/docs/guides/admin/dsp-partners.md).
- **Even pacing respects dayparting.** The entity's **Time Range**, **Day of Week** and **Day and Time**
  rules now define the time a budget is spread over. See [Limits](https://epom.com/ad-server/docs/guides/delivery/limits.md).
- **The Conversion tracking code window is clearer.** **Postback (S2S)** leads with the **Click ID**
  method; the per-action Sub ID method is marked legacy; `att` and `payout` are listed as optional
  parameters. See [Get the pixel and S2S tracking code](https://epom.com/ad-server/docs/guides/conversions/s2s-and-pixels.md).
- **The S2S tracking key names only the action** — one URL is valid from every campaign the action runs
  in. Older keys keep working.
- **Postbacks accept your tracker's parameter names** — `clickid`/`cid`/`txid`, `action`/`event`/`goal`,
  and `payout` — plus a new **`$$CLICK_ID$$`** macro. See [Macros](https://epom.com/ad-server/docs/reference/macros.md).
- **Every conversion endpoint says why it did not count.** A reason code that keeps coming back is a
  fault to fix.
- **New conversion actions default to a 7-day click and 1-day view window.** Existing actions are
  unchanged. See [Create and edit conversion actions](https://epom.com/ad-server/docs/guides/conversions/conversion-actions.md#options-and-fields).
- **Rejecting duplicate postbacks is an opt-in per action** (**Reject duplicate conversions**), deduplicated
  over the action's own attribution window; a rejected repeat answers `already-tracked`.
- **Max payout per conversion** on the campaign caps a payout set from the tracking URL. See
  [Campaigns](https://epom.com/ad-server/docs/guides/advertising/campaigns.md).
- **Mass banner upload takes MP4 video**, uploads files as you pick them and keeps names you type. See
  [Bulk operations on creatives](https://epom.com/ad-server/docs/guides/advertising/banners-bulk-operations.md).
- **One period control for the whole dashboard** (new interface), with comparison, hourly charts for a
  single day and a much faster statistics tree on large networks. See
  [Dashboards](https://epom.com/ad-server/docs/guides/analytics/dashboards.md).
- **Analytics uses the same period picker** in the new interface. See
  [Run a report](https://epom.com/ad-server/docs/guides/analytics/run-report.md).
- **Linking a creative to a placement follows the link permission everywhere**, and the API names any
  id it could not link. See [Shares and permissions](https://epom.com/ad-server/docs/guides/collaboration/shares.md).
- **Notification and email templates get a code editor** with Velocity highlighting and a macro palette
  that inserts at the cursor. See [Notifications and mail](https://epom.com/ad-server/docs/guides/admin/notifications-and-mail.md).
- **Minimum Margin is available over the pricing API.** See [Pricing](https://epom.com/ad-server/docs/guides/delivery/pricing.md).
- **A separate white-label VAST AdSystem name**, so your public website no longer has to appear in ad
  markup. See [White-label branding](https://epom.com/ad-server/docs/guides/admin/white-label.md).
- **Conversion actions over the API work**, and deleting one requires access to it.
- **Template authors get the passback message documented** behind a **How to use** button. See
  [Templates](https://epom.com/ad-server/docs/guides/advertising/templates.md).
- **Two unused CTR-optimization settings are removed**; the section is now **CTR / I2C optimization**.
  See [Optimize ad rotation](https://epom.com/ad-server/docs/guides/delivery/optimization.md).
- **The funnel editor lists and searches every conversion action**, and the new interface has one date
  picker and clearer on/off contrast.

## Bug fixes

- **One conversion action key everywhere** — grids show the action's own key; over the API `key` is the
  action key and `pixelKey` the campaign-specific one.
- **Conversions arriving more than about nine and a half hours after the click are kept** for the full
  attribution window. Expect more conversions on actions with windows longer than a day.
- **The conversion pixel no longer counts a repeat it cannot mark** in the visitor's cookie.
- **A returning visitor can convert again after a new click.**
- **Clicks on CPC DSP creatives can be counted** — turn on the new per-partner **Wrap click-through**.
  See [DSP partners](https://epom.com/ad-server/docs/guides/admin/dsp-partners.md).
- **A "Day and Time" rule naming several days targets all of them.** See
  [Add targeting](https://epom.com/ad-server/docs/guides/targeting/add-targeting.md).
- **Even pacing** no longer stutters on the hour, stalls after a budget change, or front-loads a flight
  that starts mid-day.
- **The Billing tab follows share-based visibility** for what it shows and what it lets you change. See
  [Finances and billing](https://epom.com/ad-server/docs/guides/admin/finances-and-billing.md).
- **Admin pages and role/user administration check permissions on the server**, matching the sidebar;
  switching into another user's account requires access to that user's role. See
  [Users and roles](https://epom.com/ad-server/docs/guides/admin/users-and-roles.md).
- **The Placements and Banners pickers mask names consistently** with what you may view.
- **Minimum margin applies to inventory priced at zero**, and the Banners Probability preview applies it.
- **Invisible characters pasted into creative fields are cleaned on save.**
- **Large result sets no longer cause an internal error** on some pages and API calls.
- **A malformed conversion key returns the 1×1 image**, not a server error.
- **A conversion key is checked against the action it names**; regenerate any hand-assembled postback
  URL that stops counting.
- **The new interface shows the right site's or placement's revenue-share rows.**
- **A resized creative and placement offer each other for linking immediately.**
- **The placement Domain selector appears on every placement type**, and saving a tag setting confirms
  with a toast.
- **The pricing endpoints' API documentation** describes each endpoint's own fields, and the reference
  matches the code. See the [API reference](https://epom.com/ad-server/docs/api.md).
- **The click id reaches video and click-through landing pages.**
- **White-label installs show their own branding in the new interface**, and a replaced logo or favicon
  takes effect.
- **Saved pre-targeting rules show** in the new interface.
- **A "Remember me" session no longer returns a blank page** after a timeout.
- **DSP analytics returns the dates you asked for.**
- **Country Code sits beside Country** in the analytics grid, and metrics land under their sections.
- **Report tabs stay** when you leave Analytics and come back.
- **The banner page loads for video and native creatives**, and uploads appear without a reload.
- **Site edit reports a refused save** instead of saying it was saved.
- **White-label native ads use a neutral default advertiser name.**
- **The Create placement page shows all its fields** and the Labels field on networks that require labels.
- **Ads render on publisher pages that run RequireJS.**
- **An edit page no longer goes blank** over a permission-hidden field.
- **The Ad tags & API parameter table shows the placement key** used by `?key=`.
- **Admin edit pages open the record you clicked.**

## Under the hood

Platform upgrades and performance work. Two help pages were added for common support questions —
[Google (GPT) passback tags](https://epom.com/ad-server/docs/troubleshooting/google-passback-tags.md) and the
[native ad API reference](https://epom.com/ad-server/docs/reference/native-api.md).

## Related

- [What's new in Epom Ad Server](https://epom.com/ad-server/docs/releases.md)
- [Release 151](https://epom.com/ad-server/docs/releases/release-151.md)
- [Release 149](https://epom.com/ad-server/docs/releases/release-149.md)
- [Install the landing-page helper](https://epom.com/ad-server/docs/guides/conversions/landing-page-helper.md)
- [Get the pixel and S2S tracking code](https://epom.com/ad-server/docs/guides/conversions/s2s-and-pixels.md)
- [Create and edit conversion actions](https://epom.com/ad-server/docs/guides/conversions/conversion-actions.md)
- [Save a conversion funnel](https://epom.com/ad-server/docs/guides/conversions/funnels.md)
- [Campaigns](https://epom.com/ad-server/docs/guides/advertising/campaigns.md)
- [Bulk operations on creatives](https://epom.com/ad-server/docs/guides/advertising/banners-bulk-operations.md)
- [Video placements](https://epom.com/ad-server/docs/guides/inventory/placement-video.md)
- [Invocation code types](https://epom.com/ad-server/docs/reference/invocation-codes.md) — including what to re-issue a retired tag as
- [Application, email and click-through placements](https://epom.com/ad-server/docs/guides/inventory/placement-mobile-email-other.md)
- [Dashboards](https://epom.com/ad-server/docs/guides/analytics/dashboards.md)
- [Analytics dimensions reference](https://epom.com/ad-server/docs/reference/analytics-dimensions.md)
- [Pricing](https://epom.com/ad-server/docs/guides/delivery/pricing.md)
- [Limits](https://epom.com/ad-server/docs/guides/delivery/limits.md)
- [Users and roles](https://epom.com/ad-server/docs/guides/admin/users-and-roles.md)