> ## Documentation Index
> Fetch the complete documentation index at: https://docs.semicola.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Complete campaign example

> A fictional campaign traced through discovery, policy, booking, creative, changes and reporting, with an honest verdict on what each stage proves today.

**A rehearsal, not a recipe.** This is a fictional, sanitized campaign for walking through every
stage a seller cares about. It is not an import format, and it doesn't claim every stage is
automated. It contains no customer data. It uses the files from the
[Publisher example pack](/sell/publisher-example-pack).

## Campaign setup

| Field      | Fictional value                          | Where it comes from                                             |
| ---------- | ---------------------------------------- | --------------------------------------------------------------- |
| Advertiser | Sample Outdoor Co. (sandbox advertiser)  | The buyer's `save_advertiser`, with `sandbox: true`             |
| Campaign   | Winter Live Sports Launch                | The buyer's `save_campaign`                                     |
| Flight     | 2030-01-15 to 2030-03-15                 | The campaign                                                    |
| Budget     | USD 100,000                              | The approved campaign budget                                    |
| Seller     | Sample Publisher Network                 | A demo or test storefront                                       |
| Product    | Live Sports CTV                          | The storefront's wholesale product                              |
| Targeting  | US; connected TV; sports fans            | The brief and the product                                       |
| Quantity   | 500,000 impressions                      | The proposal                                                    |
| Price      | USD 58 CPM                               | The playbook's default price, never below the \$45 floor        |
| Creative   | 30-second 16:9 VAST video                | The buyer's `save_creative` (`urlAsset` with `urlType: "vast"`) |
| Approval   | Human review of the buy and the creative | AI Business Rules with both gates on `manual`                   |

## Walkthrough and verdict

| Stage          | What to do and what you should see                                                                                                                                                                                           | Today                                                                                                                                  |
| -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| Discovery      | The buyer requests proposals on the campaign (`request_proposals`). The storefront answers with Live Sports CTV in the approved price range.                                                                                 | Available. A seller can rehearse the same brief as a practice RFP (`save_rfp`).                                                        |
| Policy         | An ordinary outdoor advertiser is accepted; political or regulated briefs go to human review; explicit adult content is declined.                                                                                            | Available, through AI Business Rules.                                                                                                  |
| Reservation    | Hold 500,000 impressions against available capacity.                                                                                                                                                                         | Not available. A [modular source](/sell/modular-sources) tracks committed avails, but Semicola doesn't hold capacity against them yet. |
| Booking        | The buyer stages the buy (`save_media_buy`) and launches with approval. It waits in the seller's **New media buys** approval gate; the seller approves (`decide_media_buy_approval`) and it is sent to the inventory source. | Available for sales-agent and demo sources. Sending a buy to an ad server (GAM, FreeWheel, SpringServe) isn't available.               |
| Creative       | The buyer attaches the VAST creative; the seller reviews it (`decide_creative_review`), approving it or rejecting it with a reason.                                                                                          | Available.                                                                                                                             |
| Trafficking    | The ad server creates the order and line item and returns their ids.                                                                                                                                                         | Not available for ad servers. A sales-agent source does its own trafficking and reports status back.                                   |
| Update         | Reduce the quantity or change the flight, keeping the same campaign and media buy.                                                                                                                                           | Available through the buyer's campaign and media buy changes; the seller sees each change.                                             |
| Cancellation   | The buyer cancels; the seller sees the cancelled buy.                                                                                                                                                                        | Available.                                                                                                                             |
| Reporting      | Read delivery for the media buy (`get_delivery`).                                                                                                                                                                            | Available. For a sandbox advertiser, delivery is simulated.                                                                            |
| Reconciliation | Compare booked, delivered and spend, with corrections and a final figure after the flight.                                                                                                                                   | Not available yet.                                                                                                                     |

The rehearsal proves discovery, policy, the approval path, creative review, changes and the reporting
read-back, end to end in the sandbox. It doesn't prove capacity holds, ad-server trafficking,
reconciliation, or a paid launch. Record those as gaps, not passes.

To run the seller's half in one step, `save_test_run` answers a practice brief, books a sandbox media
buy and reads delivery back. See [Sandbox](/concepts/sandbox) and
[Media buy lifecycle](/concepts/media-buy-lifecycle).
