Design & media

Text Message Ad

Try it

Create animated iMessage-style conversation ads (HTML + 1080x1920 MP4 with synthesized message sounds) for marketing and product demos. Use this skill whenever the user asks for a "text message ad", "iMessage ad", "fake text conversation" ad, a chat-style promo video, or a short vertical video ad wh

What it does

Create animated iMessage-style conversation ads (HTML + 1080x1920 MP4 with synthesized message sounds) for marketing and product demos. Use this skill whenever the user asks for a "text message ad", "iMessage ad", "fake text conversation" ad, a chat-style promo video, or a short vertical video ad where someone texts a friend about a product — including when they only say "make an ad for my product" or "another version for X". Also use it for the social captions that accompany these videos.

The skill document

Text-Message Ad Maker

Builds a short (~15s) vertical video ad styled as an iMessage conversation: someone texts a friend about a problem, the friend recommends the product with a link card, and the video ends on a branded end card with a CTA. Output is a self-contained animated HTML file plus a 1080×1920 MP4 with synthesized send/receive sounds.

Intended use: marketing creative and product demos only. The conversations are fictional dramatizations between invented characters — a recognizable ad format, not an attempt to pass off a real conversation. Never use real, identifiable people as the characters, never present the exchange as a genuine testimonial, and add a "Dramatization" line to the end card if a platform requires disclosure. Do not use this skill to fabricate conversations meant to deceive (fake evidence, impersonation, etc.).

Workflow

1. Collect the brand inputs

Read references/brand-checklist.md and gather what it lists from the user: logo, product name/price/domain, the customer pain point, one proof point, the expensive alternative for the price anchor, and an accent color. It also contains the color-theming pattern, copy voice rules, and caption formulas.

2. Write the conversation

7 visible messages is the sweet spot for ~15s. The canonical beat structure (matching the template):

RowTypeBeat
0out (blue)Hook — customer states the pain
1typing
2inFriend reframes / names what's actually needed
3inFriend names product + price + one proof point
4in, link cardProduct link preview
5outSurprise / objection beat ("Wait, I can do that??")
6typing
7inFriend closes with speed/ease proof ("Took me 10 minutes 🙌")
8outAction beat ("Doing it now 🙏")

Keep each bubble under ~90 characters. Follow the positive-framing rules in references/brand-checklist.md.

3. Create the HTML

Copy assets/template.html (blue theme, placeholder copy in [brackets]) and string-replace: contact name + avatar letter, timestamp, all bubble texts, link-card preview text + meta title + domain, end-card brand name / tagline / price anchor / CTA text, and the theme colors per references/brand-checklist.md. Replace the .logoimg base64 data URI with the user's logo (trimmed, on white, base64-embedded). The HTML autoplays with a replay button — deliver it alongside the MP4 so the user can edit and re-record later.

4. Render the MP4

Requirements: Playwright + Chromium, ffmpeg, Python with numpy (all present in the Claude environment).

Write a timeline config JSON:

{
  "html": "/abs/path/to/ad.html",
  "framesDir": "/home/claude/frames_myad",
  "durationMs": 15000,
  "ts": 400,
  "shows": [900, 2000, 3500, 4700, 5900, 7200, 8100, 9600, 10900],
  "hides": {"1": 3500, "6": 9600},
  "endcard": 12700,
  "rowKinds": ["send", "typ", "recv", "recv", "recv", "send", "typ", "recv", "send"]
}
  • shows[i] = ms when row i appears (rows in DOM order). hides = when typing rows disappear (usually the moment the next bubble appears).
  • These default timings work for the canonical 9-row structure; scale them if the conversation is longer/shorter. endcard ≈ last message + 1800ms; durationMsendcard + 2300ms.
  • rowKinds drives the audio: send = outgoing swoosh, recv = incoming ding (bubbles and link cards), typ = soft pop, none = silent.

Then:

node scripts/render.js config.json          # deterministic frame stepping (audio-sync exact)
python3 scripts/make_audio.py config.json   # writes .wav
ffmpeg -y -framerate 30 -i /%04d.png -i .wav \
  -c:v libx264 -crf 20 -pix_fmt yuv420p -c:a aac -b:a 128k \
  -shortest -movflags +faststart output.mp4

Why frame-stepping instead of screen recording: the renderer pauses each CSS animation at an exact negative delay per frame, so the video timeline matches the config exactly and the audio lands sample-accurate on every bubble.

5. Verify before delivering

View 2–3 frames (an early bubble, the link card, the end card) or check pixel stats (accent-color and white-plate pixel counts) to confirm the theme and logo rendered. Confirm MP4 specs with ffprobe (1080-wide, ~15s, h264 + aac). Deliver both the MP4 and the HTML.

6. Captions (if asked, or offer)

Use the caption formulas in references/brand.md for YouTube (title + description + hashtags) and Instagram (hook-beat caption + lowercase hashtags).

Related skills

Turn a product image into a short ad or promo video, the highest-polish commercial outcome: a hero product still in motion. Use when the user says "make a vi...

Create, edit, and ship ad creative via the AdMakeAI API — ad images, edits, batch ad sets, ad copy, UGC video, Meta uploads/analytics. Use it when a request is about making, publishing, or reporting ads. Default to read and list calls; confirm every write or credit-spending action with the user. Trigger words: create, generate, make, design, produce, brainstorm, batch, vary, mock up, upload, publish, push, ship, draft, list, browse, find, get, fetch, look up, audit, or recap ads, ad creatives, product photos, lifestyle shots, UGC, ad copy, hooks, headlines, ad sets, campaigns, competitor ads, competitor research, Meta ads, Facebook ads, or ad analytics. Also use when the user mentions AdMakeAI, admakeai, ad images, ad generator, ad image API, or wants to know their AdMakeAI credit balance.

Turn one product photo into a vertical product video that speaks. This AI product video generator and product video maker builds ecommerce product videos, product ads, and commerce short videos from a single photo — composing a 9:16 opening frame, writing a short script from what the photo shows and the details you supply, voicing it with a selected narrator, and directing one finished clip ready to post. Use it for product launches, listing videos, shoppable social posts, storefront promos, and turning a phone snap of merchandise into a video that sells, with no shoot, no crew, and no editing.

Create a Douyin shopping video, Douyin UGC ad, or AI creator product pitch from a product photo, product details, and an on-camera direction. This AI UGC ad creator composes a vertical presenter frame with the product, shapes a conversational hook and spoken recommendation, and delivers a short Douyin product video for launches, creator-style reviews, demonstrations, unboxings, and paid social creative.

Turn a brand name, slogan, and campaign use into a set of original brand jingles, ad songs, and audio-logo stings. This brand jingle maker and AI jingle generator drafts the hook and optional sung line, then generates reviewable tracks in the lengths and styles the campaign needs for ads, store openings, podcast intros, and radio spots. Use it as an ad song generator and brand music generator for brand theme songs, commercial jingles, advertising jingles, sonic logos, audio logo stings, campaign music, radio jingles, podcast intro jingles, and event walk-on themes, with each candidate generated as original music you can use commercially.

marketing video, promo video, ad video, brand video — create a marketing / promo video from a product, brand, or brief. Use when the user wants a marketing, promotional, or advertising video for social or campaigns.

1 installs