> ## 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.

# What you need for a GAM pilot

> The short checklist for piloting a publisher storefront connected to Google Ad Manager, and which parts Semicola can run today.

A good pilot shows that your storefront agent can answer the kinds of briefs you want to win, not
just that a campaign can reach the ad server. Keep execution small: one ad server, one or two buyers,
a handful of real brief and response pairs, and one no-spend campaign. Give the storefront agent
enough inventory, signals, pricing and selling guidance to make those briefs interesting.

<Warning>
  **Where Semicola is today.** You can save a Google Ad Manager connection (your network code), but
  Semicola doesn't read inventory from GAM or traffic orders to it yet. Before any GAM connection
  can be saved, Semicola must configure its GAM service account on your environment, and you add
  that account as a user in your GAM network; until then the connection form says it isn't
  configured. Everything in this checklist that happens inside Semicola (products, signals,
  material, pricing, rules, practice briefs, sandbox test runs) works now. The GAM trafficking and
  GAM delivery steps don't, and are marked below.
</Warning>

## What the publisher needs

* **A verified Seller account** with your name and brand domain (**Listing** page, or `save_seller`
  and `set_storefront_operator_domain`).
* **A Google Ad Manager connection.** Add Semicola's service account as a user in your GAM network
  with the access needed to read inventory and traffic the test campaign, then save the connection
  with your network code. *Not available yet: Semicola configures the service account first, and
  GAM reads and trafficking aren't built.*
* **A separate sandbox advertiser in GAM** for the no-spend test, never a live or default
  advertiser. *Not available yet: Semicola can't create or map a GAM advertiser.* Inside Semicola,
  the no-spend test runs through a sandbox advertiser instead (see [Sandbox](/concepts/sandbox)).
* **Representative inventory.** The properties, placements, formats and channels needed for the
  briefs you want to test, as products (`save_wholesale_product`). Don't limit the pilot to a generic
  run-of-site package if that isn't what you want to sell.
* **Useful signals.** Turn the audience segments and contextual targeting you already use in GAM into
  signals (`save_signal`), enough to show how the offer changes for different briefs. See
  [Signals](/sell/signals).
* **Useful sales material.** Enough for the agent to explain who you reach, why your properties and
  editorial contexts matter, which formats or sponsorships are distinctive, and what proof supports
  those claims. A media kit, audience cards and case studies are more useful than a media kit alone
  (`save_material`; see [Library](/sell/library)).
* **Pricing it can apply.** The currency and the price guidance that matters for the pilot: target
  prices or floors, when each applies, and any audience, context, format or sponsorship premium or
  minimum spend the test briefs should trigger. Record them as playbook pricing facts
  (`hard_floor`, `default` or `guidance`) and product floors. One generic CPM isn't enough if the
  offers are meant to differ. See [Playbook](/sell/playbook).
* **Basic selling choices.** Which advertisers you don't accept, which creative formats are allowed,
  and whether you want to approve the media buy or creative before it runs (**AI Business Rules**,
  `save_business_rules`, with `mediaBuyApproval` and `creativeApproval` set to `manual`).
* **Real brief and response pairs.** Three to five recent briefs you actually received, with the
  proposal you sent for each. Pick examples that show different demand (broad reach, a valuable
  audience, contextual relevance, a distinctive sponsorship) and a declined or no-fit brief if you
  have one. Sanitize them if you need to, but keep the objective, audience or context, market,
  flight, budget, important constraints, recommended plan, price logic and why it fit. Mark pricing
  or availability that is no longer current. Import each as an RFP (`save_rfp` with
  `origin: "imported"`) and attach what you sent (`attach_response`). Use made-up briefs only when
  real ones aren't available.
* **One test buyer.** Decide who takes part. The no-spend campaign runs from a sandbox advertiser and
  goes through your media buy approval gate like any other buy.
* **A billing choice.** Decide whether Semicola or you bill the buyer. If you bill directly, an admin
  on the buyer's account accepts direct billing on its connection to your storefront before a paid
  campaign.
* **Discovery plus one executed test.** Check that the storefront agent returns relevant,
  differentiated products for each agreed brief. Then take one proposal through campaign creation,
  creative review, trafficking and a simple delivery report. *Today the executed test runs as a
  sandbox media buy with simulated delivery (`save_test_run`); GAM trafficking isn't available yet.*

<Note>
  Direct billing doesn't change the inventory setup. It changes who sends the invoice, not how
  inventory is connected or merchandised.
</Note>

## Read the response like a buyer

Run the real briefs again as practice RFPs and compare each answer with what you actually sent. Ask
five questions:

* Does it reflect the buyer's objective and constraints?
* Does it make a specific case for you, using relevant audience, context, selling points or proof,
  not generic reach language?
* Is the plan coherent: the right products, formats, price, currency, flight and budget?
* Does it clearly say what's missing, unsupported, or a reason not to answer the brief?
* Could you send it after a quick factual review, rather than rewriting it?

If not, fix the missing inventory, signal, price guidance or material, then re-run the same brief
(`save_rfp` with `append_turn`) and grade it (`record_feedback`). See [RFP lifecycle](/sell/rfp-lifecycle).

## Only add these if the pilot uses them

* **Public buyer discovery.** Listing on the marketplace is a separate step; a named-buyer pilot can
  start privately.
* **Live GAM advertiser routing** for paid activity. *Not available yet.*
* **Paid delivery.** Confirm the direct-billed buyer can be invoiced, or finish Semicola billing
  setup, before moving from no-spend testing to paid media.

## What Semicola helps with

Semicola turns your products, signals, material, pricing and rules into the storefront agent's
answers, gives buyers an agent to buy through, and runs the test from brief to report. You supply the
inventory choices, commercial terms, creative rules, GAM access and approvals.

## The pilot is complete when

* The storefront agent produces relevant, differentiated products for the agreed briefs, not the
  same generic package every time.
* The products use the expected inventory, signals, formats and pricing.
* The proposal answers the buyer's objective, explains why the plan fits, gives clear terms, and
  doesn't invent support you haven't supplied.
* The no-spend campaign and creative reach GAM under the sandbox advertiser. *Not possible yet;
  today the sandbox test run is the closest check.*
* Your approval choices are followed.
* Delivery can be read back in a simple report.

For full setup, see [Seller onboarding](/sell/onboarding) and [Inventory sources](/sell/inventory-sources).
