| name | create-product-ads-with-actionway |
| description | Create a short, finished product or app advertisement from a product image or app screenshot using Actionway for video, voiceover, and optional music, then compose a platform-ready MP4 locally. Use for e-commerce ads, app promos, launch clips, TikTok/Reels/Shorts ads, or creator workflows that need transparent quotes before paid media generation. Do not use for a simple image animation with no ad message or CTA. |
Create Product Ads With Actionway
Turn one product image or app screenshot into a concise advertisement with a hook, benefit, voiceover, music, readable overlays, and CTA. Use Actionway for generative media and the bundled composer for deterministic branding and final delivery.
Inputs
Collect or infer the following:
- product name and one truthful primary benefit;
- product image or app screenshot;
- CTA;
- destination platform;
- desired tone;
- maximum budget, when supplied.
Default to one 5-second, 9:16, 720p ad for Reels, TikTok, or Shorts. Ask only when a missing fact would materially change the result.
Workflow
1. Prepare Actionway
Use actionway --agent-host=codex for every Actionway command.
- Run
actionway --agent-host=codex update --check once per session.
- Run
actionway --agent-host=codex whoami.
- If authentication is missing, run
actionway --agent-host=codex init and ask the user only to approve access in the browser.
- Treat the current CLI, capability registry, inspected schemas, and server quotes as authoritative.
2. Build the ad plan
Read references/ad-playbook.md before drafting the creative.
Produce a compact plan containing:
- hook;
- one benefit;
- voiceover script;
- video prompt;
- music direction;
- exact headline and CTA overlays.
Keep claims supported by the user's product information. For a 5-second ad, keep the voiceover around 10-14 words and use no more than two overlays.
3. Resolve the source image
Inspect the source before writing the video prompt.
- Prefer a direct HTTPS PNG, JPEG, or WebP URL that the user controls or is authorized to use.
- If the image is local only, do not invent a URL or upload it without approval. Ask the user for a direct HTTPS URL or permission to publish it through a destination they choose.
- Preserve product shape, UI, logos, colors, and composition.
- Do not ask a video model to regenerate exact interface text. Add exact copy later with the local composer.
4. Discover the current capabilities
Discover and inspect each capability at runtime rather than hardcoding models or prices.
For the product motion layer:
actionway --agent-host=codex tools search "animate one product image into a short vertical advertisement while preserving the product" --limit 3
actionway --agent-host=codex tools inspect <video_tool_ref>
For voiceover:
actionway --agent-host=codex tools search "convert a short advertising script to speech" --limit 3
actionway --agent-host=codex tools inspect <tts_tool_ref>
For optional music:
actionway --agent-host=codex tools search "generate instrumental background music for a short product advertisement" --limit 3
actionway --agent-host=codex tools inspect <music_tool_ref>
Choose the least expensive suitable variant for a first draft unless the user prioritizes a different quality, model, or provider.
5. Quote before spending
Prepare schema-valid calls one at a time with stable idempotency keys. When Actionway returns confirmation_required:
- show the capability, variant, effect, and exact USD quote;
- show the creative input that will be sent;
- ask for explicit confirmation;
- resume only that prepared
call_ref after approval.
Never enable Auto Pay, silently retry, or treat approval for one component as approval for a changed call. If the user rejects music, continue with video and voiceover only.
6. Run and download
- When a call returns
accepted, immediately wait on its returned job_ref.
- Reuse the same job reference if waiting is interrupted.
- Download terminal assets into the task's
outputs/ directory with descriptive names.
- Do not resubmit a generation merely because a job is pending or a download failed.
7. Compose the final ad locally
Use the bundled scripts/compose_product_ad.py helper when Python 3 with Pillow and ffmpeg are available. This keeps the headline, CTA, logo, and UI copy crisp instead of asking a generative model to reproduce them.
Example:
python3 <this-skill-directory>/scripts/compose_product_ad.py \
--video outputs/product-motion.mp4 \
--voice outputs/product-voiceover.mp3 \
--music outputs/product-music.mp3 \
--headline "Your product benefit" \
--cta "Try it today" \
--duration 5 \
--output outputs/product-ad-vertical.mp4
If Pillow or ffmpeg is unavailable, do not install system software without approval. Deliver the component assets and explain the remaining composition step.
8. Deliver proof and receipt
Return:
- the downloadable final MP4;
- the hook, script, and CTA used;
- a compact list of Actionway capabilities and variants used;
- each server-reported charge and the relevant job references;
- one specific improvement for a possible second version.
Do not spend on a second version without a new quote and confirmation.
Guardrails
- Use only product assets and music-generation inputs the user is authorized to submit.
- Do not fabricate results, testimonials, integrations, prices, or endorsements.
- Do not create deceptive ads or imply that a real person endorses a product without permission.
- Warn before sending confidential product imagery to an external provider.
- Preserve server-provided provider, usage, and licensing information rather than inventing rights claims.
Example requests
- "Turn this app screenshot into a five-second vertical launch ad."
- "Create a product ad for this perfume with a luxury voiceover and CTA."
- "Make a TikTok-ready ad for my open-source app and show every Actionway cost before spending."