Skip to content

Add the Amazon APS Prebid Adapter as first class integration #764

Closed

Description

@jevansnyc

Description

In order to simplify the auctions it makes sense to just use the APS PBS adapter found here:

https://web.ads.aps.amazon-adsystem.com/e/pb/bid

For now we will keep the native APS SDK in the CMS to test, but we should have APS participate in PB auction.

Ping me privately for curl -X syntax and publisher codes

Activity

  1. added this to the mvp milestone on Jun 11, 2026
  2. added theissue type on Jun 11, 2026
  3. aram356 commented on Jun 29, 2026

    @aram356
    Collaborator

    @ChristianPavilonis Enable Amazon adapter on test prebid server

  4. ChristianPavilonis commented on Jul 15, 2026

    @ChristianPavilonis
    Collaborator

    Investigation update: replace the legacy APS wire format with APS OpenRTB

    Testing and source review confirm that this is the right replacement for the current APS provider implementation, not merely an alternative endpoint.

    Evidence

    • The official APS Prebid.js adapter (maintained through aps-prebid@amazon.com) uses https://web.ads.aps.amazon-adsystem.com/e/pb/bid and identifies itself as APS adapter version 2.2.0: adapter constants.
    • It constructs standard OpenRTB, adds ext.account, ext.sdk, and USD currency: request enrichment.
    • It POSTs that OpenRTB request directly to the endpoint: request dispatch.
    • A controlled request returned a standard OpenRTB seatbid with a decoded price, impid, dimensions, crid, adomain, and APS creative metadata (ext.creativeurl and ext.tagtype).
    • The official bidder documentation requires an APS account ID and no per-impression bidder parameters: APS configuration.

    The existing Trusted Server APS provider instead sends a hand-built legacy payload (pubId, verbose slotID/sizes, pageUrl, etc.) to /e/dtb/bid. That endpoint accepts the request but returns an empty contextual envelope, so the current implementation cannot establish that it is submitting a valid APS auction.

    Proposed scope

    1. Replace the APS request contract

      • Build an OpenRTB request from AuctionRequest.
      • Include banner impressions, floors, publisher/site data, effective tmax, device UA/IP/geo/language, consent-gated user/EID data, and regs signals.
      • Add APS ext.account and SDK metadata.
      • Preserve pub_id as a configuration compatibility alias if the canonical setting is renamed to account_id.
      • Change the default APS endpoint to /e/pb/bid.
    2. Parse APS OpenRTB responses

      • Map impid, decoded price, currency, dimensions, crid, adomain, and bid identifiers into the unified Bid model.
      • Preserve ext.creativeurl and ext.tagtype for rendering.
      • Treat empty seatbid as no-bid and report safe aggregate diagnostics.
    3. Implement APS creative rendering

      • APS does not necessarily return adm. The official adapter loads prebid-creative.js and passes the encoded full OpenRTB response plus the selected bid ID: creative construction.
      • Trusted Server's mandatory creative sanitizer removes <script> elements, so directly copying that markup would produce a blank creative.
      • Add a deliberate APS rendering path for both tagtype: iframe and tagtype: script, using a sandboxed iframe and without weakening the sanitizer for other bidders.
    4. Handle privacy and user syncs

      • Forward only consent-allowed identity and privacy signals.
      • Do not forward precise latitude/longitude; the official adapter removes them: privacy filtering.
      • Decide whether and how ext.userSyncs is exposed client-side; the official adapter gates syncs on Purpose 1 consent: user sync handling.
    5. Remove legacy mediation assumptions

      • OpenRTB APS bids have decoded prices, so they can participate directly in winner selection.
      • Remove the APS encoded-price/no-mediator warning and legacy contextual response parser once migration is complete.

    Acceptance criteria

    • APS receives a valid OpenRTB request for each eligible Trusted Server slot.
    • A returned APS bid preserves its decoded price and competes with other providers without requiring a mediator.
    • Winning APS display creatives render for every supported tagtype without bypassing global creative sanitization.
    • Consent, EIDs, device information, and user syncs follow existing Trusted Server privacy gates.
    • Raw request/response payloads remain TRACE-only outside explicitly temporary test diagnostics.
    • Focused tests cover request construction, privacy filtering, response/no-bid parsing, slot mapping, winner selection without mediation, and creative rendering metadata.

    Support caveat

    The public bidder metadata currently says pbjs: true and pbs: false: APS bidder capabilities. The endpoint demonstrably accepts OpenRTB directly, but we should confirm with the APS account team that Fastly/edge-originated traffic is supported before treating this as a production server-to-server contract.

  5. changed the issue type fromtoon Jul 17, 2026
  6. modified the milestones: mvp, 202607 on Aug 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions