Wszystkie wpisy

7 lipca 2026

Meta Ads CLI — jak agent w Claude Code prowadzi kampanie bez klepania Marketing API

Zarządzanie kampaniami Meta z poziomu kodu zawsze wyglądało tak samo: autoryzacja, paginacja, formatowanie odpowiedzi, obsługa błędów. Kilkaset linijek boilerplate przy każdym projekcie, zanim dotkniesz logiki kampanii. W kwietniu 2026 Meta wydała Meta Ads CLI — narzędzie wiersza poleceń, które ten boilerplate zdejmuje. I co dla mnie ważniejsze: jest wprost zaprojektowane pod agentów AI. To zmienia, jak agent w Claude Code może dotykać budżetów reklamowych.

Meta Ads CLI — czym jest i co robi

To interfejs wiersza poleceń nad Marketing API. Zamiast pisać własny kod odpytujący API, wydajesz komendy w strukturze noun-verb:

meta ads campaign create --name "Summer Sale" --objective OUTCOME_SALES --daily-budget 5000
meta ads campaign list
meta ads insights get --date-preset last_7d --fields=impressions,conversions

Jedna pułapka od razu: --daily-budget liczy się w centach5000 to $50, nie $5000. Łatwo się przejechać, zwłaszcza gdy komendę składa agent.

CLI pokrywa pełny cykl życia zasobów Meta Ads: kampanie, ad sety, ads, kreacje (list/create/get/update/delete), insighty z zakresami dat (--date-preset) i breakdownami (--breakdown age --breakdown gender — flaga powtarzalna), katalogi produktowe, datasety (piksele) oraz konta i strony. Autoryzacja idzie przez system user access token. Wymaga Pythona 3.12+ (pip albo uv). Dostępne od 29 kwietnia 2026.

Uwaga na nazwę: oficjalne narzędzie to subkomenda meta ads (część binarki meta). Na pip i GitHubie krąży kilka nieoficjalnych klonów o nazwie meta-ads-cli — to nie to samo, mają inne flagi i inny zakres. Instalując, upewnij się, że bierzesz to od Meta.

Jeden szczegół, który przy zwykłym użyciu jest wygodą, a przy agencie staje się bezpiecznikiem: każdy tworzony zasób domyślnie ląduje w statusie PAUSED. Do tego flagi pod automatyzację — --no-input (zero interaktywnych pytań), --force (pominięcie potwierdzeń), formaty wyjścia table/json/plain i spójne exit code’y 0–5. To nie są dodatki. To jest dokładnie ten zestaw, którego potrzebuje coś, co wywołuje komendy bez człowieka przy klawiaturze.

Dlaczego Meta nazywa to „AI connector”

Bo tym jest. Meta umieściła CLI w sekcji „Ads AI Connectors” i wskazuje agentów AI jako jednego z głównych odbiorców — obok deweloperów i zespołów ops.

Sedno jest takie. Agent, który miał zarządzać Meta Ads, do tej pory musiał generować surowe wywołania Marketing API: budować requesty, obsługiwać paginację, retry, parsować JSON, łapać błędy. Kruche — bo LLM pisze taki kod „prawie dobrze”, a „prawie” w wywołaniu, które wydaje pieniądze, to za mało. CLI odwraca ten układ. Daje agentowi stabilną powierzchnię: jedna komenda to jedna operacja, wyjście jest deterministyczne (--format json), a błąd to konkretny exit code, nie stack trace do interpretacji. Agent nie musi rozumieć API. Musi umieć złożyć poprawną komendę — a to modele robią dobrze.

To ten sam wzorzec, co gh, aws czy stripe. Dobrze zaprojektowane CLI stało się de facto interfejsem dla agentów, bo jest jednocześnie czytelne dla człowieka i przewidywalne dla maszyny.

Jak wpiąć Ads CLI w Claude Code

Claude Code prowadzi każde CLI przez narzędzie Bash — Ads CLI nie jest wyjątkiem. Układ, który sam bym postawił:

  1. Instalacja i token. uv/pip, token do .env (CLI czyta zmienne środowiskowe — klucz nie ląduje w komendzie ani w historii powłoki).
  2. Allowlista na odczyt. Operacje list, get, insights get wpuść bez promptu — to czysty odczyt, agent może swobodnie ciągnąć dane i analizować.
  3. Bramka na zapis. create, update, delete i aktywacja kampanii — zawsze za zgodą człowieka, nigdy automatycznie.
  4. Pętla robocza. Agent pobiera insighty (meta ads insights get --format json), analizuje, proponuje zmianę i składa komendę. Ty zatwierdzasz aktywację albo zmianę budżetu.

Tu domyślny PAUSED spina się z guardrailami idealnie: agent może zbudować całą strukturę kampanii, ale dopóki ktoś świadomie nie zmieni statusu na aktywny, nie wydaje ani grosza. Aktywacja to osobny, świadomy ruch człowieka — nie efekt uboczny tworzenia. --force na budżecie też zostaje po Twojej stronie.

Gdzie to realnie pomaga — i gdzie postawić bramkę

Pomaga tam, gdzie robota jest rutynowa i powtarzalna:

  • Scaffolding kampanii z briefu — agent generuje strukturę campaign → ad set → ad w PAUSED, Ty robisz review gotowego szkieletu zamiast klikać go od zera.
  • Operacje masowe — „wypauzuj wszystko z ROAS poniżej progu”: agent ciągnie insighty (--fields z odpowiednimi metrykami), składa listę, proponuje komendy pauzujące. Decyzję zatwierdzasz zbiorczo.
  • Zaciąganie insightów do analizy--format json prosto do dalszego pipeline’u (BigQuery, notebook), bez ręcznego eksportu z Ads Managera.

Gdzie NIE puszczać agenta luzem:

  • --force na budżetach i aktywacji bez człowieka. To realne pieniądze, nie sandbox.
  • System user token z pełnymi uprawnieniami. Least privilege — token o zakresie dopasowanym do tego, co agent faktycznie ma robić.

CLI kontra surowe API kontra MCP

Do zarządzania kampaniami oficjalną ścieżką agentową jest CLI — i tu warto rozwiać nieporozumienie. Meta ma co prawda oficjalny MCP (Meta Devtools MCP), ale obsługuje on aplikacje, webhooki i compliance, nie reklamy. Ads-owe serwery MCP istnieją, lecz tylko jako nieoficjalne, społecznościowe. Realny wybór dla kampanii to więc surowe API albo CLI.

PodejścieZaletaWada
Surowe Marketing API (SDK/HTTP)pełna kontrola, zero pośrednikówboilerplate, kruche gdy kod pisze agent
Meta Ads CLIstabilna powierzchnia, każdy ruch = auditowalna komenda w loguPython 3.12+, zależność od cyklu wydawniczego Meta
MCP (dla Ads tylko nieoficjalny)natywna integracja z agentem, bez shellowaniabrak oficjalnego serwera Meta do kampanii — polegasz na projekcie społeczności; mniej auditowalne

CLI to pragmatyczny środek. Bardziej odporne niż surowe API pisane przez model, a przy tym bardziej auditowalne niż MCP: każdy ruch agenta to komenda, którą widzisz w logu i możesz powtórzyć ręcznie. Ten sam kompromis rozbierałem przy agentowym audycie GTM przez MCP — tam agent sterował narzędziem przez MCP, tu robi to przez CLI. Dla porównania podejścia „agent plus zewnętrzne narzędzie danych” warto zerknąć też na agenta na BigQuery przez MCP toolbox.

Co z tego wynika

Ads CLI to nie tylko wygoda dla deweloperów. To sygnał trendu: dobrze zaprojektowane CLI staje się interfejsem agenta i wypiera bespoke integracje z API. Meta zbudowała je świadomie pod maszynę po drugiej stronie — inaczej domyślny PAUSED i tryb --no-input nie byłyby priorytetem.

Dla e-commerce wniosek jest konkretny: agent w Claude Code może realnie zdjąć rutynę kampanijną — scaffolding, masowe pauzy, zaciąganie insightów. Pod jednym warunkiem. Pytanie nie brzmi „czy wpuścić agenta do Meta Ads”, tylko „gdzie postawić bramkę człowieka”. Odczyt i budowanie szkieletu — agent. Wydatek i aktywacja — Ty.

Źródło: Meta for Developers — Ads CLI Overview

Powiązane wpisy