Learn

← All tracks
B

Client-Side Prebid.js

L2-L48 modules

Prebid.js is the wrapper most of the open web runs on. This track takes you from the wrapper concept through ad units, adapters, the auction lifecycle, timeouts, price granularity, GAM line items, and the module system. The Prebid config analyzer in Bidcliq Academy is the live companion.

What do L1–L5 mean?depth, beginner → expert

Each module carries a depth band. A range like L3–L4 means it spans two.

L1
Foundations
Vocabulary and the big picture. No prior ad-tech assumed.
L2
Practitioner
The hands-on basics you use day to day.
L3
Intermediate
Real configuration and the trade-offs behind it.
L4
Advanced
Optimization, edge cases, and running at scale.
L5
Expert
Architecture and deep specialization.
  1. Prereqs: A3

    Objectives
    • Define a wrapper / container tag.
    • Explain why publishers use a managed wrapper instead of stacking N vendor tags.
    • Identify Prebid.js as the dominant open-source wrapper and its component model: core plus bid adapters plus analytics adapters plus modules.
    Key concepts
    Wrapper / container tagPrebid.js component model (core, bid adapters, analytics adapters, modules)Managed vs unmanaged multi-tag setups
    Assessment

    Annotate the four Prebid.js component types and explain one risk of an unmanaged multi-tag setup.

    Read the lesson
    PRACTICE

    Proposed guided "build a Prebid.js bundle" config exercise.

  2. Prereqs: B1

    Objectives
    • Author an adUnit: code, mediaTypes (banner / video / native), sizes / sizeConfig, bids[].
    • Map ad-unit fields to the OpenRTB imp object.
    • Understand ortb2 / ortb2Imp first-party data.
    Key concepts
    adUnit (code, mediaTypes, sizes, bids[])OpenRTB imp mappingortb2 / ortb2Imp first-party data
    Assessment

    Write a valid two-bidder banner ad unit from a spec, then find the bug in a malformed one.

    Read the lesson
    PRACTICE

    Proposed ad-unit builder.

    DEBUG

    Proposed "no bids because the size was never requested" reproduction.

  3. Prereqs: B2

    Objectives
    • Explain what a bid adapter does.
    • Configure per-bidder params.
    • Understand aliases.
    Key concepts
    Bid adapterPer-bidder params (placement / zone / site IDs)Aliases
    Assessment

    Fill the correct params from a bidder's docs and explain why a copied param block fails for another bidder.

    Read the lesson
  4. Prereqs: B2, B3

    Objectives
    • Sequence the auction: requestBids() fires adapters in parallel, responses are collected, bidsBackHandler fires on all-back or timeout, then targeting is set and the ad server is called.
    • Use the Prebid event system.
    Key concepts
    requestBids()bidsBackHandler (all-back or timeout)setTargetingForGPTAsync()The Prebid event system
    Assessment

    Order a scrambled lifecycle, explain timedOut: true, and write a bidsBackHandler that calls setTargetingForGPTAsync() then refresh.

    Read the lesson
    DEBUG

    Proposed auction-timeline simulator.

  5. Prereqs: B4

    Objectives
    • Distinguish the auction timeout, bidderTimeout, and failsafeTimeout.
    • Explain the revenue trade: too short starves bids, too long delays the ad-server call.
    • Understand that setTimeout is not a hard guarantee.
    Key concepts
    bidderTimeoutfailsafeTimeoutThe latency-vs-bid-density trade
    Assessment

    Given a latency histogram, choose a timeout that captures the 80th percentile without exceeding a page-experience budget.

    Read the lesson
  6. Prereqs: B4

    Objectives
    • Explain why bids are quantized into price buckets.
    • Configure standard vs custom priceGranularity.
    • Map winning bids to hb_pb, hb_adid, hb_size, hb_format, and per-bidder variants under send-all-bids.
    • Understand query-string length risk.
    Key concepts
    Price bucketsStandard vs custom priceGranularityhb_pb / hb_adid / hb_size / hb_formatSend-all-bids key explosion
    Assessment

    Define a custom bucket scheme and compute the keys produced for a given winning bid.

    Read the lesson
    PRACTICE

    Proposed granularity designer.

    DEBUG

    Proposed "bid lost revenue to a coarse bucket" reproduction.

  7. Prereqs: B6

    Objectives
    • Build the GAM scaffold: key-values, Price Priority (type 12) line items per bucket, the universal creative.
    • Choose top-price vs send-all-bids trafficking and reason about UPR (Unified Pricing Rules) interaction.
    Key concepts
    Price Priority line items (type 12)Universal creativeTop-price vs send-all-bids traffickingUnified Pricing Rules (UPR)
    Assessment

    Compute the line-item count for a granularity, write key-value targeting for a $4.50 line item, and explain a missing-key failure mode.

    Read the lesson
    PRACTICE

    Proposed line-item generator.

    DEBUG

    Proposed "creative renders blank because hb_adid is undefined in GAM" reproduction.

  8. Prereqs: B4

    Objectives
    • Navigate the module system: User ID, floors, consent, currency, and analytics.
    • Use setConfig() and bidderSettings (CPM adjustments, custom targeting).
    • Wire one analytics adapter.
    Key concepts
    The module systemsetConfig()bidderSettings and bidCpmAdjustmentAnalytics adapters
    Assessment

    Configure a 10% bidCpmAdjustment and explain its competitive effect, then list the modules for a GDPR-compliant, floored, UID2-enabled build.

    Read the lesson
Track quiz

Complete this track

Answer 4 of 5 correctly

Five questions drawn from this track. Get 4 right to mark the whole track done.

  1. 1.In Prebid.js, a bid “adapter” is…

  2. 2.The Prebid bidder timeout controls…

  3. 3.Why do publishers configure price granularity (buckets)?

  4. 4.How is a winning Prebid bid passed to GAM?

  5. 5.A Prebid “ad unit” defines…

0/5 answered
Bidcliq Academy · Track B: Client-Side Prebid.js