AI Content Disclosure: Labelling Generated Marketing
Founder, The Mark Platform

You used an AI assistant to write the copy on your last ad. Maybe it drafted the headline, maybe it just tightened one line. Either way, something generated is now on a public image with your company's name under it.
Does that need a label? If so, what kind — a bit of text in the corner, or something in the file? And who is making the declaration, you or the tool you used?
AI content disclosure is two separate markings with two different jobs, and most people only know about one of them. This post explains both, and what to do about it as a solo founder.
This is a description of a mechanism, not legal advice. Whether and how these obligations apply to you depends on facts about your business that no blog post knows.
Who has this problem
You are a founder producing your own marketing. You are using AI somewhere in the pipeline — copy, images, video, or an assistant driving the tools. You are not a lawyer, you do not have one on retainer, and the guidance you have found so far is either a law firm's summary written for enterprises or a forum thread of people guessing.
If you have ever wondered whether the "Made with AI" label you have seen on social platforms is something you are supposed to add yourself, this is for you.
Why this problem exists
The rules and the tooling arrived from different directions and have not met in the middle.
The regulation asks for machine readability. The EU AI Act, at Article 50(2), requires providers of systems generating synthetic image, audio or video content to mark that content in a machine-readable format, detectable as artificially generated or manipulated. That is a statement about file metadata, not about a caption.
The platforms ask for something they can act on. Social platforms read metadata where it exists and apply their own AI labels. But they also re-encode your file, strip metadata, and rewrite containers — so a marking that lives only in metadata can quietly disappear between your machine and someone's feed.
And the tooling has a gap that catches almost everyone. The standard for this is C2PA — Content Credentials. The reference tool is called c2patool. Search for how to install it and you will find hundreds of pages telling you to run npm install -g c2patool.
There is no c2patool package on npm. That command 404s. It is one of those instructions that propagated by being copied rather than by being run, and the result is that a great many people have followed the documented path, hit an error about a missing package, shrugged, and published the file unmarked. A control that looks present is the worst kind to be missing.
How to actually disclose AI-generated marketing
1. Attach both markings, because neither is sufficient alone
The machine-readable manifest is a signed C2PA record travelling with the file. It is what platforms and verification tools read. It is completely invisible to a human being.
The visible in-frame marker is text rendered into the pixels. It survives re-encoding, screenshotting, and any platform that rewrites your file, because it is the picture. It is what an actual person sees.
Metadata without a visible marker fails the moment a platform strips it. A visible marker without metadata is not machine-readable. Attach both.
2. One manifest per output, not per batch
If you publish a carousel of eight images, that is eight files and eight manifests. A single manifest marks whichever file the command pointed at — and the eighth slide is precisely the one that gets missed.
The practical form of this: a script that walks every rendered output rather than a command you run once per file by hand.
3. Replace the file in place
This one is a trap. The obvious way to sign a file is to write a signed copy next to the original — image-signed.png beside image.png.
Do not. The unmarked original is now sitting in your output folder, indistinguishable at a glance, and it is the one that gets uploaded. Sign to a temporary file, read the credentials back off that to confirm they took, then move it over the original. The file you post must be the marked file.
4. Get the certificate extensions right, or signing just fails
If you self-sign, C2PA's X.509 profile expects keyUsage=digitalSignature, an extended key usage of emailProtection or documentSigning, and CA:FALSE.
A plain openssl req -x509 gives you none of those. Worse, the resulting error names the credential, which sends you off to regenerate a key that was never the problem.
And a note that saves an entire afternoon: you cannot use your TLS certificate for this. Different extended key usage, a different trust list — web PKI roots are not the C2PA conformance list — and reusing the key that terminates your TLS to also attest content provenance means one compromise costs you both.
5. Know what a self-signed manifest is and is not
It produces a real, readable manifest. A verifier will read it and report what it declares. It does not make you a trusted signer, because your certificate is not from an authority on the C2PA conformance list. A verifier shows the file as carrying credentials from an untrusted signer — which is the honest description of it.
That is still worth doing. An unsigned file declares nothing at all.
6. Be clear about who is credited, because it is three different parties
This is the part that surprises people, and getting it wrong misattributes authorship of your own work:
| Field | Who it names | Why |
|---|---|---|
claim_generator |
The software that made the file | The tool, and its version |
CreativeWork author |
You, or your company | Who is behind the content and holds the rights |
| Signing certificate | You | Your certificate, self-signed unless you buy one |
A generation tool is the generator, never the author. Naming itself as author would be claiming authorship of your work. And the choice of author name is a real decision — an agency and its client are different answers, and the AI disclosure travels under whichever name you pick. It should be asked, not decided for you.
7. Verify, do not assume
Running the attach command and having the marking succeed are different facts. Any tool or assistant that ran the command will report success whether or not signing worked, and a failed signing leaves a file that looks completely finished.
Read the credentials back off the rendered file. Make an unmarked output a blocker in your creative review, not a warning.
Why trust this approach
Because the awkward parts are stated rather than smoothed over. The npm package that does not exist, the certificate extensions that fail confusingly, the fact that a synchronous signing binding cannot fetch a trusted timestamp and falls back without one — these are the things that actually stop a founder getting a marking attached, and none of them appear in a vendor's feature list.
On The Mark Platform, every generated creative carries the disclosure and there is no switch to turn it off. That is deliberate and it is the regression to guard against: a disclosure: false added in good faith for one customer is how "this always happens" stops being true. The default source type is also the stronger declaration whenever an assistant wrote or approved any copy, because guessing "no AI" and being wrong leaves an undisclosed synthetic creative, while guessing "AI" and being wrong costs a label on something that did not strictly need one. Those are not symmetric risks.
What we will not tell you is that any of this makes you compliant. We attach the marking. Whether you are a provider or a deployer under the Act, and which obligations attach to you, are facts about your business. Article 50(4) may separately require a visible disclosure in cases this does not cover.
Frequently asked questions
Does a blog post written with AI need this? Article 50(2) as described here concerns image, audio and video. Text carries different treatment, and platform policies vary.
Will the label hurt my performance? No evidence it does, and it is increasingly the norm. A platform applying its own label to a file you did not mark looks worse.
What if I only used AI for one line of copy? That is still composite content. The stronger declaration is the safer default.
Do I need to buy a certificate? Not to produce a readable manifest. You need one from a conformance-list authority to be a trusted signer.
Your next step
Two markings, one manifest per file, replace in place, verify what you attached. That is the whole practice.
The Mark Platform attaches both to every creative it generates and hands you the script that embeds them on your own machine — see how the platform handles your data, or read about generating the creatives themselves.
Ready to start selling?
The Mark Platform guides developer-founders from product idea to first 100 customers. No marketing degree required.
Start your 8-step marketing journey — freeOr explore the 8-step journey, the MCP tools, and pricing.
Keep reading
Video Ads Without a Video Team — Ship One This Week
Video ads without a video team are possible when the project is generated for you. Plan, generate and render your first one this week.
7 min readWhy Your Ads All Look the Same — And How to Fix It
Your ads all look the same because they are derived from one brand record. Here is why creative variation needs a different mechanism, and what to change.
7 min readAd Creative Review: The Checklist Before You Publish
An ad creative review catches the defects you stop seeing after the third look. Here is the checklist, and the one test that outranks all of it.
7 min readWritten by
Afzaal Ahmad ZeeshanFounder, The Mark Platform
Building developer tools for over a decade. Writing about the intersection of engineering and go-to-market strategy.