moda-social-ads
Static ads: platform-native single ads and multi-size display banner sets (IAB) — one message across sizes, exported together.
How do I install this agent skill?
npx skills add https://github.com/moda-design/moda --skill moda-social-adsIs this agent skill safe to install?
- Gen Agent Trust Hubpass
The skill facilitates the creation and export of digital advertisements using the Moda platform. It uses sandboxed JavaScript for design manipulations and properly delimits user-provided text in CLI commands. No malicious patterns or security risks were identified.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
What does this agent skill do?
moda-social-ads
<!-- moda:banner -->PREREQUISITE — load moda-core once per session (step-0, write contract,
free/metered map). Already loaded? Skip ahead. If you cannot load it, the
non-negotiables: run moda doctor --json before anything; moda brand list
before creating; writes that pin a revision use your last read's — on
stale_revision, re-read and retry once (it heals); send the canvas link the
moment it exists; stuck or failed? moda ask "<question>" — free and fast,
never guess.
Sizes and defaults
The IAB core set (--category web-ads), plus any size the user names:
| Size | Role | Notes |
|---|---|---|
| 300×250 | medium rectangle | the workhorse — design the MASTER here |
| 728×90 | leaderboard | hostile: one line, logo, CTA — nothing else |
| 160×600 | skyscraper | vertical stack, CTA at the bottom |
| 300×600 | half page | the roomy one; the master usually scales here first |
| 320×50 | mobile banner | hostile: type only, 4–6px off every edge |
| 970×250 | billboard | the only size with room for imagery |
Platform-native single ads (--category web-ads or social): IG story ad
1080×1920 (bottom reserved from y 1400 for CTA chrome), Facebook feed ad
1200×628, IG feed ad 1080×1080 or 1080×1350.
Craft, in one pass: the Rule of One — one audience, one promise, one ask. Hierarchy is hook → brand → CTA, with brand and CTA both visible; the CTA is button-shaped and the highest-contrast element ("See the demo", never "Learn more"). Keep type and CTA 8–10px off every edge — networks add a border at serve time. Photography rarely survives these sizes: prefer solid colour, gradients, shapes, type, and generated patterns.
Recipe — the size set (master first)
moda canvas create --name "[Campaign] — ads" --intent "[the one promise]" --size 300x250 --category web-ads --brand [KIT]— send the link immediately.- Design and APPROVE the master on page 1:
moda canvas markup [CANVAS_REF] --file - --page [PAGE_ID] --screenshot PATH, then at most one repair write. Do not adapt anything until the master is right. moda canvas add-pages [CANVAS_REF] --count 1 --size 728x90— one page per size, repeated for each size in the set.- Re-COMPOSE each size (never squash): one markup apply per page, serial on the one canvas — the same message, re-laid for the shape. Check the two hostile sizes (728×90, 320×50) first; they break layouts before the others do.
moda canvas screenshot [CANVAS_REF]in ≤3-page batches; judge the set for one voice, one CTA, one brand presence. ONE repair round, then export.moda export [CANVAS_REF] --format png --pixel-ratio 2 -o [campaign]-ads.zip— multi-page png arrives as a zip: the set ships together, one file for the trafficker.
Recipe — one platform-native ad
moda canvas create --name "[Campaign] — [placement]" --intent "[the one promise]" --size [WxH] --category web-ads --brand [KIT]— link immediately.- Write the idea in one sentence first: "For [audience], [brand] is the [category] that [single claim]." Kill every secondary message.
- Author in ONE apply; keep the CTA inside the placement's chrome-free zone.
moda canvas screenshot [CANVAS_REF]— squint test: blurred, does it still show what it is for and where the eye lands? Fix what fails in at most ONE repair write, captured the same way, then ship.moda export [CANVAS_REF] --format png --pixel-ratio 2 -o [campaign]-[size].png.
Examples
- "banner ads in the standard sizes" → size-set recipe, IAB core, one zip.
- "an Instagram ad for the spring sale" → platform-native recipe at 1080×1350.
- "just a 728×90 and a 300×250" → size-set recipe with those two pages only.
- "an animated banner ad" → not this skill: load moda-video (motion wins).
Errors
Any typed error → load moda-core and read its recovery reference.
canvas_busy is likeliest here (many pages, many applies): applies to one
canvas stay SERIAL — they serialize on the server anyway, so fanning them out
buys nothing and can come back busy.
Make it recurring
A campaign refresh on a cadence → moda-automate; the approved size-set skeleton → moda-templates, so the next campaign starts at step 4.
See also: moda-social — organic posts, carousels, one-off graphics · moda-core — the contract, recovery, everything Moda can do.
References
| Doc | Load when |
|---|---|
| references/ads.md | depth: IAB set, per-size composition patterns, CTA and stopping power |
| references/markup.md | before any markup apply |
| references/export.md | zip semantics, pixel ratio, warnings |
| references/no-brand-design.md | no kit is active — inventing the identity: palette law, type, imagery, layout system |
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/moda-design/moda/moda-social-ads">View moda-social-ads on skillZs</a>