Skip to main content
For server-to-server (SDK-less) demand, CloudX renders your creative in-app directly from the bid.adm markup — there is no network SDK involved. This page describes the creative types and formats CloudX accepts and the user-experience behavior it applies.
Routing to the CloudX renderer is handled by the CloudX auction server. Demand partners return the creative in the bid; you do not set any ext.cloudx.* fields — the auction server adds rendering routing itself.

Bid response

Return the creative markup in the standard OpenRTB bid.adm field. Optionally declare the creative type in bid.ext.crtype (html, mraid, or vast); if you omit it, CloudX infers the type from the impression.
{
  "seatbid": [
    {
      "bid": [
        {
          "id": "1",
          "impid": "<imp id from the bid request>",
          "price": 2.50,
          "crid": "creative-123",
          "adm": "<!doctype html> … (HTML/MRAID document, or VAST XML)",
          "ext": { "crtype": "html" }
        }
      ]
    }
  ]
}
The creative in adm must meet the requirements below. Do not send ext.cloudx.*; CloudX populates the rendering routing after the auction.

Creative types

  • HTML / MRAID 3.0 — Static and interactive HTML creatives. MRAID 3.0 host APIs are exposed to the creative. mraid.useCustomClose() is accepted but has no effect (see Close control); on fullscreen placements expand() and resize() are rejected.
  • VAST video — VAST 2.0 through 4.3 are supported. VAST 5.x and unrecognized versions fail closed with an unsupported-version error, allowing the exchange to deliver a fallback creative. VPAID is not supported.

Supported formats

FormatHTML (MRAID 3.0)VAST video
Banner (320×50)
MREC (300×250)
Interstitial
Rewarded
Native and App Open are not rendered by CloudX.

User-experience behavior

CloudX applies a conservative, non-aggressive default experience and owns the close control so a creative can never trap the user. These behaviors are enforced by CloudX and are not configurable by demand partners.

Close control

  • The close control is drawn and owned by the SDK, with a fixed top-trailing safe-area position and a tap target of at least 50 pt. Creatives cannot replace, hide, or relocate it.
  • mraid.useCustomClose() is accepted for compatibility but is an observe-only no-op — the SDK close control always remains.
  • On a stall, a watchdog force-reveals the close control so the user is never trapped.

Interstitial

The close control appears after a short delay (5 seconds by default). For VAST, a skip countdown precedes skip availability; the SDK close control remains available as a fail-safe.

Rewarded

  • Rewarded placements are non-skippable by default and expose no skip control; the user watches to completion.
  • If a watch-to-earn threshold applies, a close control (not a skip) appears once the threshold is crossed. The reward is retained if the user then exits.
  • The reward is granted on completion, or on dismissal after eligibility is met. An escape-hatch exit during a stall does not grant a reward.
  • Watch-to-earn eligibility accrues from foreground time only; backgrounding the app does not advance the timer.

Measurement

  • Open Measurement (OMID) viewability is supported for both HTML and VAST creatives.
  • VAST 4.1 ViewableImpression and standard Impression events are tracked.
  • VAST 4.0+ AdVerifications (OMID verification resources) are honored.

Fallback behavior

When a creative cannot be rendered — an unsupported VAST version, an unparseable payload, or a creative-type mismatch — CloudX fails closed and reports the error, allowing the exchange to serve a fallback creative rather than showing a broken ad.