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

# Product marketing

> Teach the Merchandising Agent how you actually market your inventory — from your media kit, decks, and one-sheets — and see where your own promises outrun your live catalog.

## Overview

<Note>
  **Retirement notice.** Product marketing becomes the
  [Library](/v2/storefront/library). This page remains available for sellers
  whose storefront does not yet show the Library.
</Note>

**Product marketing** is where you hand the
[Merchandising Agent](/v2/concepts/storefront-agent) your own marketing
material — not a form you fill out, but the actual documents and pages you
already use to sell: your media-kit site, template proposal decks, one-sheets,
package and sponsorship menus, case studies, audience cards, spec sheets, and
seasonal calendars. This is where the agent learns how you merchandise — how
you name and package inventory, the story you tell about it, who you say it
reaches, and what you point to as proof.

From each piece of material come **selling points**: discrete statements
about how you sell, each one recorded with where it came from — lifted from a
document you upload, or captured from what you tell Murph about a page you point
it at. Confirmed selling points can then
feed into how the agent composes a proposal, and each one is checked
against your actual live inventory so a promise your marketing makes is never
pitched to a buyer your catalog can't back up.

<Note>
  This is separate from your business profile (who you are — company name,
  domains, contacts), which lives in account setup, and from
  [Playbook](/v2/storefront/playbook/overview), which holds your structured
  pricing and packaging rules. Your marketing is unstructured evidence about *how
  you tell your story*; Playbook is the structured rules the agent enforces.
</Note>

For headless v3 integrations, **Material** is the durable API object behind
this evidence. Each source refresh keeps its own immutable original reference,
and supported files can also expose bounded page, slide, or sheet renditions,
semantic blocks, and rights-aware visual assets. Existing Product Marketing
entries remain readable as partial Material projections with their original
evidence; they are not relabelled as complete visual extraction. See
[Add and inspect seller Material](/v2/setup/v3/seller-workflows#add-and-inspect-seller-material)
for the upload, processing, and retrieval flow.

## Where it lives

**Product marketing** is a row in the **Teach** section of your seller rail —
the part of the rail that holds what you train your agent with, next to your
Playbook. The row carries a glance at your marketing: when any of your selling
points promises something your live inventory doesn't back, it shows the
not-backed count so you learn there is a decision waiting without opening
anything. With nothing unbacked it shows how many selling points are teaching
the agent, and when one of those results last changed. The row is a glance,
not a freshness claim: it reports the results on record, and if none has ever
been recorded it says so rather than implying all is well. The page itself is
where your marketing is actually re-checked, and it tells you when that check
ran.

For sellers enrolled in the Product marketing rollout, opening the Teach row
opens the canonical Material-backed **product marketing page**. Earlier saved
Product Marketing launches keep opening their released compatibility page, so a
past entry remains readable as the record that created it. The canonical page
is organised as a record of what your agent has learned:

* **A truth strip at the top** — how many selling points are teaching the
  agent, how many your live inventory backs, how many aren't backed, and how
  many haven't been checked. Opening the page re-checks the selling points it
  could read against your inventory as it stands right then, and the strip
  says when that check ran. It separately reports when a result last
  *changed*, so marketing that has agreed with your inventory for a month
  reads as freshly checked rather than as a month stale.

  One read has a ceiling — 2,000 selling points — and both the re-check and
  those counts describe that read. Practically every seller's marketing fits
  well inside it. If yours does not, the page says so in place of pretending
  otherwise: the counts are labelled as describing the part of your marketing
  we could read, and it reports them as "at least" rather than as totals. When
  you see that notice, treat it as: selling points beyond the ceiling were not
  re-checked on this open and are not in these numbers, and "when a result
  last changed" is shown as not yet known across all your marketing rather
  than guessed from the part on screen.
* **One card per piece of material**, under the name you gave it, with its
  version (`v3`, and when the version that replaced the earlier one landed)
  and the selling points learned from it.
* **Each selling point in your own words**, with the attribution it actually
  has: the verbatim quote and its location, the stated reason there is no
  quote, or the plain statement that this is your own account, presented to
  buyers as your claim.
* **Each not-backed selling point as a decision**, with both ways to close it
  as buttons: open your setup to add the inventory, or withdraw the selling
  point behind a confirmation.
* **What each selling point shaped** — the exact recorded RFP turn it fed,
  with its live, draft, or synthetic-evaluation status and composition time.
  The connection is shown only when that turn's immutable response evidence
  names the same Material, source revision, and accepted candidate. Each line
  opens that exact Proposal Pass; a turn we can no longer resolve says so
  instead of opening an empty page. The list is deliberately bounded to the
  newest recorded turns, so opening a Material never turns into an unbounded
  history read. If older turns were not loaded, the page says it is showing a
  bounded newest-first view; if provenance could not be checked, it says that
  rather than presenting an empty list as proof that nothing was shaped.
* **Add material** — paste your media-kit link or choose a private file in the
  browser picker. The page saves either source as Material and shows its
  processing state here. A host that does not expose the private-file picker
  keeps the chat attachment route as a compatibility fallback. Withdrawing a
  selling point remains a separate confirmation-gated action.

When a proposal's fed-by detail names "Your marketing", that chip now opens this
page anchored on the exact selling point that shaped the decision — including
when your marketing is large enough to span several pages, in which case the
page you land on is the one holding that selling point. If you withdrew the
selling point in the meantime, the page says it was withdrawn rather than
leaving you hunting for it.

## Controlled synthetic evaluation

An active Demo Storefront adds a controlled practice sequence to the canonical
**Teach** page. It is for rehearsal only, and does not create buyer demand or
send anything to a buyer.

The page starts with **Upload a file**. Add a media kit, rate card, sales deck,
or product catalogue; the Merchandising Agent identifies offers, and you review
them before testing a buyer brief. **Add a webpage** is the secondary route when
the same material is available at a public address. Synthetic teaching material
remains available as optional practice when you are not ready to use your own
material.

This route follows the Demo lifecycle rather than the seller's ordinary
product-composition capability or commercial Product Marketing availability.
While the Demo is active, the seller can reach the controlled Teach sequence
even when those ordinary routes are unavailable. The exception ends when the
Demo is no longer active. Commercial Product Marketing access continues under
its existing account eligibility; an active Demo does not grant access after it
expires.

The Page uses three customer-visible MCP contracts for this sequence. They are
Page-only: each call requires the signed Teach Page permission and an active,
unexpired Demo, and is not available as a general chat action.

| Page-only MCP tool                  | Input                 | Response and boundary                                                                                                                                                                                                                                                                                                                                  |
| ----------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `teach_get_evaluation_status`       | `{}`                  | Returns `{ available, state, synthetic, materialCount, pendingCandidateCount, disclosure }`. `state` is `materials_not_loaded`, `review_candidates`, or `ready`; `synthetic` is always `true`.                                                                                                                                                         |
| `teach_prepare_synthetic_materials` | `{ clientRequestId }` | Returns `{ state, materialIds, synthetic }`, where `state` is `complete` or `incomplete` and `synthetic` is always `true`. For an incomplete result, the returned IDs are already durable and the Page shows `materialCount` as `materialIds.length`. Retrying uses the same fixed synthetic generation rather than creating a replacement generation. |
| `teach_start_synthetic_evaluation`  | `{ clientRequestId }` | Returns `{ rfpId, turnId, purpose: "evaluation", synthetic: true }`. The server chooses the fixed held-out brief and the Page opens that exact RFP and turn; callers cannot supply or replace the target.                                                                                                                                              |

All three contracts remain synthetic-only. The guided 30-minute rehearsal and
self-guided playground use these same canonical contracts; only their tutorial
scaffolding differs. Planning rates are never live or buyer-quotable, and
custom fulfilment still needs a named human or a Connect follow-up.

Before the practice proposal starts, Teach identifies this route as using the
confirmed synthetic facts from the seeded Demo catalogue. That is a deliberate
commercial-source selection. The proposal can use only that catalogue and the
six matching, versioned synthetic teaching sources. It does not mix in an
ordinary media-kit upload, Product Marketing entry, or Sales Library example.
Choosing a future seller-taught commercial set will be a separate explicit
selection; an incomplete taught set cannot fall back to Demo products.

1. Select **Prepare synthetic teaching materials**. Teach loads six sources
   visibly labelled synthetic, including a synthetic rate card. Those rates are
   planning material only: they are not live prices and cannot be quoted to a
   buyer. If preparation is interrupted, retrying resumes the same fixed
   synthetic source generation; Teach never substitutes ordinary seller
   material merely because its display name matches.
2. Review every extracted candidate. You can accept it, reject it, or correct
   it. The fixed evaluation brief remains unavailable while any candidate is
   pending, and the server checks this again when you open it.
3. Select **Open held-out synthetic buyer brief**. This opens the exact
   **Proposal Pass** for one immutable evaluation turn. The buyer brief is
   synthetic and held out until this point; it is not a field you can paste or
   edit in Teach.
4. Give coaching feedback in Proposal Pass. Review your words before you save:
   the existing feedback action records them immediately on that immutable
   turn; there is no separate approval write. A rerun appends a later immutable
   turn, keeping the same synthetic brief and showing the before-and-after
   proposal difference.

After you accept teaching material, Teach also offers **Test a buyer brief**.
Paste the held-out synthetic buyer brief and select **Run held-out buyer brief**
to create its evaluation Proposal Pass. The brief stays synthetic and is never
sent to a buyer. If the brief is saved but Proposal Pass does not open, trying
again reopens that same immutable turn rather than creating another brief.

The proposal keeps its source and planning-limit disclosures visible. It calls
out any custom fulfilment that needs a named human or Connect follow-up rather
than presenting it as automated or available now.

## What to give it

Anything you already use to market your inventory to buyers counts:

* Your media-kit website
* Template proposal decks and upfront presentations
* One-sheets and sell sheets
* Package or sponsorship menus
* Case studies
* Audience or first-party-data cards
* Spec sheets
* Seasonal or tentpole calendars

Give it both a site and documents if you have both — a media-kit page and a
sponsorship one-sheet aren't competing sources, they're two pieces of the same
marketing.

## Adding material

There are two ways to add a source, and both go through Murph:

* **An upload.** Drop a deck, PDF, spreadsheet, or one-sheet into the
  conversation. Murph parses the file itself, so every selling point it
  proposes comes back with the verbatim sentence and where in the document it
  sits.
* **A link.** Talk your media-kit page through with Murph and record what it
  says. **We don't fetch that page today** — nothing on our side reads it — so
  what gets stored is your own account of it, which you approve before it is
  kept. It still needs to be a public `https` link with no sign-in
  credentials built in (`https://name:password@…` is refused), because the
  link is stored as the source of that entry and shown to anyone on your team
  who reads it. If you want quote-level provenance for that material today,
  upload the document version of it.

Either way, Murph proposes the selling points and you review them before
anything is kept: **nothing is saved on its own.** The confirmation
shows you every selling point in full — for an upload, with the exact quote
and location it came from, or the stated reason it has none; for a page, as
the words you gave Murph — and you can keep fewer than were proposed, but what
gets kept is always the selling point exactly as it was shown to you. Nothing
can be reworded or re-attributed on its way into your marketing, including by
Murph. Only after you confirm does the
material and its selling points join your marketing, through `confirm_product_marketing_source`.

Add one document at a time. Selling points are read for the upload as a
whole, so if several documents arrive together nothing can say which one a
given selling point came from — rather than guess, we refuse the confirmation
and ask you to add them one by one.

Confirming the same site or document again — say, after you update your deck —
doesn't duplicate your marketing. It lands as a new **version** of that entry,
so your marketing always shows the material you're currently standing behind
while keeping the history of what changed. A site is matched by its link. An
upload is matched by **the name you give the material**, because every upload
lands at a new location: re-upload your refreshed rate card under the same
name and it replaces the old one — the earlier version's selling points stop
feeding proposals immediately. Give a genuinely different document a
different name.

## Where a selling point's attribution comes from

The two ways of adding material can support different kinds of proof, and
your marketing records which one each selling point has — not to grade how
much we trust it (it's your material either way), but to say how your agent
will carry the line to a buyer.

Your marketing records **three** kinds, and keeps them distinct:

* **Quoted from your document.** We parsed the file, so the selling point
  carries the exact sentence and where it sits.
* **From your document — nothing to quote; noted as declared in your
  document.** Also from a file we parsed, but that part of it had nothing
  quotable — an infographic, a chart — so the selling point carries the
  stated reason instead of a sentence, and your agent carries it as material
  from your document rather than as your own account of something we never
  read.
* **From you.** Your own claim about a page we did not fetch. That is real
  attribution — you reviewed and approved it — so your agent presents it to
  buyers as your own claim; it's just not a quote anyone on our side read, so
  it is never dressed up as one: these selling points carry no quote or
  location at all. (Case-study stories carry this same label for a different
  reason — see [Case-study stories](#case-study-stories).)

Everywhere a selling point appears — your marketing, the not-backed list, the
ingredients that fed a proposal, and the instructions your agent composes
from — all three are labelled distinctly, so nobody downstream has to guess
which kind of fact they're reading or treat them as equally proven.

A selling point that states a number — "100 million monthly uniques," a lift
percentage, a reach figure — is more persuasive to a buyer once it names who
measured it. When one doesn't yet, your product marketing page invites you to
add one (a source like "per Comscore, March 2026") rather than treating the
missing source as a mark against the selling point itself.

## What a selling point is

A **selling point** is one thing your own material says about how you
package, position, or prove your inventory — kept in your own words, and always
recorded with the attribution it actually has: the exact quote and location (a
slide number, a page) when it came from a document we parsed, the stated reason
when that part of the document had nothing quotable, or your own approved
account when it came from a page we did not fetch. See
[Where a selling point's attribution comes from](#where-a-selling-points-attribution-comes-from).
So a selling point is never a paraphrase you'd have to take on faith, and never
presented as better evidenced than it is.

Every selling point has a kind:

| Kind            | What it captures                                         |
| --------------- | -------------------------------------------------------- |
| `packaging`     | How you bundle or name inventory                         |
| `story_pattern` | The narrative you use to sell it                         |
| `audience`      | Who you say your inventory reaches                       |
| `proof_point`   | What you cite as evidence — results, case studies, scale |
| `spec`          | A technical promise — a format, a channel, a capability  |
| `seasonal`      | A time-bound offer or calendar commitment                |

## Your marketing vs. your inventory

Some selling points make a **checkable** promise — "we run CTV sponsorships,"
"our audience card includes an in-market auto signal" — naming a channel, a
creative format, or an audience signal by name. For those, we compare the
selling point against your storefront's actual live inventory:

| Verdict         | What it means                                                                                                                                                                                                                                                                            |
| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Backed**      | Your catalog currently supports what the selling point promises.                                                                                                                                                                                                                         |
| **Not backed**  | Your catalog does not (yet) support it, named specifically: which channel, format, or signal is missing. The API reports this verdict as `gap`.                                                                                                                                          |
| **Not checked** | The selling point doesn't name anything checkable (a proof point like "the most trusted name in local news" isn't a testable promise), or your live inventory couldn't be read at the time. This is silence, not a finding — it is never shown as if the selling point had been cleared. |

A selling point that isn't backed is a decision, not a verdict against you —
your marketing may be ahead of your catalog, or it may be describing
something you no longer sell. There are two honest ways to close it:

1. **Add the inventory.** Bring your catalog up to what your marketing already
   promises.
2. **Withdraw the selling point.** If the promise is outdated, take it back
   so it stops being told to buyers.

A **Not backed** selling point is automatically held back from shaping
proposals until you close it one of those two ways — the agent never repeats a
promise your live inventory can't keep.

## Undoing a selling point

If a selling point no longer reflects how you sell — the promise was retired,
or you'd rather fix it than keep it — ask Murph to withdraw it. Withdrawing a
selling point:

* Stops it from shaping any new proposal immediately.
* Keeps the source material and the selling point's history in your
  marketing — nothing is deleted, and any past proposal that already used it
  keeps an honest record of that.

You can always re-confirm the same or updated material later to teach the
selling point again as a new version.

## Case-study stories

A selling point is a single sentence, and some of your material doesn't fit
in one — a case study with a challenge, what you did about it, and the
results you measured (a specific brand-lift percentage, for example) is a
whole narrative, not a statement. **Case-study stories** hold that narrative
whole, alongside your selling points, so the agent can draw on the actual
story rather than a compressed paraphrase of it.

A story is confirmed from the same material as your selling points — a site
or a document — and is optional: a piece of material can carry only selling
points, or selling points plus one or more stories. Each story carries:

* A **title** and, when the material names one, the **advertiser** and its
  **industry vertical**
* The **channels** it concerns (CTV, display, audio, and so on)
* The **challenge** the advertiser faced and the **method** you used to
  address it, in the material's own words
* The **results** — each one a measured outcome verbatim (a lift, a reach
  number) together with who measured it, so a number never appears without
  its source

Unlike a selling point, a story is always recorded as your own confirmed
account, whether it came from a document or a site — there's no
quote-and-locator mode for a story yet, because unlike a selling point, a
story isn't yet matched back to the exact place in your document it came
from, so we can't show that match today. That will change once story
matching ships. Every story added today is material you've confirmed is fine
to share; there's no separate confidentiality setting yet, and the
advertiser name is recorded as plain text rather than resolved to any
identity record.

Your product marketing page lists confirmed stories in their own **Case
studies** section, most recent first. Unlike a selling point, a story isn't
checked against your live inventory (there's no verdict to show), and there's
no withdraw button for one yet — retiring a story means re-confirming the
material without it.

When a buyer's brief clearly points at one of your stories — it names the
advertiser, matches the industry vertical, or matches a channel — the agent
may draw that ONE story into the proposal it composes, alongside your
selling points. A brief that doesn't point at any story draws none in; this
never picks a "best" story to lead with by default.

The same matched story is also what fills the **Proof** section of a
[story-first proposal](/v2/storefront/proposal-story#proof-specifically) —
one more reason a case study you confirm here is worth having on record, not
just a compliance step.

## Try a brief

You don't have to wait for a real buyer request to see this working. **Try a
brief**, right on this page, lets you paste brief text and run a real
practice pass for it — your agent composes an actual proposal and pitch,
tagged as practice, never billed and never sent to a buyer. It opens
immediately so you can read it; because it's practice rather than real
demand, it won't appear afterward in your [demand inbox](/v2/storefront/demand-inbox)
list. See [Try a brief](/v2/storefront/proposal-story#try-a-brief) for the
full flow.

## Where you'll see it work

Once you've confirmed material, an eligible selling point can shape how the
Merchandising Agent describes a product to a buyer — never prices, floors,
eligibility, or availability, which have their own owners (Playbook and
AI Business Rules). When a proposal used your product marketing, its **fed-by**
detail names "Your marketing" alongside the exact selling point that shaped
it, so you can always trace a description back to the material that taught
it — and tapping it opens your product marketing page on that selling point.

The trace runs both ways. On the page, each selling point shows the proposals
it went into, so you can see one sentence from your deck turning up in what
buyers were actually told.

## Related

<CardGroup cols={2}>
  <Card title="The story-first proposal" href="/v2/storefront/proposal-story" icon="book-open">
    Where your selling points and case studies show up in a composed pitch — and Try a brief.
  </Card>

  <Card title="Playbook pricing" href="/v2/storefront/playbook/overview" icon="tags">
    The structured pricing and packaging rules the agent enforces.
  </Card>

  <Card title="Merchandising agent" href="/v2/concepts/storefront-agent" icon="wand-magic-sparkles">
    How the agent turns what you've taught it into a priced proposal.
  </Card>

  <Card title="Demand inbox" href="/v2/storefront/demand-inbox" icon="inbox">
    See exactly which ingredients — including your marketing — fed each response.
  </Card>
</CardGroup>
