Integrations

OpenRTB, Prebid, and JS tag.

Pick the path that matches how you already traffic ads. All three hit the same auction. Credentials and placement IDs come from your Amli Media account.

Server to server

OpenRTB (oRTB)

POST JSON bid requests to the auction endpoint. We support OpenRTB 2.5 and 2.6 for banner, native, and video. Typical timeout on our side is 150–200ms; set yours a little higher to absorb network hop.

  • Endpoint: https://rtb.amlimedia.com/openrtb/auction
  • Method: POST, Content-Type application/json
  • Auth: account token in header x-amli-token
  • No-bid: HTTP 204 or OpenRTB nbr in a 200 body

Replace YOUR_TOKEN and placement IDs with values from sales after onboarding. Do not send live user IDs until the privacy addendum is signed.

{
  "id": "req-example-001",
  "at": 1,
  "tmax": 180,
  "imp": [{
    "id": "1",
    "banner": { "w": 300, "h": 250 },
    "bidfloor": 0.4,
    "bidfloorcur": "USD",
    "tagid": "YOUR_PLACEMENT_ID"
  }],
  "site": {
    "id": "YOUR_SITE_ID",
    "domain": "publisher.example",
    "page": "https://publisher.example/article"
  },
  "device": { "ua": "...", "ip": "0.0.0.0" }
}

Header bidding

Prebid.js and Prebid Server

Add Amli Media as a bidder in your existing wrapper. Client-side is fine for a first placement. Move high-volume sites to Prebid Server so auctions do not sit in the browser.

  • Bidder code: amliMedia
  • Required params: placementId, accountId
  • Optional: floor (CPM), test (1 in staging)
  • Prebid Server: s2s config host provided at onboarding

Request adapter access

pbjs.setConfig({
  enableSendAllBids: true,
  bidderTimeout: 1200
});

pbjs.addAdUnits([{
  code: "div-gpt-ad-300x250",
  mediaTypes: {
    banner: { sizes: [[300, 250], [336, 280]] }
  },
  bids: [{
    bidder: "amliMedia",
    params: {
      accountId: "YOUR_ACCOUNT_ID",
      placementId: "YOUR_PLACEMENT_ID"
    }
  }]
}]);

Client tag

JS tag

Drop a container and script on the page. Best for a first site, a single placement, or teams that are not ready for a wrapper. Pass the placement ID issued in the publisher dashboard.

  • Load the script once per page
  • Call AmliTag.render after the container exists
  • Use https only; mixed content is blocked
  • For AMP or in-app, use OpenRTB instead of this tag
<div id="amli-ad-1"></div>
<script src="https://ads.amlimedia.com/js/tag.js" async></script>
<script>
  window.AmliTag = window.AmliTag || { q: [] };
  AmliTag.q.push(function () {
    AmliTag.render({
      slot: "amli-ad-1",
      placementId: "YOUR_PLACEMENT_ID",
      sizes: [[300, 250], [320, 50]]
    });
  });
</script>

Need a test token?

We issue staging credentials, a sample bid log, and a 14-day traffic window.

Talk to sales