Learn-skills.dev adkit

install
source · Clone the upstream repo
git clone https://github.com/NeverSight/learn-skills.dev
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/NeverSight/learn-skills.dev "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/skills-md/adkit-so/ads-skills/adkit" ~/.claude/skills/neversight-learn-skills-dev-adkit && rm -rf "$T"
manifest: data/skills-md/adkit-so/ads-skills/adkit/SKILL.md
source content

AdKit CLI

Agent interface for managing ads via the terminal. Draft-first — nothing publishes until explicitly confirmed.

First: check setup

<!-- ad-process.md is looked up by filename, not path. Users can store it anywhere in their project. Do not rename this file. -->
  1. Search the project for a file named
    ad-process.md
    . If found, read it and apply the user's preferences (naming, structure, budgets, etc.) to all commands. If the user shares preferences but no file exists, offer to create one. Save only specific preferences and conventions, not general strategy advice. Use
    ## General
    for cross-platform preferences,
    ## Meta
    /
    ## Google
    etc. for platform-specific ones.
  2. Run
    adkit status
    . If it works, proceed to the command routing table.
  3. If
    adkit
    is not found:
    npm i -g adkit-cli
    , then
    adkit setup manage
    .
  4. If not authenticated:
    adkit setup manage
    opens a browser for login and Meta Ads account connection in one step.

Command routing

TaskCommand
Authenticate / connect
adkit setup
Check accounts and status
adkit status
Switch project
adkit projects use <id>
Create a campaign
adkit manage meta campaigns create
Create an ad set
adkit manage meta adsets create
Create an ad (media + copy)
adkit manage meta ads create
Upload image or video
adkit manage meta media upload
Find targeting interests
adkit manage meta interests search
Review drafts before publish
adkit manage drafts list
Publish a draft
adkit manage drafts publish <id>
List campaigns/adsets/ads
adkit manage meta {entity} list

Core commands

Campaign

adkit manage meta campaigns create --name "..." --objective sales --budget-daily 50
FlagRequiredValues
--objective
yes
sales
,
leads
,
engagement
,
awareness
,
app_promotion
. Use
sales
or
leads
in 99% of cases.
--budget-daily
yes*Amount in account currency. *Or
--budget-total
for lifetime
--name
noDefaults to
campaign YYYY-MM-DD
--bid-strategy
no
lowest_cost
(default),
cost_cap
,
bid_cap
,
min_roas
--abo
noUse ad set budgets instead of campaign-level CBO

Ad set

adkit manage meta adsets create --campaign <id> --optimization conversions --event-type purchase --countries US,CA
FlagRequiredValues
--campaign
yesParent campaign ID
--optimization
yes
conversions
,
lead_generation
,
link_clicks
,
impressions
,
reach
--event-type
no*
purchase
,
lead
,
subscribe
,
start_trial
,
add_to_cart
,
contact
--countries
noComma-separated ISO codes (e.g.,
US,CA,GB
)
--interest
noInterest ID (repeatable). Use
interests search
to find IDs
--pixel
noPixel ID. Falls back to account default
--budget-daily
noOnly with
--abo
on campaign

*Required when

--optimization
is
conversions
.

Ad

adkit manage meta ads create --adset <id> --media ./image.jpg --primary-text "..." --headline "..." --cta learn_more --url "https://..."
FlagRequiredValues
--adset
yesAd set ID
--media
yesFile path, URL, or media ID. Repeatable for Flexible Creatives
--primary-text
yesAd body. Repeatable for Flexible Creatives
--headline
yesHeadline. Repeatable for Flexible Creatives
--cta
no
learn_more
,
shop_now
,
sign_up
,
download
,
book_now
,
apply_now
--url
noLanding page URL
--page
noFacebook Page ID. Auto-resolved from defaults

Flexible Creatives: pass multiple

--media
,
--primary-text
,
--headline
— Meta tests combinations automatically.

Interests search

adkit manage meta interests search "digital marketing" "social media"

Multiple queries in one call. Returns IDs for

--interest
flag on ad set creation.

Run

adkit <command> --help full
for all flags and JSON-only fields.

Draft-first workflow

All create/update commands produce a draft by default:

  1. Create campaign → draft ID
  2. Create ad set → draft ID
  3. Create ad → draft ID
  4. Review:
    adkit manage drafts list
  5. Publish each:
    adkit manage drafts publish <id>

Add

--publish
to any command to skip drafts and publish immediately.

Key behaviors

  • AdKit API, not Meta API. All commands go through AdKit's simplified API. Flags like
    --objective
    ,
    --budget-daily
    ,
    --event-type
    are AdKit's abstraction — friendlier than Meta's raw fields.
  • Smart defaults. AdKit applies defaults settings (matching Business Manager defaults + improvements like scheduling, etc). Most campaigns only need a few flags — omitted settings are handled automatically. If user needs something specific, they can override the defaults.
  • --platform-overrides <json>
    : escape hatch for raw Meta API fields not covered by AdKit flags. Merged directly onto the platform payload. Use when a specific Meta option isn't available as a named flag.
  • --json
    : auto-enabled in non-TTY. Force with
    --json
    flag.
  • --data <json>
    : bypasses named flags — pass the full AdKit API request body as JSON.
  • Account resolution: auto-resolved if only one Meta account connected. Otherwise use
    --account <id>
    .
  • Media handling:
    --media
    auto-uploads files and detects image vs video from extension.

With meta-ads

The meta-ads skill provides Meta advertising strategy: campaign structure, budget management, creative best practices, audience targeting, and performance analysis. Use it to decide what to build, then use this CLI skill to execute it.