skillslabstech.
← All guides

Buyer operations

A DSP campaign checklist that tests business rules

Translate targeting, budgets, and creative rules into observable acceptance tests.

Skills Labs Tech editorial · Updated 30 September 2026 · 7 min read · Educational examples

Write the buying contract

A DSP test should start with the campaign’s intended audience and inventory constraints, not with a request that happens to win. Record the permitted geography, device classes, formats, schedule, budget, and creative requirements. Specify how the system should behave when a required signal is missing. Unknown geography, for example, should not be silently treated as a known matching location.

Use positive and negative pairs

For each rule, construct one eligible fixture and one ineligible fixture with a single controlled difference. A format test can keep the same campaign while changing the requested banner size. A schedule test should include boundary times in the campaign timezone. Pairing cases isolates the rule under test and makes failures easier to diagnose than an uncontrolled end-to-end request.

Test budgets under concurrency

A sequence of isolated bids can pass while concurrent activity exceeds a budget. Define when funds are reserved, when spend is committed, and how abandoned reservations are released. Test retries and duplicate event delivery. The intended guarantee may be a hard cap or a documented tolerance; the product requirement must say which behavior is acceptable.

Keep creative validation separate

A campaign can be eligible while its creative is unsuitable for the opportunity. Cover supported dimensions, required secure resources, redirect behavior, and render failures. Use approved test creatives in an isolated environment. Do not share real audience identifiers or rely on clicking production ads to prove that the buying logic works.

Make failure evidence actionable

For each case, save the fixture, expected decision, actual decision, rule evaluation, and relevant event identifiers. An assertion that only checks HTTP status misses most business failures. Include no-bid as an intentional expected result when a rule excludes the opportunity. Keep tests deterministic by controlling time and external dependencies in the test environment.

Define a campaign fixture

Prepare a fictional campaign with a known budget, allowed banner dimensions, permitted geography, device conditions, and schedule. Document which data sources supply each decision input. Use an isolated environment and clearly synthetic identifiers. A fixture should be small enough that another person can calculate the expected result without consulting a production account. Record both eligible and excluded opportunities in the same fixture set. This gives the team a concrete buying contract to review and reduces dependence on a campaign that changes during the investigation. A repeatable fixture is especially useful when multiple rules interact and a live request cannot reveal which one caused exclusion.

Construct boundary cases for targeting

For every targeting rule, identify ordinary matches, ordinary exclusions, missing signals, and malformed signals. A geographic rule should specify how unknown locations are handled. A dimension rule should cover a supported size and a nearby unsupported size rather than comparing unrelated formats. If the product supports lists or exclusions, include conflicts and empty lists in the fixture design. Do not infer behavior from interface labels alone. The product contract should define precedence when two rules overlap. Record the expected decision reason so a correct exclusion can be distinguished from an unrelated failure that happens to return the same no-bid outcome.

Check scheduling with a controlled clock

Choose explicit campaign start and end times in the campaign timezone. Exercise opportunities immediately before the start, at the start, during the active period, at the end, and after the end. Define whether the end boundary is inclusive or exclusive. If day-parting exists, cover a period that crosses midnight and the transition between permitted and excluded intervals. Timezone conversions should be visible in the fixture record. Without a controlled clock, a check may pass or fail according to when it was run, making regressions difficult to reproduce. Schedule validation should not require waiting for a real campaign window to occur.

Inspect reservation and spend states

Budget behavior often spans more than one event. A bid may reserve funds before an impression or billing event confirms spend. Document the state machine used by the product, including expiration, cancellation, and reconciliation. Simulate two requests arriving close together to check whether they see a consistent available balance. Then repeat an event delivery to confirm it does not charge the same outcome twice. Use the product’s agreed tolerance rather than inventing a universal overspend allowance. A meaningful result reports the state before and after the events, making it clear whether the issue occurred during reservation, commitment, or release.

Separate pacing from a hard limit

A budget limit and a pacing strategy answer different questions. The limit constrains allowable spend; pacing determines how activity is distributed over time. A campaign bidding slowly might be following its pacing policy rather than failing to target eligible traffic. Document how the strategy responds to changing opportunity volume and how the interface explains those decisions. Check low-volume and high-volume periods using controlled request sequences. Evaluate whether the campaign remains within the budget contract while adapting its rate. Avoid judging pacing from a handful of isolated requests because the relevant behavior may depend on a longer history or an internal allocation window.

Use creative and format fixtures

Create approved synthetic creative fixtures for the supported formats. For banners, check dimensions and the actual delivery path. For other formats, use the applicable specification and partner integration requirements rather than assuming banner behavior applies. A fixture should make it possible to identify whether campaign eligibility, creative suitability, or rendering failed. Keep deliberately invalid creatives in a controlled environment so they are not distributed to real inventory. Describe the reason each fixture is expected to pass or fail. This turns creative checks into a repeatable contract instead of an informal visual impression that the asset appears acceptable.

Review the release evidence

A release summary should describe the fixture scope, the important expected decisions, observed failures, and unresolved limitations. Include cases that correctly returned no-bid, since preventing an ineligible purchase is part of successful buyer behavior. Record which dependencies were mocked and which boundaries were exercised against an integration environment. A passing mocked sequence does not establish that an external partner will accept a production creative. Keep those conclusions separate. The summary should help a product owner understand what behavior is demonstrated and what remains unverified, rather than presenting a single pass percentage that hides missing coverage of budget, targeting, or retry behavior.

Apply this guide with anonymized fixtures. Add your own verified operational examples when documenting a real integration.

About this guide

Prepared by the Skills Labs Tech Editorial Team · Reviewed for technical clarity October 2026

Skills Labs Tech publishes practical AdTech education for publishers, buyers, exchanges, product teams, and QA engineers. Examples are illustrative unless explicitly identified as a documented test or source-backed observation.

Learn about our editorial approach and expertise →