More articles 13 min read

Claude Code for marketing: launch and track your Meta ads

Claude Code for marketing: turn a folder of creatives into an approved Meta launch, then run the Meta, TikTok, Snapchat and Bridge report, prompt by prompt.

Mathieu Malige Founder, Apogee Published
Contents
  1. Claude Code for marketing: the typical week
  2. Launch a folder of creatives on Meta
  3. The weekly report: Meta, TikTok, Snapchat and Bridge
  4. Cut and scale: pauses and budgets
  5. Move Meta winners to TikTok and Snapchat with the Bridge
  6. What Claude Code does not do, and when to stay in Apogee
  7. Going further

Claude Code for marketing, in practice: a media buyer’s week from the terminal. A folder of creatives on your disk becomes a prepared and approved Meta launch, then come the Monday review on Meta, TikTok and Snapchat, the pauses, the budgets and the Bridge to TikTok and Snapchat. Each task below gives the exact prompt, what Claude Code sends back, what to check before you say yes and the Apogee tools it calls. The connection itself is one command: see adding Apogee’s server to Claude Code.

Claude Code launches a local folder of creatives on Meta with Apogee: files uploaded, ads proposed, recap then yes
One folder on your disk, one recap, one yes: the ads are created paused.

Claude Code for marketing: the typical week

Open Claude Code in a working folder dedicated to your ads, the one where Apogee, your Meta Ads MCP server, is added: the creatives, the reports and their history live there.

WhenTaskPlatformsWhat you approve
As soon as a batch of creatives landsLaunch the folderMeta, TikTok, SnapchatThe launch recap
Monday morningThe weekly reportMeta, TikTok, Snapchat, BridgeNothing, it only reads
Monday, after the reportCut and scaleMeta, TikTok, SnapchatEach change
Once a weekMove the Meta winnersBridge to TikTok and SnapchatThe transfer recap
Whenever you askYesterday’s numbersMeta, TikTok, SnapchatNothing, it only reads

Launch a folder of creatives on Meta

Claude Code works on your computer. It reads the folder and uploads each file to Apogee itself, with no detour through Google Drive, Dropbox or Frame.io. Apogee’s guide files this under the “Launch a folder from your computer” template, kept for tools that read a local folder: Claude Code, Cursor, VS Code, Devin Desktop and Gemini CLI.

Prompt to copy
Take every creative in [folder] on my computer and launch them in a NEW ad set in my [testing campaign] campaign of [ad account]. Reuse the settings of the latest ad set and the latest ad launched in that campaign. Create everything paused, and show me the full recap before you create anything.

Replace [folder] with the folder’s path (for example ~/Desktop/Solenne October), [testing campaign] with the campaign’s exact name and [ad account] with the account as it shows in Apogee.

Apogee prompt template Launch a folder from your computer: the prompt, its bracketed fields and the Copy prompt button
The bracketed fields are the only ones to replace: the folder, the testing campaign and the account.

What Claude Code does, tool by tool

  1. The account: list_ad_accounts, and a question about which one when you have several.
  2. The starting point: get_latest_in_campaign finds the latest ad set and ad of the campaign, to copy their settings.
  3. The files: get_upload_urls gives one signed upload URL per file (50 per call, 500 MB per file, valid 1 hour). Claude Code uploads each file with a PUT request and reads its format (9:16, 4:5, 1:1 or 16:9), then confirm_uploads checks none is empty. Nothing is on Meta yet.
  4. The interview: get_launch_questions returns the questions the app asks before every launch, in its order, with the choices read from your account and a recommended answer. Claude Code asks them one topic at a time and never answers for you.
  5. The ads: Apogee builds them from the file names and your saved naming convention. One creative in 9:16, 4:5 and 1:1 makes a single ad.
  6. The recap: prepare_launch creates nothing. It refuses while a question is open, applies only the app’s documented defaults and lists them, has Meta check the plan, then returns the recap with a plan ID valid 24 hours.
  7. The launch: after your yes, launch, then launch_status until it is done.
The seven steps of an Apogee launch from an assistant: account, interview, creatives, texts, recap, explicit yes, launch
The recap and your yes always come before the launch; any correction means a new preparation.

What to check before you say yes

In the recapWhat you check
The adsEach ad holds the formats of one creative only, with the right name
The new ad setIts name, as you want to read it in Ads Manager
What is copiedThe ad set’s audience, conversion event, bid and budget; the ad’s page, Instagram, URL, call to action and texts
Advantage+Only the enhancements you picked are on, every other one goes off
The catalogShown or not, when the account has one
The defaultsThe list of what Apogee applied without asking you
The statusPaused

The result: one new paused ad set with the copied settings, and one paused ad per creative, with the latest ad’s page, URL, call to action and texts. Any correction runs prepare_launch again and gives a new recap. The same bulk launch is done in the app with Apogee’s bulk upload.

File names that mean nothing

IMG_4512.mov or final_v3_OK(1).mp4 cannot go through a naming convention. Apogee then groups the way the app’s Group by hand button does: files whose names differ only by their format make one ad, every other file is its own ad, named after it. Two videos of the same length in different formats: Claude Code asks you before linking them.

Prompt to copy
Launch the videos in [folder] in my [campaign] campaign of [ad account]. The file names mean nothing: group the formats of each creative, show me the ads, let me rename them and put them in groups, one ad set per group. Reuse the settings of the latest ad set and ad of that campaign. Create everything paused, and show me the full recap before you create anything.

Each group becomes an ad set. An ad left out of every group gets its own ad set, or goes into “Group 1” once other ads have a group.

The same folder on TikTok or Snapchat

The files Claude Code uploaded also serve TikTok and Snapchat. Name the platform and the account:

Prompt to copy
Take every creative in [folder] on my computer and launch them on TikTok ([TikTok ad account]) in a NEW ad group of my [campaign] campaign. Reuse the settings of the latest ad group of that campaign. Create everything paused, and show me the full recap before you create anything.

Claude Code asks for what each platform requires and Meta does not provide: on TikTok, the identity for example, and an image runs as a carousel there; on Snapchat, the public profile, the pixel and the countries, in an ad squad. Each platform gets its own recap and waits for its own yes.

If the launch fails

launch_status says what the platform refused and what to do, with a link to the help page when there is one. Claude Code should explain it and wait until the cause is fixed: launching again unchanged would fail the same way, and Apogee refuses a launch when the last two on the same account failed with the same error, until you confirm the fix.

The weekly report: Meta, TikTok, Snapchat and Bridge

Prompt to copy
Give me my weekly report for [brand]: the last 7 days against the 7 days before, on Meta ([Meta ad account]), TikTok ([TikTok ad account]) and Snapchat ([Snapchat ad account]), each platform on its own. Spend, ROAS and CPA, the 3 best and the 3 worst ads, and what to scale or cut. Show me each change and wait for my yes before you make it.
PlatformWhat Claude Code readsApogee tools
MetaOverview, day by day, best and worst adsget_account_overview, get_daily_breakdown, get_top_performers
TikTok and SnapchatThe same reads, one platform at a timeget_platform_overview, get_platform_daily_breakdown, get_platform_top_performers
BridgeEach Meta ad next to its TikTok and Snapchat copiesget_bridge_stats
Your targetsTarget ROAS or CPAget_business_profile
Apogee prompt template Weekly report on every platform: Meta, TikTok and Snapchat each on its own, and the Copy prompt button
The template compares the week with the one before and includes what the Bridge's copies did.

The report comes in three blocks, one per platform, each in its own currency. Apogee never adds Meta, TikTok and Snapchat together: each platform measures with its own attribution. The first time, Claude Code asks for your targets if it does not know them; update_business_profile can remember them for the weeks after.

Claude Code has one thing chat apps lack: it writes to your working folder. Add “Also save this report to reports/[date].md” at the end of the prompt, and you keep the history week after week, to reread or compare.

Yesterday’s numbers, on demand

Prompt to copy
Give me yesterday on Meta ([Meta ad account]), TikTok ([TikTok ad account]) and Snapchat ([Snapchat ad account]), each platform on its own: spend, CPA, ROAS, and the 3 best and 3 worst ads. Tell me when a platform’s CPA is more than [threshold]% above its 7-day average. Never add the platforms together. Don’t change anything.
The morning check asked of Claude Code with Apogee: spend, ROAS and best ads on Meta, TikTok and Snapchat, each platform on its own
The check only reads: each platform keeps its own currency and attribution.

Claude Code answers when you write to it. To get this check every morning without asking, a personal agent does it: see Claude Duet as your media buyer on Meta, TikTok and Snapchat.

Cut and scale: pauses and budgets

Prompt to copy
Look at [ad account] over the last 7 days. Which ads should I scale and which should I cut, judged on [ROAS or CPA]? Show me the numbers, then propose the changes. Show me each change and wait for my yes before you make it.

To read, Claude Code relies on get_top_performers, get_ads and get_creative_fatigue_metrics, which flags a tired creative when frequency is above 3 and CTR drops by more than 15%, and on get_video_metrics for hook rate and hold rate. To act, it prepares without changing anything:

ChangeMetaTikTok and Snapchat
Pausepause_ad, pause_adsetset_platform_status
Change a budgetupdate_budget, scale_budget (+100% at most per change, €1 a day at least)set_platform_daily_budget
Run it, after your yesexecute_actionexecute_action

Each prepared action shows the before and the after, is valid 24 hours and runs only once. A daily budget above Apogee’s cap (500 in the account’s currency by default) is refused. Check the list before you say yes: you can approve a pause and refuse a budget increase in the same answer.

Scale a winner with its post ID

Prompt to copy
Scale [my 3 winning ads] of [ad account] into 2 new ad sets in [scaling campaign], with their post IDs: cost caps of [25] and [35]. Create everything paused, and show me the full recap before you create anything.

Claude Code first shows the ads it picked with their numbers, asks for the campaign, the ad set whose audience and conversion get copied, then each ad set’s name and budget. The result: two paused ad sets, each with its own cost cap, and new ads on the same posts as the winners, which keep their likes and comments. The winners themselves are not touched.

Move Meta winners to TikTok and Snapchat with the Bridge

An ad that works on Meta deserves a test on TikTok or Snapchat. Apogee’s Bridge sends it there with no export and no new upload:

Prompt to copy
Take my Meta ad [Meta ad] from [Meta ad account] and send it to TikTok: campaign [campaign], ad group [ad group]. Create everything paused, and show me the full recap before you create anything.
Prompt to copy
Take my Meta ad [Meta ad] from [Meta ad account] and send it to Snapchat: campaign [campaign], ad squad [ad squad]. Create everything paused, and show me the full recap before you create anything.

[Meta ad] takes a name, an ID or several ads: reuse the best ads from the report directly. The flow:

  1. get_top_performers when you describe the ads (“my 3 best by ROAS”), and list_bridge_transfers so it never resends an ad that already went over.
  2. prepare_bridge_transfer prepares the transfer without creating anything. If the destination still needs something it cannot take from the ads already there (a TikTok identity, a Snapchat public profile, a website, a headline), Claude Code asks you.
  3. What cannot carry over as is, such as a remapped call to action or a video that is not vertical, is listed: your yes accepts it.
  4. After your yes, bridge_transfer, then bridge_transfer_status: completed, partial with the failures, or failed.
Claude Code sends the best Meta ads to TikTok and Snapchat with Apogee's Bridge, paused, the original ads untouched
The Meta top heads to TikTok and Snapchat: the original ads stay as they are.

The ad lands paused in the chosen ad group or ad squad, with the Meta ad’s video and texts. Only videos go to TikTok and Snapchat. The next week, get_bridge_stats puts each Meta ad next to its copies, with 7-day click attribution on all three platforms, each in its own currency; get_bridge_daily_stats gives the day-by-day detail.

What Claude Code does not do, and when to stay in Apogee

  • It does not work on its own. No task comes back by itself: for a brief every morning or pauses proposed every evening, use a personal agent.
  • It runs nothing without your yes. A prepared plan or action is valid 24 hours and runs once; after that, Claude Code prepares it again.
  • It stays within Apogee’s limits: 25 launches and Bridge transfers per ad account over 24 hours, a capped daily budget, no catalog or audience to create, no total across platforms.
  • It only sees the accounts connected to Apogee. Connecting a Meta, TikTok or Snapchat account, or a Google Drive, happens in the app.

Stay in Apogee’s interface as well to save your naming convention, save a Quick Bulk Edit template for TikTok or Snapchat (Claude Code reads and uses them, but never creates or deletes one), or bind a creator’s Spark code before running their post as a Spark Ad.

What it costs, in Apogee credits:

ActionCredits
Read, prepare, follow0, within the day’s free reads (5,000 on Pro)
An ad created, by a launch or the Bridge15, counted at the end: a failed ad costs nothing
A change that runs (pause, budget…)2

The Pro plan includes 10,000 credits a month; the details are on the pricing page.

Going further

The feature Bulk upload Meta Ads From raw files to live ads, in a single pass. See the feature

Frequently asked questions

How can marketers use Claude Code?

Connected to an advertising MCP server such as Apogee, Claude Code launches the creatives of a local folder on Meta, TikTok and Snapchat, writes the weekly report, prepares pauses and budget changes, and sends Meta winners to TikTok or Snapchat with the Bridge. It prepares, you approve: nothing changes on your accounts without your yes.

Can Claude Code launch Facebook ads?

Yes, with Apogee connected and the Launch access. Claude Code reads the creatives in a folder on your computer, uploads them to Apogee, asks you the launch questions and shows the recap. The ads are created paused on Meta, and only after your yes.

Can Claude Code manage Meta Ads campaigns day to day?

Yes for reading and for prepared changes: it reads performance, spots fatigued ads, prepares pauses and budgets, and Apogee only runs them after your yes. Claude Code answers when you write to it; for tasks that come back on their own every morning, a personal agent such as Claude Duet is the better fit.

Does Claude Code add up Meta, TikTok and Snapchat?

No. Apogee returns one block per platform, each in its ad account's currency, and never adds platforms together, since their attribution is not measured the same way. The Bridge's stats put each Meta ad next to its TikTok and Snapchat copies, with 7-day click attribution everywhere.

How many files can Claude Code upload to Apogee?

50 files per call and 500 MB per file. Per day, 2,000 files and 100 GB on Apogee's Pro plan, 4,000 files and 200 GB on Growth and Scale.

Are ads launched by Claude Code live right away?

No. Apogee creates ads paused unless you ask otherwise at the recap. You turn them on when you want, in Apogee, in Ads Manager, or by asking Claude Code, which prepares the activation and waits for your yes.

Book a demo

Pick the time that suits you.

Open in a new tab

Loading the calendar…

Talk to Founder