---
title: "Release 144"
description: "Interactive API documentation, the TCF v2.3 Disclosed Vendors check, SVG creatives, second-precision frequency capping, and large performance gains on list endpoints."
type: "reference"
audience: [network-manager, admin]
keywords: [release 144, release notes, swagger, openapi, TCF, SVG, frequency capping, timezones]
---

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 144

**Released:** February — March 2026. This release delivers interactive API documentation,
the Disclosed Vendors check that TCF v2.3 requires, and a long list of quality-of-life
improvements across analytics, capping and creative handling.

## New features

### Interactive API documentation

The REST API is now fully documented with a machine-readable OpenAPI 3.0 specification and
interactive Swagger UI: 647 endpoints and 1,891 parameters, every one with a description.
Both require an authenticated session. As part of the same work, REST API error responses
return a plain message instead of internal details. See the [REST API reference](https://epom.com/ad-server/docs/api.md).

### CPA action pricing via API

A new REST endpoint creates and updates CPA action pricing on banners, accepting a price
plus the action's name or key — no UI round-trip needed for programmatic CPA setups.

### Report generation audit trail

Analytics report generation — from the UI and the API — is now recorded in the action log
with the requesting user, parameters and timestamp, giving network administrators visibility into who
runs which reports.

### Click tracking for programmatic video waterfalls

Clicks on DSP creatives inside multi-ad VAST responses are now recorded in analytics;
previously only impressions were tracked for those creatives.

## Improvements

- **TCF v2.3 Disclosed Vendors check** — for the IAB's February 2026 TCF v2.3 deadline,
  the consent check can also require the vendor in the consent string's Disclosed Vendors
  segment. It is the **Check disclosed vendors** option in the GDPR settings, off by default;
  when it is on, a GDPR request whose consent string does not disclose the vendor is treated
  as having no consent. See [GDPR and TCF consent](https://epom.com/ad-server/docs/guides/admin/gdpr-tcf-consent.md).
- **SVG creatives** — native banner icons and images can be uploaded as SVG. Files are
  sanitized on upload (scripts, event handlers and other active content are stripped) to
  prevent cross-site scripting. See [native banners](https://epom.com/ad-server/docs/guides/advertising/banner-native.md).
- **Minute-level time targeting** — time range [targeting](https://epom.com/ad-server/docs/reference/targeting-dimensions.md)
  accepts minute precision instead of whole hours.
- **Second-precision frequency capping** — a new *seconds* period type enables sub-minute
  [capping](https://epom.com/ad-server/docs/guides/delivery/frequency-capping.md) intervals (see the
  [capping matrix](https://epom.com/ad-server/docs/reference/capping-matrix.md)).
- **Country groups everywhere** — custom [country groups](https://epom.com/ad-server/docs/guides/admin/taxonomies.md)
  and world regions now appear in analytics country filters, targeting dropdowns and
  pricing screens.
- **Modern browser detection** — Brave, Samsung Internet, DuckDuckGo, Vivaldi, Arc and
  other contemporary browsers are now correctly detected for targeting and analytics.
- **More timezones in analytics** — the timezone selector grew from 25 to 39 options,
  adding India (UTC+05:30), Nepal (UTC+05:45), Iran (UTC+03:30) and other half-hour-offset
  zones. New "Last week" and "Last 2 weeks" quick ranges were added too — see
  [running reports](https://epom.com/ad-server/docs/guides/analytics/run-report.md).
- **Cleaner ad markup** — unresolved `$$CUSTOM_PARAM(...)$$` [macros](https://epom.com/ad-server/docs/reference/macros.md)
  are stripped from served creatives instead of appearing as raw text.
- **Application placements** — optional banner-size restriction for ad matching, and the
  API response now includes creative, click and impression tracking URLs.
- **Campaign exchange rate via API** — campaign create/update endpoints accept an
  `exchangeRate` parameter.
- **Login page customization** — a new white-label property hides the "Sign Up" link for
  networks without self-registration. See [white label](https://epom.com/ad-server/docs/guides/admin/white-label.md).
- **Retired invocation code formats** — the outdated JSP, PHP, JavaScript sync/async and
  iframe sync/async code types were removed, simplifying placement setup. See
  [invocation codes](https://epom.com/ad-server/docs/reference/invocation-codes.md).
- **Better validation messages** — [limit](https://epom.com/ad-server/docs/guides/delivery/limits.md) dates beyond year
  9999 are rejected up front, and attempting to delete global pricing explains why it isn't
  permitted.

## Bug fixes

- **Analytics returned empty results** when grouping by placement labels and custom
  parameters at the same time.
- **Publisher-side piggyback pixel setup** was broken in the configuration interface.
- **Native banner uploads via API skipped the file-size limit** — image, icon and video
  uploads are now validated like everywhere else.

## Under the hood

Platform upgrades and performance work — large banner and campaign lists over the API load
much faster.

## Related

- [What's new in Epom Ad Server](https://epom.com/ad-server/docs/releases.md)
- [Release 145](https://epom.com/ad-server/docs/releases/release-145.md)
- [Release 143](https://epom.com/ad-server/docs/releases/release-143.md)