← Back to posts

The Complete Guide to Managing Google and Meta Accounts with AI

I run paid for AppSumo and two clients I manage through Rax Digital Consulting. Three brands, two ad platforms, one operator.

Until February I logged into Google Ads and Meta Ads Manager every Monday morning. Three accounts on Google, three on Meta, six tabs total, six logins, six different dashboards. Half my Monday was account-switching tax.

I don't open any of those dashboards anymore. Claude Code runs all of it through a stack I built piece by piece over the last 90 days, with a safety harness that keeps me in the loop on every change that moves money.

This is the complete reference. Setup, daily workflows, creative pipeline, safety harness, and where the human still wins. If you only read one of my posts on AI-managed ad accounts in 2026, make it this one.

The principle

Every ad platform you log into is going to look the same in 24 months.

Your agent talks to the API. You talk to your agent. The dashboard you used to spend an hour in becomes a 30-second prompt and a sheet of proposed changes that you skim, approve, and ship. The software you don't log into wins.

Google Ads and Meta Ads are the two I cracked first because I have heavy operational rhythm on both. The pattern is the same on both. The pattern is the same on every SaaS you use. If you build the muscle on these two, you'll build it everywhere else.

Three pieces make up the operating model:

  1. API access through a local MCP server. The agent reads and writes to the platform directly. No UI in between.
  2. A safety harness between the agent and the live account. Claude proposes, a second AI reviews, a human approves. Two AIs and a human before any dollar moves.
  3. A daily reporting layer that hits Slack so the human (you, your client, your boss) sees what's happening without anyone logging into anything.

Each platform has its own setup but the shape is identical.

Part 1: The Google Ads stack

Google Ads needs four things wired together.

1. A Google Ads manager account. Originally called MyClientCenter. The umbrella account that holds many sub-accounts under one login. Free to create at ads.google.com/aw/managers/new. Linking your existing ad accounts into it takes about five minutes per account from the manager dashboard. If you only run one Google Ads account today, set up a manager account anyway and link your current account into it. That way you're ready when you pick up a second one.

2. An OAuth client in Google Cloud Console. OAuth is how you give an application permission to act on your behalf without sharing your password. You spin up an OAuth desktop client in Google Cloud Console, get a client ID and client secret, and run a one-time auth flow to generate a refresh token. That refresh token is the credential the MCP uses every time it talks to Google. Generated once, stored in a config file, never expires unless you revoke it.

3. A Google Ads API developer token with Basic Access. Google requires anyone using the Google Ads API to have a developer token. You request it from inside your manager account at Tools & Settings → API Center. Test access works immediately and lets you hit any account inside your own manager (good enough to start). Basic Access lets you query any Google Ads account you have permission to manage. You apply for Basic inside the API Center, Google approves in one to two business days, and honest answers on the application are fine.

Most marketers haven't done this step. It's the gate. Once you're through it, every Claude skill that uses the Google Ads API works against every account you manage.

4. The google-ads-mcp server running locally. MCP (Model Context Protocol) is the open standard for connecting AI agents to tools. The MCP server I use is google-ads-mcp, written by Google's marketing solutions team. It's a small Python process running on your laptop, listening on 127.0.0.1:8000. Claude Code talks to it through mcp-remote. It talks to Google.

That's the four. Manager account, OAuth client, developer token, local MCP server. The full skill bundle that wires them together is at github.com/nickyc1/google-ads-mcp-setup. About 30 minutes start to finish.

Once it's live, every Claude skill that uses google-ads works against every sub-account with zero extra config. One OAuth token controls every account you manage.

Part 2: The Meta Ads stack

Meta took longer to crack because for two years there was no official MCP. Every "Meta MCP" on GitHub was someone's personal developer app sitting in the middle of your ad account. If their app got flagged, your account caught the same review. The ban risk was real.

Meta ended that in April. They shipped an official Ads CLI and MCP server, both built and maintained by Meta, both authenticated with your own Meta Business OAuth. Twenty-nine tools across reporting, campaign management, catalogs, and signal diagnostics.

This changed the entire Meta-plus-AI workflow overnight.

The MCP version is HTTP-based. Drop https://mcp.facebook.com/ads into your Claude Desktop or ChatGPT custom connector config, OAuth into your Meta Business account, done. Setup is about 90 seconds.

The CLI version is a local Python binary that exposes the same operations to terminal-based agents (Claude Code, Codex, anything that runs shell commands). Setup is more like 10 to 15 minutes because you install it on your machine and run the OAuth flow.

Both hit the same Meta Marketing API. Pick by where you actually use Claude.

For me that's Claude Code, so I run the CLI.

The token to use is a System User token, not a personal user token. System user tokens are scoped to your Business Manager, don't expire, and survive if you change roles on the account. Generate it once from Business Settings → System Users → Add → assign your Business Manager and your ad account → generate token with ads_management and ads_read scopes. Store it like an SSH key. That token is what the CLI uses for every call.

The 29 Meta tools across five categories:

  • Campaign Management (5): create campaigns, ad sets, ads, update entities, activate them
  • Product Catalog (10): create catalogs, manage feeds, run diagnostics, look up products, manage sets
  • Accounts & Assets (3): account discovery, entity lookups, Page connections
  • Dataset & Tracking Quality (4): Pixel and CAPI diagnostics, event statistics, matching quality scores
  • Performance & Insights (7): anomaly detection, benchmarks, trend analysis, opportunity scoring, Help Center retrieval

The signal diagnostics piece alone is worth the install if you've ever had to debug a wonky Pixel.

The full step-by-step Meta setup (Meta App creation, System User token generation, the assets-assignment trap, Claude Code MCP registration) is packaged as a skill bundle at github.com/nickyc1/meta-ads-mcp-setup. About 30 minutes start to finish, same shape as the Google Ads skill above.

Part 3: The safety harness (universal)

Giving an AI write access to a six-figure-a-month ad account without guardrails is how you torch five grand in a day. The agent hasn't made that mistake on me yet. I stopped believing it wouldn't.

The harness I run is three layers. It works the same on Google and on Meta. Same Google Sheet, same approval flow, just different operations on the back end.

1. Claude proposes, never executes. Every mutate goes to a Google Sheet first. The agent calls a propose() function instead of writing directly to Google or Meta. It snapshots the before-state, writes a row to a Staged Changes tab with status "proposed," and stops there. The row carries the account, the operation, the target, the params, and the reason the agent gave for the change.

2. A second AI reviews. A small poller hands every proposed row to GPT-5 with its own API token and a prompt that says "you are a senior performance marketing operator. Find the risk the first agent missed." Output is strict JSON: looks_good, concerns, or unsafe, plus one to three sentences of notes written back to the sheet. Two different models, two different access tokens, one independent second opinion.

3. I review the sheet. Anything GPT-5 flagged as unsafe gets auto-skipped. Everything else waits for me to flip status to "approved." Approved changes get pushed back through the MCP (Google) or CLI (Meta) and applied. The before/after state and the Google change ID land in a separate Mutate Log tab so I have an audit trail forever.

The whole loop runs in 5 to 30 minutes depending on how busy the morning is. I never feel like I'm flying blind. The AI never feels like a wild dog. And the harness itself is just a Google Sheet plus a small piece of code that polls it. There is nothing fancy about it. The pattern matters more than the tooling.

This same harness pattern works for any high-stakes AI workflow. Cold outbound, code deploys, customer support refunds, anywhere an AI has write access to something that costs real money or attention. Build the harness, not the prompt.

Part 4: Daily reporting via n8n

Reporting is the part of ad management that scales worst manually and best with automation.

I run a daily n8n workflow per account that fires at 9:07am Central. It hits the Google Ads MCP, the Meta CLI, the Shopify API, and Looker/Snowflake. Merges the data. Sends a formatted Slack message to a channel my client (or my boss, in AppSumo's case) is already in.

What lands every morning:

  • Top-line metrics. Spend, sales, profit, profit-to-spend ratio with goal comparison. Acquisition cost, month-to-date same metrics, and top campaigns by spend.
  • Campaign grades. Green or red flag against the account's profit-to-spend target. Above target gets a "scale" tag. Below target gets an "investigate or pause" tag.
  • Real profit ranking. Top campaigns by actual profit pulled from internal data, not platform-reported conversion value. This is the part that solves the "Google says I made $541K, my Shopify says $420K" attribution problem.
  • Product or deal performance. For ecommerce, this comes from Merchant Center plus Looker. Conversion rate by product. High conversion plus low spend equals underfunded. Low conversion plus high spend equals overfunded.
  • Agency or AI change log. Every change made yesterday, with a one-line reason and a grade against the day's outcome. If your agent made the change, you see what it did. If a human made the change, you see that too.

I use n8n for this instead of running it directly through Claude Code because the daily Slack drop has to be 100% predictable. Same time, same format, every day, never failing. Claude Code is for ad-hoc questions during the day ("which campaigns are driving the spike in CPA this week?"). n8n is for the durable cadence the client expects.

Both share the same data sources. Both use the same skill files in my GitHub for context. They're different transports for the same brain.

Part 5: Creative generation

The piece most marketers miss is that the AI doing the management is only as good as the context you give it. Garbage context, garbage decisions.

The creative pipeline that feeds the ads starts with the customer, not the platform.

Step 1: Pull your top 10% of buyers by trailing revenue. Not lifetime, trailing. Behavior that's still happening. For AppSumo that meant ~6,000 customers from a 76,000-customer sweep. For a smaller client it might be 100 buyers. The cohort that's actively driving revenue is the cohort whose voice you want in your ad copy.

Step 2: Enrich with public signal. Job title, company size, role, industry. You're giving Claude enough context to recognize a pattern when it sees one. Twenty Matt-shaped customers in a row is the moment the cohort surfaces.

Step 3: Stack the qualitative inputs. Reviews, support tickets, exit surveys, NPS comments, sales call notes. The behavioral signal tells you who. The qualitative signal tells you why, and "why" is what your ad copy needs.

Step 4: Synthesize in batches with one hard rule. Claude reads everything, batched by suspected cohort, and reports the recurring language across customers. The hard rule is that it must keep grammar, slang, and exact phrasing intact. No paraphrasing. "I want to stop renting tools" stays as is. The moment Claude smooths it to "I'm seeking subscription alternatives" you're back to corporate-speak and the ads die.

Step 5: Cross-validate against actual calls. Take the top phrases the synthesis surfaced and check them against recorded sales calls. If the language Claude gave you doesn't match anything a real customer said out loud, the synthesis hallucinated and you start over.

Step 6: Compile into a skills.md the agent loads on every run. This is what makes it durable. The output isn't a slide deck, it's a markdown file the ad-copy agent loads as context every time it generates a headline, primary text, description, or creative brief. Same input, same voice, every time.

Once that file exists, the rest of the creative pipeline runs against it.

For Google PMax, the agent generates 15 headlines (≤30 char each), 5 long headlines (≤90 char), 5 descriptions, business name, and pairs them with images (4 landscape, 4 square, 2 portrait, logo, wordmark). Character limits and brand voice both enforced. The whole bundle uploads to the account via the MCP.

For Meta, the agent generates primary text variants, headlines, descriptions, and pairs them with static creative or AI-generated reference imagery. Same pattern, different format. The Meta CLI handles the upload.

The skill bundles for both live in my GitHub. ad-creative for the generation. paid-channel-recap for the reporting after the campaigns run. paid-ads-context is the foundation file every other skill reads first.

Part 6: Where humans still win

The list of things AI is better at on an ad account is long: search-term hygiene, negative keyword mining, budget reallocation based on ROAS, pacing alerts, anomaly detection, creative performance tracking, audience math, geo and daypart optimization, daily reporting.

The list of things humans are still better at is shorter, but it's the list that matters.

  • Brand voice direction when the synthesis is wrong or stale.
  • Long-term campaign incubation. Knowing not to throttle a winner-in-waiting that's still in learning.
  • Strategic narrative. Pricing strategy, offer strategy, what to launch next quarter.
  • Reading cultural moments. When the market is shifting and the playbook needs to break.
  • Risk tolerance. When to make a big bet. When to take chips off.
  • Founder-level approvals on the changes the AI flags as "concerns."

For me at AppSumo, this is the layer Alona and I work in. The agent runs the day-to-day, I steer the taste and the longer arc.

If you're an agency owner reading this, the same split is the operating model that lets one person service what used to take four. The AI handles the volume. The human handles the judgment.

Putting it together: what a day looks like

Monday, 9:00am. I sit down with coffee. The n8n drop is already in Slack from 9:07 the previous business day so I review it now. Top movers, anomalies, campaigns flagged red.

9:05am. I open Claude Code and ask "any safety harness rows from this weekend that need my eyes?" The Google Sheet shows 4 proposed changes. Two are unsafe (auto-skipped). One is concerns (GPT-5 suggested a tighter modification). One is clean. I flip three to approved, the modified one to approved with the smaller change, and Claude pushes them back through the MCPs.

9:15am. I'm done with the daily ad-ops layer. The rest of my morning is strategy work, client calls, or creative direction.

Wednesday, 2:00pm. Client A asks for a launch plan for next month's promotion. I tell Claude in their dedicated session: "Build a PMax bundle for the August promo. Use the latest customer synthesis. Three sub-themes, each in the rich avatar's voice." Twenty minutes later the bundle is in their ad account as a draft. I review with the client, we ship.

Friday, 5:00pm. The weekly recap fires automatically to each client's Slack. They see what changed, what happened, and the recommended next week. I don't write any of it. I read it before they do and add a one-paragraph human note at the top.

That's the whole rhythm.

What I'd build next if I were starting today

If you're starting from zero, here's the order.

  1. Set up your Google Ads manager account and get Basic API access. Two weeks of waiting if you start today, so start today.
  2. Wire up the Google Ads MCP and run read-only queries for a week. Get comfortable with what the agent sees before you give it write access.
  3. Build the Google Sheet safety harness with one operation. Start with adding negative keywords. Lowest stakes. Run it for two weeks with daily approvals to build trust.
  4. Add the second AI reviewer. Once you've watched Claude propose 50 changes, GPT-5 will tell you what you missed on roughly 10 of them. That's when you understand the value.
  5. Layer in n8n for the daily Slack drop. Predictable cadence for client-facing reporting.
  6. Connect Meta via the official CLI or MCP. Same pattern, half the setup time, no ban risk anymore.
  7. Run the customer synthesis on your top 10% buyers. Get the skills.md file the agent will use for every piece of creative going forward.
  8. Start using the agent for creative generation. PMax bundles for Google, primary text variants for Meta. Always reviewed by a human before launch.

Sequence matters. Most people try to wire the creative pipeline before they have the safety harness. They end up either too cautious to ship anything or too aggressive and they torch budget on day three.

Read-only, then write, then automate, then scale.

Bottom line

Three brands. Two platforms. One operator. The work I used to do in 15 hours a week, plus what the agency did in another 20, gets done in 3 to 5.

The agency we fired at AppSumo was costing $35K a month. The total cost of my replacement stack is the OpenAI API bills, the Anthropic subscription, the n8n hosting, and roughly four hours of my time per week. Less than a tenth of the old number, and the results are equal or better.

If you run more than one ad account on either platform, the next 90 days of your time are best spent building this. The skill bundles for everything I covered are on my GitHub:

Clone, fork, modify. The whole stack is MIT-licensed.

The era of logging into Google Ads and Meta Ads every Monday is over. Manager account on each platform, one OAuth on each, a safety harness in the middle, and the agent runs the rest while you handle the things the agent can't.