ad-engine
Assemble modular ads from Supabase components and deploy to Facebook Ads Manager via the Marketing API. Supports preview, single/batch deploy, and status tracking. Uses ad_components table for A/B testing at scale.
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/aces1up/ad-engineAd Engine — Facebook Ads Deployment
Assemble ads from database components and deploy to Facebook. Reads from Supabase ad_components + messages tables, assembles full ad copy, uploads images, and creates Campaign → Ad Set → Ad in Facebook Ads Manager.
First-Time Setup
1. Facebook prerequisites (one-time, manual):
- Facebook Business Manager account
- Ad Account created
- Facebook Page connected
- Facebook Developer App with
ads_managementpermission - Long-lived access token (generate at developers.facebook.com)
2. Store credentials:
python3 scripts/fb_deploy.py --setup
Prompts for access token, ad account ID, and page ID. Validates against FB API and saves to ~/.config/ad-engine/fb_config.json.
Usage
Preview assembled ads (no deployment):
# Preview a single ad
python3 scripts/fb_deploy.py --preview --message-id 8555
# Preview all draft ads for a campaign
python3 scripts/fb_deploy.py --preview --campaign-id 43
# Preview as JSON
python3 scripts/fb_deploy.py --preview --campaign-id 43 --json
Deploy a single ad:
python3 scripts/fb_deploy.py --deploy \
--message-id 8556 \
--image /path/to/security-audit-ad.png \
--landing-url "https://calendly.com/your-link" \
--objective messages
Deploy all draft ads for a campaign:
python3 scripts/fb_deploy.py --deploy \
--campaign-id 43 \
--image-dir /path/to/ad-images/ \
--landing-url "https://calendly.com/your-link" \
--objective messages
Dry run (preview what would be created):
python3 scripts/fb_deploy.py --deploy \
--campaign-id 43 \
--image-dir /path/to/images/ \
--landing-url "https://calendly.com/link" \
--dry-run
Check deployed ad status + live metrics:
python3 scripts/fb_deploy.py --status --campaign-id 43
Parameters
| Parameter | Required | Description |
|---|---|---|
--preview | One of | Preview assembled ads without deploying |
--deploy | these | Deploy ads to Facebook |
--status | three | Check status of deployed ads |
--setup | Configure Facebook credentials | |
--message-id | For single | Specific message ID to preview/deploy |
--campaign-id | For batch | All draft ads in a campaign |
--image | Deploy single | Image file path |
--image-dir | Deploy batch | Directory of images (matched by angle name in filename) |
--landing-url | Deploy | Booking/landing page URL |
--objective | No | leads (default), messages, or link_clicks |
--dry-run | No | Preview deployment without creating anything |
--json | No | Output as JSON |
Image Naming Convention
When using --image-dir for batch deploy, name images by angle:
security-audit-ad.png → matches angle "security_audit"
setup-is-hell-ad.png → matches angle "setup_is_hell"
dm-trigger-checklist.png → matches angle "dm_trigger"
anti-wrapper-graveyard.png → matches angle "anti_wrapper"
How It Works
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-aces1up-ad-engine": {
"enabled": true,
"auto_update": true
}
}
}Related Skills
Phantom Browser
Undetectable browser automation for AI agents. 31/31 stealth tests passed. WindMouse physics, per-profile fingerprinting, residential IP routing. Runs headless on a $6/mo VPS.
redditrank
Find Reddit threads ranking on Google Page 1 for your keywords. AI drafts contextual replies that naturally mention your product. Copy, paste, post. Free organic traffic.
Comment Forge
Corpus-grounded Reddit comment engine. Generate natural replies that pass AI detection, powered by real comment corpus and 7-dimension QA scoring.
apify-keys
Rotating Apify API key manager. Returns the least-recently-used active Apify key from the ColdCore database. Use before any Apify API call to get a fresh key with available credits.