Skip to main content
Display ads are fixed banner sizes served into containers on the relevant page. Platform 195 will map the appropriate banner sizes to each viewport (desktop, tablet, mobile) during the recommendation stage — this is handled using the adTypes parameter. Display ads work across any digital page. They are particularly effective on search results pages, where dynamic keyword targeting can be applied based on the user’s active search criteria.

Requesting display ads

POST to the display ad endpoint at page load. Authentication is required via headers — see Authentication. Endpoint: POST https://dev.api.upliftads.io/v3/display-ad
{
  "siteId": YOUR_SITE_ID,
  "zoneIds": ["YOUR_ZONE_ID"],
  "adTypes": [YOUR_AD_TYPE_ID],
  "count": 1,
  "keywords": [
    "Dest.{DestinationMacro}",
    "Dep.{DepartureMacro}",
    "MonthYear.{DateMacro}",
    "Duration.{DurationMacro}",
    "Adults.{AdultsMacro}",
    "Children.{ChildrenMacro}"
  ]
}

Request parameters

ParameterTypeRequiredDescription
siteIdnumberYesYour site ID. Provided by Platform 195. Must match the x-site-id header.
zoneIdsarrayYesOne or more zone IDs identifying the ad placement(s) on the page. Provided by Platform 195.
adTypesarrayYesID reference for the banner size(s) to serve per viewport. Provided by Platform 195.
countnumberYesNumber of ads to request per zone.
keywordsarrayNoTargeting parameters. See keyword targeting below.

Keyword targeting

For search results pages, keywords are dynamic values derived from the user’s active search. Each keyword follows a Key.Value format.
Targeting keyDescriptionExample valueKeyword format
DestDestination ID. Format: {ID}-{Level} where level is 1 = Country, 2 = Region, 3 = Resort.MadeiraDest.123-2
DepDeparture airport codeLondon GatwickDep.LGW
MonthYearTravel month and year in MMYYYY formatApril 2023MonthYear.042023
DurationNumber of nights searched7Duration.7
AdultsNumber of adults2Adults.2
ChildrenPass Y if the search includes children1 childChildren.Y
The targeting keys above are examples for a travel/OTA use case. Your account manager will confirm the agreed keyword taxonomy for your property during onboarding.

Response

A successful response contains the banner dimensions and image URL to render.
{
  "decisions": {
    "Display_1": [
      {
        "adId": 000000000,
        "creativeId": 000000000,
        "flightId": 000000000,
        "campaignId": 000000000,
        "clickUrl": "https://dev.engine.upliftads.io/r?e=...",
        "impressionUrl": "https://dev.engine.upliftads.io/i.gif?e=...",
        "content": [
          {
            "height": 250,
            "width": 300,
            "imageUrl": "https://cdn.upliftads.io/path/to/banner.jpg"
          }
        ]
      }
    ]
  }
}

Response fields

FieldDescription
content[].heightBanner height in pixels.
content[].widthBanner width in pixels.
content[].imageUrlURL of the banner image to render.
viewableImpressionUrlFire when the ad enters the viewport.

The clickUrl

The clickUrl serves a dual purpose — it acts as both a click counter and a redirect to the ad’s destination. When a user clicks the ad, direct them to the clickUrl; the Uplift engine will record the click and redirect to the advertiser’s destination URL automatically.

Handling empty responses

If no ads are available, the response will be empty.
  • If the ad position has no surrounding content — collapse the div so no blank space appears.
  • If the ad position is required to fill space on the page — Platform 195 will ensure an ad is always returned for that zone.

Reporting

See Tracking Ad Engagement for full details on firing impression, click, viewable impression, and conversion tracking URLs.

Evidencing

Wrap each display ad placement in a div with a class of FID_ followed by the flightId from the response:
<div class="existing_class FID_{{flightId}}">
  <!-- display ad HTML -->
</div>