ResourcesGuides

Hermes Agent for Meta Ads: connect Facebook and Instagram Ads in 3 steps, plus 10 prompts and 5 routines

Quick answer: Hermes Agent, Nous Research's open-source AI agent, can check and manage Meta Ads (Facebook and Instagram) once it's connected through AdPlug. Setup takes three steps: install AdPlug's Hermes plugin, add AdPlug's Meta Ads server with one command, and connect Meta Ads in AdPlug with a Facebook sign-in (no developer app or token). The scheduled checks on this page only read and report, and on a paid plan Hermes makes the changes you approve after AdPlug's preview, with anything new created paused.

I wrote the Meta skill in AdPlug's Hermes plugin the way I'd brief a paid social specialist: judge delivery by what should be running, creative by frequency and cost per result, and lead ads by what the leads become. I built AdPlug too, and I still want to see every Meta change before it happens, so that's how this setup works.

Daniel Popa, PPC expert and founder of AdPlug
Daniel PopaPPC Expert & Founder of AdPlug7 min read
Hermes Agent and Meta Ads: AdPlug's plug mascot holding Hermes Agent and Meta Ads on two ropes, with four badges: 3 steps to connect, 10 prompts, 5 routines and 16 PPC skills

Hermes Agent can check your Meta Ads every morning and change nothing until you say yes.

Hermes keeps working after you've closed the chat, so the first thing to settle is what it can do to a Meta account while you're not looking (in this setup, nothing). The scheduled checks only read and anything new starts paused. Before any change, the plugin has Hermes show AdPlug's preview, and one line in Hermes' config makes it stop for your yes.

I can do Meta ads, I just don't enjoy the daily checks. So they're the jobs I'd hand Hermes: ads that should be running and aren't, a pixel gone quiet, creative wearing out (on Meta the creative does most of the targeting now).

Connecting Meta takes a Facebook sign-in, with no developer app to build and no token to copy.

A made-up account from analysis to fix: the top 5 problems ranked by impact, then two new ads from the brief, previewed, approved and created paused.

Connect Hermes Agent to Meta Ads in 3 steps

You need Hermes Agent 0.21.6 or later and the Facebook profile you use in Ads Manager.

  1. Install AdPlug's Hermes plugin. It's 16 PPC skills, one of them for Meta, and no code (it's public on GitHub).
    hermes plugins install adplug-app/adplug-hermes-plugin --enable
  2. Add AdPlug's Meta Ads server and sign in. That's AdPlug's Meta Ads MCP: 10 tools that read the account and make 37 kinds of change.
    hermes mcp add adplug-meta-ads --url https://api.adplug.app/mcp/meta-ads \
      --auth oauth --connect-timeout 300

    Sign in to AdPlug in the tab that opens (or create a free account), click Approve and answer Y to enable the tools. The --connect-timeout 300 part gives you five minutes to do that.

    Hermes Agent's terminal: the AdPlug plugin installed and enabled, then hermes mcp add adplug-meta-ads, the browser opened for AdPlug's sign-in, Connected! Found 10 tool(s) from 'adplug-meta-ads', Enable all 10 tools answered Y, and the server saved to ~/.hermes/config.yaml
    Steps 1 and 2: the plugin installs, then Hermes finds AdPlug's 10 Meta Ads tools and saves the server.
  3. Connect Meta Ads in AdPlug. On the Connections page, click Connect Meta Ads, sign in with Facebook and pick the ad accounts and Pages Hermes can use. That covers Facebook and Instagram. AdPlug keeps Meta's access token encrypted on its own servers, and it never passes through Hermes.

Type /reload-mcp and ask Hermes which Meta ad accounts it can see.

On a server or VPS with no browser, add the server to Hermes' config by hand, run hermes mcp login adplug-meta-ads and follow Hermes' OAuth over SSH guide.

Running Google, LinkedIn, Microsoft or Reddit Ads too? Add https://api.adplug.app/mcp as adplug instead, which carries all five (see Hermes Agent for marketing). Don't add both, or Hermes sees every Meta tool twice.

10 Meta Ads prompts I'd start with

Swap Acme for your client. Most of these read the client's brief, so first ask Hermes to use adplug:client-brief for Acme. It reads the website and ad accounts, then asks only what it couldn't find.

Start with a full account analysis

Once the brief's in, it's the first thing I'd ask on any Meta account. Hermes reads every campaign, ad set and ad, including the ones that should be running and aren't, and ranks the fixes by what each one is worth:

Prompt

Analyse Acme's Meta Ads over the last 30 days at campaign, ad set and ad level: what's delivering, what isn't, what's wearing out and what's over target. Give me the top 5 fixes ranked by impact on the account, and what you'd do about each.

Hermes Agent's desktop app after an analysis of a made-up Acme Meta Ads account at campaign, ad set and ad level: $9,840 spent and 112 leads at $88 against a $70 target, then the top 5 fixes ranked by impact (a worn-out founder video, a retargeting ad set out of lifetime budget, a lookalike ad set stuck in Learning limited, a rejected video ad, a tiring carousel), each with what Hermes would do
One question, and the top 5 fixes across campaigns, ad sets and ads, ranked by what they're worth. Nothing changed. Made-up account and numbers.

Creative fatigue and new ads

Prompt

Which of Acme's Meta ads are wearing out, with frequency up, click-through rate down and cost per result up? Tell me which to replace first.

I'd add replacements as new ads in the same ad set, so old and new results stay apart:

Prompt

Write new primary text and headlines for Acme's tired Meta ads from the brief's personas, each as a new ad in the same ad set. Show me the preview first.

Hermes Agent's desktop app showing AdPlug's preview of two new Meta ads in the Prospecting - UK ad set, each marked Paused, the reply Yes, Hermes' card saying MCP server 'adplug-meta-ads' is asking, allowed once, then Created 2 ads in Prospecting - UK, both paused
AdPlug's preview, your yes, Hermes' own check, and two new ads created paused. Made-up account.

Cost per result and the learning phase

Put the target in the brief, so Hermes doesn't guess it:

Prompt

Which of Acme's Meta ad sets are over target cost per result, or under target ROAS, and have spent enough to judge? Say what you'd pause or where you'd move the budget, and show me the preview first.

An ad set needs about 50 optimisation events in the 7 days after its last significant edit to leave learning (Meta's guidance):

Prompt

Which of Acme's Meta ad sets are stuck in learning or Learning limited, and why: too little budget, too many ad sets, an event that rarely fires or edits that reset it? Tell me what you'd change.

A new campaign, built paused

Pick the objective with care, because Meta locks it once the campaign exists:

Prompt

Build a new Meta prospecting campaign for Acme from the brief, all paused. Preview the campaign, then the ad sets, then the ads, and wait for my yes at each step.

Lead ads, judged by what the leads become

A cheap cost per lead can hide a lot of junk. AdPlug reads Meta's lead forms, not the leads, so add AdPlug's HubSpot MCP (paid plans) and make sure each Meta lead reaches HubSpot tagged with its campaign and ad set, or there's nothing to match on:

hermes mcp add adplug-hubspot --url https://api.adplug.app/mcp/hubspot \
  --auth oauth --connect-timeout 300
Prompt

Which of Acme's Meta ad sets bring leads that become qualified leads and deals in HubSpot, and which bring junk? Show me cost per qualified lead by ad set.

Audiences and lookalikes

Under Advantage+ audience, I'd start with customer lists, website visitors and lookalikes before hand-building interest stacks:

Prompt

Which audiences is Acme missing on Meta? Suggest website, customer list and lookalike audiences from the brief, and preview them before you create anything.

What competitors run in the Ad Library

Meta's Ad Library API only returns commercial ads that reached the EU or the UK (so a US-only competitor looks suspiciously quiet), and Meta asks you for a one-off identity check first (Hermes gives you the link):

Prompt

What are Acme's competitors running on Meta? Check the Ad Library for the competitors in the brief: their offers, the angles they test and the ads that have run longest.

The monthly client report

A PDF for you to check and send:

Prompt

Build a client-ready PDF report on Acme's Meta Ads last month: a short summary, results and cost per result against target and the month before, the insights behind them, and what changes next.

That's the 10. Anything you'd ask every week works better as a routine.

5 Meta Ads routines that only read

Hermes has a built-in scheduler it calls cron, and it sends each run to Telegram, Slack or Discord. Every run starts fresh, so each of these 5 routines names the client, and each ends with “Change nothing”.

1. Morning check:

Prompt

Every weekday at 8am, check Acme's Meta Ads: spend and results against a normal day, ads that should be running and aren't, ad sets not spending their budget, and pixels that stopped firing. Message me only what needs me. If nothing does, say so. Change nothing.

A quiet morning still sends a message (“If nothing does, say so”), so silence means the job didn't run.

2. Monday creative and cost check:

Prompt

Every Monday at 9am, review Acme's Meta Ads: last week against the week before, ads wearing out, ad sets over target cost per result or stuck in learning, and what changed in the activity log. Tell me what you'd change next. Change nothing.

3. Monthly client report:

Prompt

At 9am on the 1st of each month, build Acme's client-ready PDF report on last month's Meta Ads: a short summary, results against target and the month before, the insights behind them, and what changes next. Change nothing.

4. Monthly competitor sweep:

Prompt

At 9am on the 15th of each month, check the Meta Ad Library for the competitors in Acme's brief: ads they started in the last month, their offers and what they seem to be testing. Say which show nothing. Change nothing.

5. Quarterly audit:

Prompt

At 10am on the 1st of January, April, July and October, audit Acme's Meta Ads against the brief: tracking, structure, audiences, creative and budgets, ranked by severity, plus the growth opportunities that matter most. Change nothing.

Paste a routine into a Hermes chat, or create it in the terminal:

hermes cron create "0 8 * * 1-5" "Run the morning check on Acme's Meta Ads: spend and results against a normal day, ads that should be running and aren't, ad sets not spending their budget, and pixels that stopped firing. Message me only what needs me. If nothing does, say so. Change nothing." --skill adplug:ppc-agent --skill adplug:performance-review --name "Acme Meta morning check" --deliver telegram

Without --deliver telegram, the job writes to local files instead of messaging you. Hermes' gateway runs the jobs (hermes gateway install, then hermes gateway start), and each run uses AdPlug requests. The other routines, including one morning digest across every client, are in the 9 Hermes routines for PPC.

Hermes Agent for Meta Ads in an agency

One Facebook sign-in reaches every ad account you pick, so an agency connects Meta once, not once per client. Every AdPlug plan includes unlimited ad accounts. Each client's brief names their ad accounts, and every skill reads it first.

On Max and Agency, the team owner sets each teammate to View only or Can edit on Meta, and AdPlug enforces it when each person signs Hermes in as themselves. Every call lands in AdPlug's Usage and Audit Log, and the rest of the agency setup is in Hermes Agent for marketing.

How Meta changes stay safe in Hermes Agent

An extra zero on a daily budget is the Meta mistake I'd least like to explain to a client. Meta accepts it like any other budget and starts spending.

  • Everything new starts paused. Switching it on is a change of its own, so the worst a bad build can do is sit there looking unfinished.
  • A preview, then your yes. On an edit, AdPlug's preview shows the budget before and after with the change in per cent, so $50 to $500 reads +900%. The plugin's skills also have Hermes spell out the cost per day and per month. That's where an extra zero shows up.
  • Meta checks it too. Campaign, ad set and most ad previews run Meta's own dry run, so a change Meta would reject fails before anything moves.
  • Paced to Meta's limit. Meta currently allows about 20 changes per ad account every five minutes, and AdPlug tells Hermes to slow down past 75% of that.

Then make your yes a hard stop. Add trust: untrusted to the server in ~/.hermes/config.yaml and type /reload-mcp:

mcp_servers:
  adplug-meta-ads:
    url: https://api.adplug.app/mcp/meta-ads
    auth: oauth
    trust: untrusted

Reads and previews still run freely, because AdPlug marks them read-only. Before a change, Hermes says MCP server 'adplug-meta-ads' is asking and offers [o]nce | [s]ession | [a]lways | [d]eny. Choose once. With nobody there to answer, as in a scheduled run, the change doesn't happen.

Don't use /yolo or approvals.mode: off, because both skip the question. The full list is in why I'd trust Hermes Agent with client ad accounts.

What you still do yourself in Meta

  • Accept Meta's terms. No API can accept the Custom Audience or Lead Ads terms, so Hermes gives you Meta's link.
  • Link Instagram to the Page. Without it, ads run on Facebook only.
  • Switch things on, if you'd rather. Hermes can turn an ad on after a preview and your yes. I'd still take that click myself on a client account.

What Hermes Agent and AdPlug cost for Meta Ads

Hermes Agent is free and open source, and you pay your model provider.

AdPlug's free plan covers one ad platform, which can be Meta Ads, and it's view only. Pro is $29 a month with 5,000 AI requests and 200 AI edits, Max is $89 with unlimited requests and edits, and Agency is priced per seat. Pro and Max start with a 7-day free trial. A daily morning check across clients needs a paid plan, because every run uses AdPlug requests and the free plan has 50 a month after its first 5 days.

Prices checked on the pricing page on 10 November 2026.

Questions, answered honestly.

Can Hermes Agent run Meta Ads?

Yes, once it's connected through AdPlug. Hermes Agent can report on Facebook and Instagram ads, find ads that aren't delivering and flag tired creative. On a paid AdPlug plan it also builds campaigns, paused, and makes the changes you approve after AdPlug's preview.

How do I connect Hermes Agent to Facebook Ads?

In three steps. Run hermes plugins install adplug-app/adplug-hermes-plugin --enable, then hermes mcp add adplug-meta-ads --url https://api.adplug.app/mcp/meta-ads --auth oauth --connect-timeout 300 and approve AdPlug's sign-in. Then connect Meta Ads on AdPlug's Connections page with Facebook and pick the ad accounts.

Do I need a Meta developer app or access token?

No. AdPlug uses its own Meta app, which Meta approved in App Review on 3 November 2026, so you sign in with Facebook and pick the ad accounts. There's no developer app, system user or token to manage.

Can Hermes Agent manage Instagram ads?

Yes. Instagram ads run from the same Meta ad account as Facebook ads, so one connection covers both. An ad only reaches Instagram when its creative carries an Instagram account, so link one to the Facebook Page.

Can Hermes Agent change my Meta ads while I'm asleep?

Not with the setup on this page. Scheduled routines only read and report. With trust: untrusted on AdPlug's server in Hermes' config, Hermes asks you before every change, and a scheduled run has nobody to say yes.

Can Hermes Agent create Meta Ads campaigns?

Yes, on a paid AdPlug plan. Hermes builds the campaign, then the ad sets, then the ads, with AdPlug's preview at each level. Everything starts paused, so nothing spends until you switch it on.

Will connecting Hermes Agent get my Meta ad account banned?

Connecting it shouldn't, because AdPlug uses the route Meta built for tools: Meta's Marketing API, through an app Meta approved in App Review on 3 November 2026, and Facebook's own sign-in, not a bot clicking around Ads Manager. AdPlug is independent and isn't affiliated with or endorsed by Meta. Your ads still have to follow Meta's ad policies, and nothing can promise an account is never reviewed.

Does it work on a VPS, with reports in Telegram or Slack?

Yes. Hermes Agent runs on a server, and its gateway sends scheduled runs to Telegram, Slack or Discord. On a server with no browser, add AdPlug's server to Hermes' config by hand, run hermes mcp login adplug-meta-ads and follow Hermes' OAuth over SSH guide.

How much does it cost to run Meta Ads with Hermes Agent?

Hermes Agent is free, and you pay your model provider. AdPlug's free plan covers one ad platform, view only, with 500 requests in your first 5 days and then 50 a month. Pro is $29 a month and Max is $89 (checked 10 November 2026). Pro and Max both start with a 7-day free trial.

Can Hermes Agent run Meta Ads and Google Ads together?

Yes, on a paid AdPlug plan. Add https://api.adplug.app/mcp as a server called adplug instead of the Meta-only one: it carries Google Ads, Meta Ads, LinkedIn Ads, Microsoft Ads and Reddit Ads. Don't add both, or Hermes sees every Meta tool twice.

Try this on your account.

Connect Google Ads, Meta Ads, LinkedIn Ads, Microsoft Ads, Reddit Ads, or Google Search Console to Claude or ChatGPT in two clicks. Free tier, read-only by default, no card required. HubSpot is included from Pro.