For video apps and publishers
Earn from every episode.Add zero ad breaks.
Penrose places brands inside your scenes and shows each viewer the one that fits.
Get a sample placementYour episode

Each viewer gets the brand that fits

Into fitness, 25-34

Into skincare, 18-24

Coffee lovers, 35-44
Set it up once.We run it and pay you.
You, once
- Connect your catalog
- Approve the shots
- Add one API call
import { Penrose } from "@penrose/sdk";
const penrose = new Penrose({
apiKey: process.env.PENROSE_SECRET_KEY,
});
const play = await penrose.resolve({
videoId: "ep_12",
audienceSegment: "fitness_25_34",
});
player.load(play.playbackUrl);
penrose.attach(player, play);Penrose, from then on
- Finds shots that can carry a placement
- Places brands in each one
- Serves each viewer the brand that fits
- Plays your original if anything fails
- Shows you what each episode earned
Every reason to say no, handled.
- “More ads will drive viewers away.”
- No new ad breaks. Compare viewing with and without placements.
- “My engineers have no time.”
- One API call, and we work directly with your engineers.
- “The wrong brand could appear.”
- You approve every shot and block any category.
- “It could break playback.”
- If anything fails, your original plays.
Questions
Does it work with my app?
Yes. Stream our HLS links, host our MP4 files on your CDN, or call our API from any language. If your app needs something else, we’ll add it.
Where does my video go?
To us first. Third-party AI video models get only the shots you approve for editing, and nothing goes live until you approve the result.
Who can join?
Short-form video apps with the right to edit their episodes, including any actors’ likenesses. We don’t take content made for children.
See it in your own episode.
Send one episode. We send back a sample placement.
We set terms with each publisher and take a few apps at a time.