Install
openclaw skills install lanbow-claw-skillEnd-to-end Meta (Facebook/Instagram) advertising system orchestrator covering the full ad lifecycle: strategy research, creative generation, campaign deliver...
openclaw skills install lanbow-claw-skillEnd-to-end Meta Ads lifecycle management across 4 features: Strategy → Creative → Delivery → Review, forming a continuous optimization loop. Built by Lanbow — see the detailed guide for more information.
| # | Feature | Skill | What It Does | Key Dependency |
|---|---|---|---|---|
| 1 | Strategy Research | ads-strategy-researcher | Market analysis, competitive intelligence, messaging strategy | WebSearch / WebFetch |
| 2 | Creative Generation | creative_gen | AI-generated ad images from strategy inputs | User's Gemini API Key |
| 3 | Ad Delivery | lanbow-ads | Campaign creation and management via Meta Ads CLI | User's Meta Access Token |
| 4 | Post-Campaign Review | post-campaign-review | Performance diagnosis and optimization plan | Campaign delivery data |
Starting a new campaign from scratch? → Start at Feature 1 (Strategy) → Feature 2 (Creative) → Feature 3 (Delivery)
Have strategy, need creatives? → Start at Feature 2 (Creative) → Feature 3 (Delivery)
Have creatives, need to launch? → Start at Feature 3 (Delivery)
Campaign already running, need to optimize? → Start at Feature 4 (Review) → loop back to Features 1-3 as needed
Quick ad hoc task? (list campaigns, check performance, upload image, etc.) → Use Feature 3 (Delivery / lanbow-ads CLI) directly
┌─────────────────────────────────────────────────────────┐
│ │
│ Feature 1: Strategy Research │
│ ┌──────────────────────────────────┐ │
│ │ Input: URL, objectives, audience │ │
│ │ Output: insights report │ │
│ │ • key message │ │
│ │ • key look │ │
│ │ • ad angles + CTAs │ │
│ │ • audience segments │ │
│ └──────────┬───────────────────────┘ │
│ │ │
│ ▼ │
│ Feature 2: Creative Generation │
│ ┌──────────────────────────────────┐ │
│ │ Input: key message, key look, │ │
│ │ product info, audiences │ │
│ │ Output: ad images + prompts │ │
│ └──────────┬───────────────────────┘ │
│ │ │
│ ▼ │
│ Feature 3: Ad Delivery │
│ ┌──────────────────────────────────┐ │
│ │ Input: creatives, targeting, │ │
│ │ budget, account │ │
│ │ Output: live campaign │ │
│ └──────────┬───────────────────────┘ │
│ │ │
│ ▼ │
│ Feature 4: Post-Campaign Review │
│ ┌──────────────────────────────────┐ │
│ │ Input: performance data │ │
│ │ Output: diagnosis + next actions │──── loop back ────┘
│ └──────────────────────────────────┘
Skill: ads-strategy-researcher | Details: strategy-research.md
Perform pre-campaign market analysis using WebSearch + WebFetch. Produces a structured strategy report.
Trigger phrases: "ads strategy", "marketing plan", "competitor research", "market research"
Inputs: product URL, business objectives, campaign context, audience info, competitors
Key outputs that feed Feature 2:
| Output | Used By |
|---|---|
| Key Message (primary promise + reasons) | product_info / requirements in creative gen |
| Key Look (visual cues, composition) | requirements in creative gen |
| Ad Angles (hooks, CTAs) | input_cta in creative gen |
| Audience Segments | audience_descriptions in creative gen |
Strategy types: Omni-Channel (Amazon + TikTok + Meta) or Meta-Only
Skill: creative_gen | Details: creative-generation.md
Generate ad creative images via 2-step Gemini pipeline: proposals (gemini-2.5-flash) → images (gemini-3.1-flash-image-preview).
Trigger phrases: "generate ad", "create ad image", "ad creative", "generate creatives"
Requires: GEMINI_API_KEY (optional env var — only needed when using this feature; not required for Features 1, 3, or 4)
Inputs: product info, audience descriptions, requirements, CTA, aspect ratio, optional product image
Outputs: creative-proposals.json + ad-*.png images + reusable prompt templates
Connection to Feature 3: Upload generated images via lanbow-ads images upload, then reference image_hash in lanbow-ads creatives create.
Skill: lanbow-ads | Details: ad-delivery.md
Execute campaign setup and management via the lanbow-ads CLI.
Trigger phrases: "create campaign", "launch ads", "upload image", "show campaigns", "投放广告"
Requires: Meta Access Token, App ID, Ad Account ID (declared in requires.env). App Secret is optional — only needed for exchanging short-lived tokens to long-lived tokens via lanbow-ads auth exchange.
Credential setup (try in order):
Environment variables or platform secret fields (best): If META_ACCESS_TOKEN, META_APP_ID, and META_AD_ACCOUNT_ID are already set as environment variables (or via your platform's secret/credential fields), configure the CLI automatically:
lanbow-ads config set --app-id "$META_APP_ID"
lanbow-ads auth set-token "$META_ACCESS_TOKEN"
lanbow-ads config set --account "$META_AD_ACCOUNT_ID"
# Only if META_APP_SECRET is set (optional — needed only for token exchange):
[ -n "$META_APP_SECRET" ] && lanbow-ads config set --app-secret "$META_APP_SECRET"
Ask the user to provide credentials directly (most common): If env vars are not set, tell the user exactly how to get each credential from Meta's web interface. Recommend the user use their platform's secret fields or environment variables rather than pasting credentials directly into chat. If direct input is the only option, only request the minimum credentials needed for the current task:
ads_management, ads_read, business_management → click "Submit" → copy the tokenact_XXXXXXXXX in the URL or account dropdownThen run the CLI commands on their behalf. For a full walkthrough, see meta-account-setup.md.
lanbow-ads auth login (last resort): This opens a browser on the agent's machine for OAuth. It only works when you and the user are on the same machine. Do NOT attempt this by default. If the user can't open the auth URL or auth login fails, fall back to method 2 immediately — ask for credentials directly. Do NOT retry or keep sending OAuth URLs.
Credential scope limits: The agent must ONLY use provided credentials for lanbow-ads CLI commands. The agent must NOT log, echo, or store credentials in any file other than via the lanbow-ads config set and lanbow-ads auth set-token commands. The agent must NOT transmit credentials to any endpoint other than the Meta Marketing API (via the CLI).
Campaign creation sequence:
lanbow-ads campaigns create — create campaign (PAUSED)lanbow-ads images upload / lanbow-ads videos upload — upload medialanbow-ads creatives create — create creative with medialanbow-ads adsets create — create ad set with targeting + budgetlanbow-ads ads create — create ad linking ad set + creativelanbow-ads campaigns get / lanbow-ads ads getKey rules:
--json flag when output feeds into another step--promoted-object with pixel_idSkill: post-campaign-review | Details: post-campaign-review.md
Analyze delivery data, diagnose performance issues, generate optimization recommendations.
Trigger phrases: "review campaign", "campaign diagnosis", "optimize ads", "复盘", "投后分析"
Data collection: Fetch via lanbow-ads insights get --json at multiple dimensions (campaign, ad set, ad, audience breakdowns, daily trends).
Diagnostic framework:
Output: Prioritized optimization plan (P0 immediate → P1 creative → P2 targeting → P3 strategic)
Feedback loop: Review findings feed back into:
Strategy Report ──→ key message, key look, audiences ──→ Creative Gen
Creative Gen ──→ ad images, proposals ──→ Ad Delivery (upload + create)
Ad Delivery ──→ live campaign + performance data ──→ Post-Campaign Review
Review ──→ optimization actions ──→ Ad Delivery (adjust)
Review ──→ creative refresh needs ──→ Creative Gen (new round)
Review ──→ strategy refinement needs ──→ Strategy Research (re-analyze)
Required (declared in metadata.openclaw.requires.env — needed for ad delivery):
| Env Var | Sensitivity | Used By | Storage Location |
|---|---|---|---|
META_ACCESS_TOKEN | High — grants ad account access | Feature 3 (Ad Delivery) | lanbow-ads CLI config dir (~/.config/lanbow-ads/) |
META_APP_ID | Medium — app identifier | Feature 3 (Ad Delivery) | lanbow-ads CLI config dir |
META_AD_ACCOUNT_ID | Low — account identifier | Feature 3 (Ad Delivery) | lanbow-ads CLI config dir |
Optional (only request when the specific feature is needed):
| Env Var | Sensitivity | When Needed | Storage Location |
|---|---|---|---|
META_APP_SECRET | High — can generate long-lived tokens | Only for lanbow-ads auth exchange (short→long-lived token swap) | lanbow-ads CLI config dir |
GEMINI_API_KEY | High — API access | Only for Feature 2 (Creative Generation via Gemini) | User's environment only; never persisted by this skill |
Do NOT request optional credentials unless the user's task specifically requires them. For example, listing campaigns or checking insights needs only META_ACCESS_TOKEN, META_APP_ID, and META_AD_ACCOUNT_ID.
Prefer environment variables or your platform's secret/credential fields over pasting credentials into chat. If the user must provide credentials in conversation, only request the minimum set needed for the current task. Never ask for META_APP_SECRET or GEMINI_API_KEY unless the user explicitly needs token exchange or creative generation.
| Dependency | Source | Purpose |
|---|---|---|
lanbow-ads CLI | Install via npm i -g lanbow-ads (npm registry) | Campaign management and performance data retrieval via Meta Marketing API |
| WebSearch / WebFetch | Built-in agent tools | Market research and competitive intelligence gathering |
The agent is restricted to the following credential operations only:
lanbow-ads config set --app-id / --app-secret / --account — configure CLIlanbow-ads auth set-token — set access tokenlanbow-ads auth exchange — exchange short-lived token for long-lived tokenlanbow-ads auth status — verify token validityThe agent must NOT:
lanbow-ads CLI commandslanbow-ads CLI), API calls to Google Gemini (for image generation), web searches (for strategy research)lanbow-ads CLI and stored in its config directory (~/.config/lanbow-ads/). This skill itself does not persist or transmit credentials beyond passing them to the CLI.| Token Type | Lifetime | When to Use |
|---|---|---|
| User Access Token (Graph API Explorer) | ~1-2 hours | Quick tests, one-off campaigns |
Long-lived User Token (via auth exchange) | ~60 days | Short-term automation |
| System User Token | Never expires | Production/agency use only |
After use, always clean up stored credentials:
lanbow-ads auth logout # Remove stored access token
lanbow-ads config unset --app-secret # Remove stored app secret
lanbow-ads config list # Verify no secrets remain
GEMINI_API_KEY is only needed for creative generation, META_APP_SECRET is only needed for token exchange. Do not provide them if your task doesn't require those featuresads_management and ads_read unless additional permissions are explicitly neededlanbow-ads provenance — install from the official npm registry and verify the package before useAll sub-skill instructions and reference materials are self-contained in references/.