AdTech QA checklist
Build reusable functional and integration coverage.
Test lab / Prebid troubleshooting
A reproducible no-bid investigation should identify whether the bidder request was never created, was rejected, timed out, returned an unusable bid, or was filtered later.
This is an illustrative lab scenario, not a client result. Use one test page, one 300×250 slot, a known bidder configuration, a fixed browser version, and a controlled consent state. Record the integration version and test timestamp.
The expected path is slot initialization → auction start → bidder request → bidder response → bid accepted → targeting generated → ad-server request → creative render. The test passes only when the relevant stages occur once and in the intended order.
Suppose the page creates the auction but the network panel shows no request to the expected bidder endpoint. The correct next step is not to increase the timeout. Inspect whether the adapter is included in the loaded build, whether the configured bidder code matches the adapter, and whether consent or conditional logic prevents the request.
If the loaded build does not contain the adapter, the finding is an integration-build problem. The resolution is to load the correct adapter/build and repeat the same test. If the adapter is present, continue to bidder parameters and consent rather than assuming the same cause.
Keep a sanitized fixture that checks for one auction, the expected bidder request, an accepted bid when test demand is available, and the correct downstream targeting. Also retain a negative case where the bidder is intentionally unavailable and the page fails gracefully.
A synthetic header bidding setup initializes the wrapper and triggers an auction, but the ad slot is filled by a fallback line item. The exercise asks whether the problem occurred before bid request, at bidder response, or during targeting and ad-server selection.
Inspect the Prebid auction ID, ad unit code, bidder aliases, mediaTypes, bidder request and response events, bid CPM, timeout, targeting keys, and the corresponding GAM ad request.
First confirm that an auction actually starts and bidder requests are issued. Then test a single known-good bidder and one ad unit. Compare a timely bid response against the timeout window, and inspect whether hb_* targeting reaches the ad server.
A response after timeout is not a usable bid for that auction. A timely bid with missing targeting suggests wrapper or ad-server integration rather than demand absence.
Fix ad-unit configuration or bidder parameters, adjust timeouts only with latency measurements, and validate line-item mapping. Use a controlled page without consent or ad-blocking ambiguity where legally appropriate.
A console message saying auction complete does not prove a bid won or a creative rendered. Keep the wrapper auction, ad-server decision, and final render as separate checkpoints.
Open developer tools and establish whether the ad unit was defined, the bidder was configured, bid requests were dispatched, responses arrived before the timeout and targeting was passed to the ad server. A no-bid symptom can originate at any one of these stages. Capture the ad unit code and media types from the test configuration, then inspect Prebid auction events rather than relying only on a final empty slot. Keep a controlled test page with one ad unit so unrelated slots do not introduce competing events.
Run the same synthetic bidder fixture with an intentionally short timeout and then a generous timeout. Record when the request starts, when the response returns and whether the response is accepted into the auction. A response that arrives after the auction deadline can be technically valid but unusable. Do not conclude that the bidder has no demand simply because the final bid set is empty. Document the distinction between no response, a timely no-bid and a late valid response. If the adapter exposes debug logging, capture the exact event sequence.
A bidder may receive a request but refuse to bid when the configured ad unit sizes, media type, bidder parameters or placement identifier are inconsistent. Compare the ad unit’s declared dimensions with the creative formats supported by the test bidder. Inspect bidder-specific parameters against the adapter documentation, not a copied example from another partner. For video inventory, confirm the intended auction path and renderer responsibilities. For banner inventory, confirm the requested sizes are actually allowed by the placement. Change one field at a time and repeat the auction.
A Prebid bid can be accepted by the client auction yet fail to render because targeting keys were not set, a corresponding ad-server line item is missing, or the creative cannot load. Build a two-column trace: client auction outcome and ad-server outcome. If the client auction shows a valid bid but the ad server selects another line item, investigate priority, key-value targeting and competing demand. If the ad server selects the expected line item but the slot stays blank, inspect creative markup and rendering errors. Do not call either situation a bidder no-bid.
For each run, capture page URL, Prebid version, adapter version, ad unit code, bidder alias, timeout, consent configuration, request count, response count, bid status, targeting keys and final slot state. Remove identifiers before sharing. Mark the first failed stage and a proposed fix, then rerun with the same test fixture. A strong lab ends with a before-and-after event trace rather than a screenshot of a filled slot, because the trace shows which handoff was actually repaired.