The disclosure duty turns on what you actually knew. That makes the provenance record your defence — and “the agency said it was fine” in a Slack thread from March is not a record. This is the register that holds the decision, per ad and per market, with the evidence behind it.
Buy Now — $19One-time payment · works offline · nothing leaves your browser
They are not the same question, they do not have the same answer, and a single “used AI?” column collapses all three into one wrong one.
A generated human who is not recognisable as any real individual. This is what a synthetic-performer disclosure statute is actually about, and the only one of the three that lands here.
A face swap, a de-ageing pass, a generated double of someone identifiable. That is the digital-replica question — different consents, different paperwork. The app routes it away rather than quietly filing it as a disclosure.
Generated sets, objects, environments, with no AI human on screen. Out of scope of this duty — recorded as a decision you made, not as a gap someone has to re-litigate later.
One record per ad, filled in before it goes live.
Who confirmed the synthetic performer, on what date, and from which source: in-house, agency, stock vendor, or asked-and-never-answered. That last one is a first-class state here, and it surfaces as an open risk rather than resolving itself.
The same creative can be in scope in one state and out of scope in another. Markets come from a jurisdiction list you maintain yourself, seeded with New York and editable as the rest of the patchwork moves — because it is still moving.
The expressive-works carve-out is conditional. Cut that footage into a standalone ad and the exemption is gone — the single most-missed case in every source on this. So it is a deliberate control on the form, flagged in red, not a checkbox buried on page two.
Tool, model, version, vendor, whether the prompt was retained and where, C2PA credentials, and whether a contractual warranty about the vendor’s generative-AI use is on file. A disclosure with nothing behind it is recorded as incomplete, not as compliant.
Six assets from one advertiser. The register bands them worst-first, so the ads that need a decision are always at the top.
| Ad | Format | Market | Classification | Disclosure | Status |
|---|---|---|---|---|---|
| Autumn Range — 30s hero cutConnected TV · live | Video | New York | Fully synthetic | None recorded | Disclosure required |
| Winter Teaser — stock b-rollSocial · vendor chased twice | Video | New York | Not yet confirmed | None recorded | Knowledge unconfirmed |
| Documentary trailer recut as pre-rollExemption claimed, then revoked | Audiovisual | New York | Fully synthetic | Opening card | Evidence incomplete |
| Spring Range — static keyvisualDisplay · full provenance held | Static | New York | Fully synthetic | On screen | Compliant |
| Founder anniversary filmDe-aged with consent on file | Video | New York | Digital replica | Not applicable | Out of scope |
| Radio spot — synthetic voice readNo on-screen performer | Audio only | New York | Fully synthetic | Not applicable | Out of scope |
Every write-up of this statute ends the same way: build the register before the first ad ships. None of them gives you the register. Your options are a $40k governance platform aimed at model risk, or a spreadsheet with one AI column and no evidence behind it. This is the thing in between, for $19, once.
Buy it, open it, start logging. No account, no subscription, no seat count.
No, and it says so on every screen and in the printed pack. It applies the rules you have recorded to the facts you have recorded, and shows you which ads have a thin record. What that means for your campaign is a question for your own counsel.
That is exactly why the list is yours rather than baked in. New York ships seeded with its citation, effective date and published penalty amounts; the other states ship as editable placeholders you fill in and mark verified. Unverified entries are flagged in the register and in the printed pack so nobody mistakes a placeholder for research.
Four things a column cannot do: it separates a synthetic performer from an altered real person, it keeps “unconfirmed” as its own state rather than an empty cell, it treats coverage as ad × market instead of a property of the asset, and it makes the repurposed-into-an-ad exemption revocation an explicit control rather than something you have to remember.
The app records them and marks them outside this particular statute, while noting that other advertising rules can still apply. The point is that the decision is written down with a reason, not that the record is missing.
Nowhere. It is a single HTML file that stores everything in your own browser. You will be typing in vendor names, prompts and internal notes, so that matters. Export a JSON backup or a CSV whenever you want a copy or need to hand the register to someone else.