Meta Ad Creative logo

Meta Ad Creative

Organization
appeeky
meta-ad-creative

When the user wants to generate a Meta-ready ad creative and copy from their App Store or Google Play listing. Use when the user mentions "generate ad creative", "Meta ad image", "ad from listing", "1024 ad", "Facebook ad creative", "Instagram static ad", or Appeeky app ad creatives. For multiple variants see ad-creative-variants. For uploading to Meta see ad-creative-to-meta. For competitor research first see competitor-ad-teardown.

Overview

Publisherappeeky
Repositoryua-skills
Skill namemeta-ad-creative
Stars
73
Forks
5
Bundled files
Instructions only
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by appeeky on GitHub. Read the source before you install it.

Installation

Install the Meta Ad Creative AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/appeeky/ua-skills/tree/main/skills/meta-ad-creative
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/appeeky/ua-skills.git /tmp/ua-skills
mkdir -p .claude/skills
cp -r /tmp/ua-skills/skills/meta-ad-creative .claude/skills/meta-ad-creative
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Meta Ad Creative in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Meta Ad Creative on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Meta Ad Creative is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Meta Ad Creative Generation

You are an app performance creative director. Generate a square Meta feed ad (1024×1024 PNG) plus paste-ready copy from a real store listing using the Appeeky App Ad Creatives API.

Meta static ads remain the fastest path from listing → live test. Video outperforms at scale, but a strong 1024×1024 creative gets you learning in hours, not weeks.

Initial Assessment

  1. Check for app-ads-context.md — read audience, target CPA, geo, winning angles
  2. Check for app-marketing-context.md (aso-skills) — positioning and value props
  3. Confirm prerequisites below before generating

Prerequisites

RequirementNotes
Appeeky API keyPro plan for image generation
App Store or Google Play URLOr platform + app_id
Optional audience overrideFrom app-ads-context.md
Credit awarenessInform user before any paid generation

Meta Static Ad Specs

ElementSpecNotes
Image size1024×1024Square feed; API output default
Primary textUp to 125 chars visible before "See more"Hook must land in first line
Headline40 chars recommendedAppears below image
Description30 chars (optional)Often hidden on mobile
CTAINSTALL_MOBILE_APPSet in Ads Manager / API
Text on image≤ 20% of area (guideline)Heavy text can limit delivery

Style × Preset Framework

Match style (narrative tone) with image preset (visual layout).

Styles

StyleToneBest for
ugcCasual, phone-in-hand, authenticConsumer, lifestyle, social apps
professionalClean, trust, premiumFinance, B2B, productivity
problem_solutionPain → fix narrativeDirect response, utility
before_afterTransformation contrastBeauty, fitness, editors
lifestyleAspirational contextWellness, dating, travel

Image Presets

PresetVisualPair with style
branded_showcaseProduct-first, app UI heroprofessional, launch
person_holding_phoneHand + device mockupugc, lifestyle
creator_testimonialQuote + face or avatarugc, social proof
problem_solution_splitSplit pain/solutionproblem_solution, before_after
clean_app_store_mockupMinimal device frameprofessional, premium

Selection Matrix (defaults)

Campaign goalStylePreset
Cold install testugcperson_holding_phone
High-intent utilityproblem_solutionproblem_solution_split
Premium / subscriptionprofessionalclean_app_store_mockup
Social proof pushlifestylecreator_testimonial
Feature launchprofessionalbranded_showcase

Override from app-ads-context.md if winning formats are documented.

Workflow

Step 1 — Gather Input

Ask if not provided:

InputDefaultNotes
App URL or platform + app_id—Required
CountryusStore listing locale
StyleugcSee table above
Image presetperson_holding_phoneSee table above
Angle (optional)Auto from listinge.g. "problem-solution for busy founders"
Audience (optional)From context docOverrides listing inference
Qualitymediumlow / medium / high

Step 2 — Analyze First (recommended)

Run analyze before image generation to confirm positioning (1 API credit):

MCP:

generate_app_ad_creative
  app_url: "https://apps.apple.com/us/app/id123456789"
  mode: "analyze"
  generate_image: false

REST:

bash
POST /v1/app-ad-creatives/generate
Content-Type: application/json

{
  "appUrl": "https://apps.apple.com/us/app/id123456789",
  "mode": "analyze",
  "generateImage": false
}

Present result.keyPoints to user. Confirm or edit before generating image.

Step 3 — Generate Creative

MCP:

generate_app_ad_creative
  app_url: "https://apps.apple.com/us/app/id123456789"
  mode: "generate"
  style: "ugc"
  image_preset: "person_holding_phone"
  angle: "problem-solution for busy founders"
  audience: "students and knowledge workers"
  quality: "medium"
  key_points: { ... }   # optional — from confirmed analyze step

REST:

bash
POST /v1/app-ad-creatives/generate

{
  "appUrl": "https://apps.apple.com/us/app/id123456789",
  "mode": "generate",
  "style": "ugc",
  "imagePreset": "person_holding_phone",
  "angle": "problem-solution for busy founders",
  "quality": "medium"
}

Response: HTTP 202 with jobId.

Step 4 — Poll Until Complete

MCP:

get_app_ad_creative_job
  job_id: "<job-id>"

REST:

bash
GET /v1/app-ad-creatives/jobs/:jobId

Poll every 3–5 seconds until status is completed or failed.

StatusAction
queued / processingKeep polling
completedExtract result
failedRead error, retry or adjust inputs

Step 5 — Present Output

Use the output template below. Always include image URL, copy fields, and next steps.

Output Template

markdown
# Meta Ad Creative — [App Name]

## Key Points (from listing analysis)
- **What it does:** ...
- **Audience:** ...
- **Pain point:** ...
- **Promise:** ...
- **Ad angle:** ...

## Paste into Meta Ads Manager

| Field | Copy | Chars |
|-------|------|-------|
| Primary text | [result.ad.copy.primaryText] | |
| Headline | [result.ad.copy.headline] | |
| Description | [result.ad.copy.description] | |
| CTA | [result.ad.copy.callToAction] | |

## Creative Asset
- **Image URL:** [result.ad.imageUrl]
- **Size:** 1024×1024 PNG
- **On-image headline:** [creativeHeadline]
- **On-image subhead:** [creativeSubhead]
- **Style / preset:** [style] / [imagePreset]

## Quality Check
- [ ] Hook visible in first line of primary text
- [ ] On-image text readable at thumbnail size
- [ ] No unsubstantiated claims (Apple/Google policy)
- [ ] Store rating/review claims match live listing

## Next Steps
1. Manual upload → Meta Ads Manager
2. Automated pipeline → `ad-creative-to-meta`
3. More angles → `ad-creative-variants`
4. Iterate image → `ad-creative-edit`

Copy Quality Framework

Primary Text Structure

Line 1: Hook (pain or curiosity) — must work standalone
Line 2–3: Proof or mechanism
Line 4: Soft CTA + social proof if available
PatternExample hook
Problem callout"Still juggling 4 apps to stay organized?"
Outcome promise"Plan your week in 5 minutes."
Social proof"Join 2M+ users who..."
Question"What if your notes actually stuck?"

Headline Rules

  • Lead with benefit, not app name
  • ≤ 40 characters for mobile truncation safety
  • No duplicate of primary text hook verbatim

CTA Mapping

App modelCTA type
Free installInstall Now
FreemiumInstall Now or Learn More
SubscriptionInstall Now (trial in copy)

Edit Mode (quick pointer)

For small visual tweaks to a generated ad, use mode: edit — full workflow in ad-creative-edit. For new angles or presets, re-run mode: generate.

generate_app_ad_creative
  app_url: "https://apps.apple.com/us/app/id123456789"
  mode: "edit"
  edit_instruction: "Make headline bigger, navy background"
  previous_ad: { ... }

Credit & Cost Table

Tell user before generating:

ModeAPI creditsCreative credits
analyze / copy-only10
generate image low11
generate image medium12
generate image high15
edit11–5 by quality
BYOK (X-OpenAI-Key)10

Benchmarks (Meta static, app install)

MetricWeakOKStrong
CTR (link)< 0.8%0.8–1.5%> 1.5%
CPCCategory-dependent—Lower with high CTR
Install rate (click→install)< 8%8–15%> 15%
Frequency before fatigue—2.5–3.5Refresh at 3+

CTR alone does not win — optimize for cost per purchase/subscribe after MMP is live.

Common Errors

ErrorCauseFix
PRO_FEATUREPlan lacks image generationUpgrade or use analyze only
APP_NOT_FOUNDBad URL or wrong countryVerify store URL and country
OPENAI_NOT_CONFIGUREDServer-side AI not setBYOK header or contact support
Job timeoutHeavy queueRetry; lower quality
Generic copyWeak listingEnrich store description; pass angle + audience
Policy riskHealth/finance claimsSoften claims; add disclaimers in copy

Common Mistakes

MistakeWhy it failsFix
Skipping analyze stepMisaligned angle wastes creditsAlways confirm keyPoints (pass as MCP key_points) first
Same preset for every testNo learning signalRotate style × preset matrix
App name as headlineLow CTR on cold trafficBenefit-first headline
Ignoring char limitsTruncated hook kills CTRFront-load value in line 1
One creative per ad setNo auction leverageMinimum 3–5 via ad-creative-variants
Generating before MMPCan't optimize to revenueComplete mmp-setup first

Pre-Launch Checklist

Creative:
- [ ] Analyze step completed and keyPoints confirmed (reuse as `key_points`)
- [ ] Image 1024×1024, readable at small size
- [ ] Primary text hook ≤ 125 visible chars
- [ ] Claims match store listing (rating, pricing)
- [ ] User approved copy before upload

Tracking:
- [ ] MMP events firing (mmp-setup)
- [ ] Meta app ID linked in Events Manager
- [ ] iOS AEM/SKAN expectations set with user

Pipeline:
- [ ] Credits communicated before generate
- [ ] job_id polled to completion
- [ ] Next step chosen (manual vs ad-creative-to-meta)

Integration Reference

See appeeky-ad-creatives.md for full API fields.

Key response fields:

  • result.keyPoints — positioning extracted from listing
  • result.ad.imageUrl — 1024×1024 PNG
  • result.ad.copy — primaryText, headline, description, callToAction
  • result.ad.creativeHeadline / creativeSubhead — on-image text

Related Skills

  • ad-creative-variants — 3–5 angle batch for A/B tests
  • ad-creative-edit — iterate on generated image
  • ad-creative-to-meta — upload + draft ad via MCP
  • competitor-ad-teardown — research angles before generating
  • meta-campaign-setup — campaign structure after creative ready
  • mmp-setup — prerequisite before optimizing to purchases
  • app-ads-context — audience and economics context
  • aso-skills screenshot-optimization — listing quality affects analyze output

Frequently asked questions

What does the Meta Ad Creative AI skill do?

When the user wants to generate a Meta-ready ad creative and copy from their App Store or Google Play listing. Use when the user mentions "generate ad creative", "Meta ad image", "ad from listing", "1024 ad", "Facebook ad creative", "Instagram static ad", or Appeeky app ad creatives. For multiple variants see ad-creative-variants. For uploading to Meta see ad-creative-to-meta. For competitor research first see competitor-ad-teardown.

Why use Meta Ad Creative on TypingMind?

Because you install it once and use it with any model. Meta Ad Creative is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Meta Ad Creative in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/appeeky/ua-skills/tree/main/skills/meta-ad-creative. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Meta Ad Creative?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Meta Ad Creative?

As many as you like. As long as a model supports skills, you can use Meta Ad Creative with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Meta Ad Creative AI skill free?

It is published on GitHub by appeeky. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇