More articles 13 min read

Grok Bot for Meta Ads: your AI media buyer on TikTok and Snap too

Make Grok Bot your media buyer on Meta, TikTok and Snapchat with Apogee: morning brief, launches, pauses and the Bridge, plus the prompts to copy.

Mathieu Malige Founder, Apogee Published
Contents
  1. Grok Bot’s job description as a media buyer
  2. Hiring Grok Bot: connect it to Apogee as an MCP server
  3. Grok Bot on Meta Ads: launching the new batch of creatives
  4. Grok Bot on TikTok Ads and Snapchat Ads
  5. Its morning routine: the brief, then the pauses
  6. The Monday report, platform by platform
  7. Prompts to copy
  8. Its rules: what it never does without you
  9. Grok Bot, Grok or Grok Build: which one should run your ads?
  10. What if the connection gets stuck?
  11. Going further

Grok Bot can take the media buyer seat on your Meta, TikTok and Snapchat accounts. Connected to Apogee through its MCP server, it sends the morning brief, launches your new creatives, prepares the pause of fatigued ads and moves your Meta winners to TikTok and Snapchat. It prepares, you approve: nothing goes live without your yes. Here is its job description, how to hire it in two minutes and the prompts to copy.

Grok Bot launches 12 Meta ads from a Drive link with Apogee: the creatives imported, grouped into 3 concepts, the recap and the yes
One Drive link, one recap, one yes: 12 ads created in the testing campaign, one ad set per concept.

Grok Bot’s job description as a media buyer

Grok Bot is xAI’s personal agent, run with Cursor. It lives in desktop apps (macOS, Windows, Linux) and mobile apps (iPhone, Android), works in the background and repeats tasks at set times with its routines. On its own, it has no access to your ad accounts. Apogee gives it that access through its Meta Ads MCP server, on three platforms, with guardrails.

Its taskPlatformWhenWhat you approve
The morning briefMeta, TikTok, SnapchatEvery morningNothing, it only reads
Launch the new batch of creativesMeta, TikTok, SnapchatAs soon as a batch lands in DriveThe launch recap
Cut the ads that are fatiguingMeta, TikTokEvery eveningThe list of pauses
Send Meta winners to TikTok and SnapchatBridgeEvery MondayThe Bridge recap
The weekly reportPlatform by platformEvery MondayNothing, it only reads

What it never does: launch or change anything without your yes, add platforms together, or touch an account that is not connected to Apogee.

Hiring Grok Bot: connect it to Apogee as an MCP server

You need two subscriptions: one that gives you Grok Bot, and an Apogee plan that includes the MCP server. According to Cursor’s help:

SidePlans that work
XPremium, Super, Ultra or Premium+
GrokSuperGrok (not Lite) or SuperGrok Heavy
CursorPro, Pro+, Ultra or Teams
BusinessA Grok Business seat
ApogeePro, Growth or Scale, MCP server included; 7-day trial for €1

The message to send Grok Bot, in any conversation:

Prompt to copy
Add a custom MCP server named Apogee, with a capital A, at https://app.apogee.ad/mcp
  1. In Apogee, open Settings → Personal agents and pick Grok Bot: the server URL shows with a Copy button.
  2. Send the message above to Grok Bot and accept the card that adds the server.
  3. Click Authenticate on a computer, or Authorize on a phone: your browser opens Apogee’s sign-in page.
  4. Log in to Apogee, check the access and click Authorize.
  5. In Grok Bot, Settings → Plugins: Apogee must no longer show Needs auth.
Grok Bot confirms that Apogee is added and connected, with the Apogee Meta TikTok Snapchat card in the conversation
One sentence in the chat is enough: Grok Bot adds Apogee, then you authorize it.

Neither xAI nor Cursor describes this procedure in their documentation yet: the labels come from practice and from Cursor’s forum. If your menus differ, look for Plugins in the Bot’s settings. The Grok Bot page of Apogee’s developer guide covers the same steps.

Personal agents section of Apogee's settings with Grok Bot selected: the server URL, the Copy button and the connection steps
On Apogee's side, Settings → Personal agents gives you the server URL and the steps.

The access you grant

Grok Bot goes through Cursor’s MCP client, so Apogee’s page reads “Cursor wants to access your Apogee account”. That is expected: it really is Grok Bot you are connecting. Once the connection is made, Apogee recognizes it and lists it as Grok Bot under Settings → Personal agents.

AccessWhat it allowsFor which task
ReadRead accounts, campaigns, ads and statisticsBrief, report
LaunchImport creatives, prepare and launch adsLaunches, Bridge
ManagePauses, budgets, targeting, duplicatesCutting an ad, adjusting a budget

A Bot that only sends briefs is fine with Read. Untick whatever it does not need.

Apogee consent page for Grok Bot, titled Cursor, with the Read, Launch and Manage access and the Authorize button
Grok Bot goes through Cursor: that is the name shown on the sign-in page.

Day one: check that it sees your accounts

Prompt to copy
Using Apogee, list my Meta, TikTok and Snapchat ad accounts with their currency. Don’t change anything.

The Bot calls list_ad_accounts and answers with the accounts connected to Apogee. If it cannot find the tool, the connection is not finished. One connection serves every Bot on your account.

Grok Bot lists, read-only, four Meta, TikTok and Snapchat ad accounts connected to Apogee, with their currency
The first test only reads: nothing changes on the accounts.

Grok Bot on Meta Ads: launching the new batch of creatives

The Meta launch is the core of the job. Give Grok Bot a link to your creatives (Google Drive, Dropbox, Frame.io) and the target campaign:

Prompt to copy
Take every creative in [link] 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.

What it does next, with Apogee’s tools:

  1. The creatives: import_link imports them into Apogee. Nothing reaches Meta at this stage.
  2. The settings: get_latest_in_campaign picks up the latest ad set and the latest ad in the campaign.
  3. The interview: get_launch_questions returns the Apogee app’s questions, each with a recommended answer. The Bot asks them one topic at a time, without answering for you.
  4. Ads and texts: one creative in 9:16, 4:5 and 1:1 makes a single ad; one primary text, one headline and one description per ad, in the market’s language.
  5. The recap, then the launch: prepare_launch creates nothing. After your yes, launch, then launch_status until it is done.

If Meta rejects an ad, launch_status says why and what to do. The Bot does not relaunch an error that needs fixing until you confirm the cause is sorted.

The launch routine: the new batch, every morning

Prompt to copy
Every weekday at [time], check my Google Drive folder [folder link]. If there are creatives that are not launched yet, prepare a launch in my [campaign] campaign of [ad account], one ad set per concept, with my naming convention and the settings of the latest ad set launched there. Send me the full recap and wait for my yes before you launch. If there is nothing new, say nothing.

The folder must be shared with “Anyone with the link” or sit in the Drive connected to Apogee. The first time, the Bot asks every question; on later mornings, it reuses your answers.

Grok Bot on TikTok Ads and Snapchat Ads

Sending Meta winners over with the Bridge

An ad that works on Meta deserves its shot on TikTok and Snapchat. Apogee’s Bridge creates paused copies, with texts adapted to each platform, without touching the original Meta ads:

Prompt to copy
Send my 10 best Meta ads of the week to TikTok and Snapchat, in a new ad group and a new ad squad of my testing campaigns. Create everything paused, and show me the full recap before you create anything.
Grok Bot sends the top 10 Meta ads to TikTok and Snapchat with Apogee's Bridge: 10 out of 10 sent on each platform
The Meta top 10 heads to TikTok and Snapchat: the original ads stay intact.

The Bot relies on get_top_performers, on list_bridge_transfers so it never resends an ad that already went over, then on prepare_bridge_transfer and bridge_transfer after your yes. The first time, it asks you for what TikTok requires and Meta does not provide, such as the identity and the call to action. Only videos go through the Bridge.

As a routine, every Monday:

Prompt to copy
Every Monday at [time], take my [number] best Meta ads of last week by [ROAS or CPA] in [Meta ad account] that are not on TikTok yet, and prepare them on TikTok in my [TikTok campaign] campaign of [TikTok ad account], in a new ad group. Send me the full recap and wait for my yes. Create everything paused.

Launching straight on TikTok and Snapchat

The flow is the same as on Meta, with the TikTok or Snapchat account named in the prompt. TikTok creates an ad group (an image becomes a carousel there), Snapchat an ad squad. See TikTok Ads bulk upload and Snapchat Ads bulk upload for what each platform accepts.

For a big sales moment on all three platforms at once:

Prompt to copy
Take my creatives in [link] and create the Black Friday campaigns on Meta ([Meta ad account]), TikTok ([TikTok ad account]) and Snapchat ([Snapchat ad account]). One new campaign per platform named [name], a budget of [budget] per day on each, the offer is [offer] and it sends to [page]. Create everything paused, and show me the full recap before you create anything.

The Bot asks you what each platform requires: on Meta the objective, the pixel, the Page and the Instagram account; on TikTok the identity and whether to use Smart+; on Snapchat the public profile, the pixel and the countries. Each platform gets its own recap and waits for its own yes.

Its morning routine: the brief, then the pauses

A routine repeats a prompt without you having to ask again:

  1. Describe it in the chat, with its frequency and time. On a phone, you can also go through the Bot’s profile, Routines → Add routine.
  2. Set the time zone in Settings → Bot → Timezone.
  3. Find it on a computer under the Bot’s name, Details tab, then Routines: Pause/Resume, Test, Edit, Delete routine. Test runs a real pass, with real actions.

The morning brief, read-only:

Prompt to copy
Every morning at [time], send 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. Alert me when a platform’s CPA is more than [threshold]% above its 7-day average. Never add the platforms together. If something should change, propose it and wait for my yes.

The pause of the ads that burn budget, prepared every evening:

Prompt to copy
Every evening at [time], find the ads in [ad account] that spent more than [multiple] times my target CPA without a purchase over the last [days] days, on Meta and TikTok. Prepare their pause and send me the list (name, platform, spend, why). Wait for my yes before you do it.
Grok Bot's morning brief with Apogee: spend, ROAS and winners, then the pause of 2 fatigued ads after a yes
The brief reads the numbers; the pause only happens after your yes.

An approval card raised by a routine expires after 30 minutes, but Apogee’s plan stays valid 24 hours. A missed card loses nothing: write “Show me the pending Apogee recap again”, then approve. The numbers come from Apogee’s cross-platform stats.

The Monday report, platform by platform

Prompt to copy
Give me this week’s report on Meta, TikTok and Snapchat, platform by platform: spend, ROAS, winners and ads to cut. Propose the changes, but don’t do anything.
Grok Bot's weekly report with Apogee: Meta, TikTok and Snapchat, each with its own spend, ROAS and winners
Each platform keeps its currency and attribution: Apogee never adds up Meta, TikTok and Snapchat.

Apogee never adds platforms together: a TikTok conversion and a Meta conversion are not measured the same way, and a total would suggest otherwise.

Prompts to copy

On top of the routines above, six prompts that earn their keep every week:

Prompt to copy
What are my 5 best Meta ads of the last 7 days by ROAS, with their spend? Don’t change anything.
Prompt to copy
Which of my active Meta ads are fatiguing (CTR going down, frequency going up)? Don’t change anything.
Prompt to copy
Duplicate the [name] ad set with a 20% higher budget, paused, and show me the recap.
Prompt to copy
Prepare the pause of the TikTok ads that spent more than 2 times my target CPA without a purchase over 5 days, and wait for my yes.
Prompt to copy
Relaunch the [name] ad with its post ID in the new ad set, to keep its Facebook likes and comments.
Prompt to copy
Where does my latest launch stand? If there are errors, tell me what to fix.

Its rules: what it never does without you

Grok Bot checks its own actions with Auto-review, on by default: before a sensitive action, a card offers Allow once, Always allow or Deny. For Apogee, set a rule in Settings → General, Bot section, Auto-review → Custom Rules: describe the action (launching, pausing or changing ads through Apogee), pick Ask first, then Add Rule. Never click Always allow on a launch.

Apogee keeps its own guardrails, whatever the Bot’s settings:

GuardrailValue
Before any launch or changeA full recap and your yes
Status of created adsPaused by default
Prepared planValid 24 hours, runs only once
Daily budgetRefused above the cap, 500 in the account’s currency by default
Launches and Bridge transfers25 per ad account over 24 hours

Reads are free within your plan’s daily limit; a change that runs or an ad that gets created uses credits, only when it succeeds. To cut access: Settings → Personal agents in Apogee, then Disconnect next to Grok Bot.

Grok Bot, Grok or Grok Build: which one should run your ads?

xAI’s three products use the same Apogee MCP server, for different jobs. The developer guide covers connecting Grok on grok.com and connecting Grok Build in the terminal:

ProductWhat it isAdding Apogee
Grok BotThe personal agent, with its routinesThe message above, then Authenticate
GrokThe chat on grok.comgrok.com/connectors → New Connector → Custom, URL https://app.apogee.ad/mcp
Grok BuildThe command-line coding agentgrok mcp add --transport http apogee https://app.apogee.ad/mcp

For a media buyer that works while you are away, Grok Bot is the right pick: it is the only one with routines. On Grok’s Business and Enterprise plans, an admin first has to allow custom connectors.

What if the connection gets stuck?

  • Needs auth or Disconnected: open Apogee in the Bot’s plugins, click Authenticate (computer) or Authorize (phone) and log in again.
  • The wrong Apogee account shows on the consent page: click Switch before Authorize.
  • Cursor team: an admin first allows the server under Plugins & MCPs in the Cursor dashboard; otherwise Apogee shows Disabled by team admin.
  • The Bot cannot find list_ad_accounts: the connection is not finished, go back to step 3.

Going further

The feature Bridge An ad live on one platform goes live on another, with its video; copy, CTA and tracking rewritten for the destination platform. See the feature

Frequently asked questions

Can Grok Bot manage Meta Ads campaigns?

Yes, with an advertising MCP server such as Apogee. Grok Bot then reads your Meta accounts and prepares launches, pauses and budget changes, and Apogee waits for your yes on a recap before it touches the account. Without an MCP server, Grok Bot has no access to Meta Ads.

Does Grok Bot work with TikTok Ads and Snapchat Ads?

Yes, through Apogee, which connects TikTok and Snapchat accounts on top of Meta. Grok Bot can launch ads there (an ad group on TikTok, an ad squad on Snapchat), read the results and send your best Meta videos over with the Bridge.

How do I connect Grok Bot to Apogee?

Ask Grok Bot to add a custom MCP server named Apogee at https://app.apogee.ad/mcp, accept the card, click Authenticate, log in to Apogee and approve the access. Under Settings → Plugins, Apogee must no longer show Needs auth.

Can Grok Bot launch ads without my approval?

No. Apogee prepares a plan, shows the full recap and only runs it after your yes in the conversation. Ads are created paused by default, the plan expires after 24 hours and runs only once, and Grok Bot's Auto-review can ask for your approval on every action.

Why does Apogee's sign-in page show Cursor?

Grok Bot goes through the MCP client of Cursor, the editor that runs it with xAI. Apogee's consent page therefore shows Cursor. Once the connection is made, Apogee recognizes Grok Bot and lists it under that name in its settings.

What is the difference between Grok Bot, Grok and Grok Build for Apogee?

Grok Bot is the personal agent that works in the background with routines. Grok is the chat on grok.com, where Apogee is added as a custom connector. Grok Build is the command-line coding agent, where Apogee is added with grok mcp add. All three use the same Apogee MCP server.

Book a demo

Pick the time that suits you.

Open in a new tab

Loading the calendar…

Talk to Founder