Skip to content

Meta Ads ​

This page is for the marketer who advertises on Facebook and Instagram through an AI client. The first four sections are for the administrator: Meta Ads is off until they are done.

Meta ads spend money. So nothing made here can run by itself: every campaign, ad set and ad is created paused, every change is shown to you before it is made, and switching something on is always its own step. See How it keeps you safe.

The LinkedIn Ads page has the same sections in the same order, so you can compare the two.

Switching Meta Ads on ​

Meta Ads is off in a new installation. Until an administrator switches it on, every request about Meta advertising is refused, and the refusal says where the switch is.

Before you switch it on, add the Marketing API product to your Meta app. Meta decides what the app may do with it:

  • For ad accounts that belong to the same business as the app, Meta gives the advertising permissions without App Review, on its Limited access tier. That tier allows a few hundred calls an hour for each ad account.
  • Advertising from anyone else's ad account needs Full access, which Meta gives through App Review.

Then:

  1. Open Meta app.
  2. Under Meta Ads, tick Switch Meta Ads on, and ask for the advertising permissions when people connect.
  3. Press Save.

From then on the Meta sign-in asks for three more permissions: ads_read, ads_management and pages_manage_ads.

Everyone reconnects

People who connected Meta before the switch was on do not have the new permissions. Each of them opens Meta connection and presses Reconnect Meta. Until they do, their advertising requests are refused for a missing permission. See Connecting Meta.

The same section has three more switches, all off: Allow reading leads, Allow sending conversions to a pixel and Allow customer lists as audiences. They are about people's contact details and have their own pages: Leads and Conversions and customer lists.

Spending limits ​

Nothing can be changed on an ad account until a spending limit is set for its currency. This is on purpose: a currency with no limit is not unlimited, it is closed.

  1. Open Safety limits.
  2. Under Meta ad spend limits, fill in the three amounts. Each is written per currency, like USD 100, SAR 375:
    • Highest daily budget, per currency;
    • Highest lifetime budget, per currency;
    • Highest total of active daily budgets on one account, per currency.
  3. Check the two numbers below them: Largest budget increase in one call, percent (starts at 50) and Longest an ad set may run, days (starts at 90).
  4. Press Save ad spend limits.

A request cannot raise a limit by asking. A request over a limit is refused, never trimmed to fit, and the refusal carries the address of the Safety limits page.

A daily budget is an average

Meta may spend up to 75% more than a daily budget on a single day, and no more than seven times it in a week. The limits cap the budget, not the day.

Meta has its own list of currencies an ad account can be billed in. An ad account in a currency outside that list shows Currency not supported and cannot be changed from here.

All the limits and switches are listed in Limits and switches.

Allowed ad accounts ​

By default a person can work on every ad account their own Meta login can reach. To narrow that for the whole installation:

  1. Open Safety limits.
  2. Under Meta ad spend limits, type the ad account ids in Allowed ad accounts, separated by commas. Empty means every account a login can reach.
  3. Press Save ad spend limits.

An account that is not on the list cannot be read or changed from here. Allowed countries to target beside it works the same way for targeting: two-letter codes, empty for any. With a list set, a region or a city is accepted only when it is in a listed country.

To see what your own login reaches, open Meta connection and press Test connection. With Meta Ads on, the result lists your ad accounts. The For changes column says Ready, Not on the allowed list, Currency not supported, or that no spending limit is set for that currency.

Reporting-only mode ​

To let people read Meta advertising reports and change nothing:

  1. Open Meta app.
  2. Under Meta Ads, tick Reporting only.
  3. Press Save, then stop the server and start it again.

It takes effect the next time the server starts. With it on, nothing that changes a campaign is offered to any AI client, whatever a user is allowed. Reports and previews still work.

To make one person read-only instead, remove May write from that user: see Users and access.

Reports ​

Ask in your own words. The AI client starts by listing your ad accounts, because every amount is in the ad account's own currency.

Which Meta ad accounts can I use, and what are the spending limits on each?

How did our Meta campaigns do in the last 30 days? Show spend, leads and cost per lead by campaign.

Why is the "Spring offer" ad set not delivering?

What you can ask for:

  • A list of campaigns, ad sets or ads, with status, objective, budgets and schedule.
  • Performance by account, campaign, ad set or ad: spend, impressions, reach, clicks, leads, conversations and their cost, and how far videos were watched. It can be split by age, gender, country, region, platform or device, and cut into a daily or monthly series.
  • Why something is not delivering: its status in words, the issues Meta reports, why an ad was rejected, and an ad set's learning stage.
  • Ad by ad, with what each ad shows beside its results and Meta's three rankings.
  • Which ads look worn out, how the live budgets are being spent, and which ad sets are still learning.
  • A boosted post, its paid figures beside its organic ones.
  • The change history of the ad account: who changed what, in Ads Manager or here.
  • The comments on your ads. Replying and hiding use the same requests as for any other comment: see Comments.

What is this server's arithmetic ​

The figures are Meta's. Some judgements are not:

  • "Wearing out", "ahead of pace" and "behind pace" are this server's own rules of thumb. The answer states the rule beside Meta's figures. Do not read them as Meta's verdict.
  • Reach counts people, so it is never added up across ads or days.
  • An A/B test's report names no winner, because Meta's API gives none. Compare the sides on the cost of the result you want.

Reports cost calls

Meta limits how many calls an app may make for an ad account in an hour. Ask for one report with the level and split you need, not one question per campaign. When Meta refuses for that reason, the answer says how long to wait.

Building a campaign ​

A Meta campaign has four parts, made in this order. Each is made paused.

  1. The campaign: a name and an objective (awareness, traffic, engagement, leads, app promotion or sales).
  2. The ad set: who sees the ads, where, when, what Meta optimises for, and the budget unless the campaign holds it.
  3. The creative: what the ad shows. One image or video from your media library, or a carousel, with the text, the button and the link. Or a post that already exists.
  4. The ad: that creative in that ad set.

Build a Meta leads campaign for Acme's accounting course, for people 25 to 45 in Riyadh and Jeddah, 80 SAR a day until the end of the month. Show me everything before you create it.

The AI client shows you each part before it is made. What to look at:

  • The ad set's preview shows the targeting as it will be sent, Meta's estimate of the audience size, a warning when the audience is very small, and the most the budget could spend.
  • Special ad categories. Meta requires you to declare ads about jobs, housing, credit or financial products, politics, or gambling. The AI client asks you; it does not assume.
  • An end date. While Longest an ad set may run, days is set, an ad set made here needs an end date. "Runs until someone pauses it" is refused.
  • Targeting beyond what you gave is off unless you ask for it.

Two things about the preview:

  • A campaign, an ad set and an ad are checked by Meta in the preview, without anything being created. For an ad, that includes Meta's review of the text and picture.
  • A creative's preview is this server's own check only. No file is uploaded until you say go ahead, so Meta has nothing to look at yet. Meta checks it when the ad is made.

A creative cannot be edited afterwards. To change what an ad shows, make a new creative and put it on the ad.

For a lead ad the form comes first: see Leads.

Boosting a post ​

To advertise a post that already exists, on your Facebook Page or your Instagram account:

Boost yesterday's Facebook post about the open day to people in Kuwait for 5 days, 10 USD a day.

One step makes the campaign, the ad set and the ad, all paused. The ad is the post itself, with its likes and comments. The goal is engagement unless you ask for awareness or video views.

  • A boost follows every rule of an ad set: the same limits, the same end date, the same targeting checks.
  • Its preview is this server's own check. It shows the post, the targeting, Meta's estimate of the audience and the most the budget could spend.
  • If Meta refuses a step while it is being made, what the boost had made is removed again, and the answer says so.

You can also ask for a Page post that appears on no timeline and exists only to be advertised, when several ads should share one post. It does not count as one of the day's posts.

Previews ​

Before an ad runs, look at it:

Show me how the new ad looks in the Facebook feed and in Instagram stories.

You get links, one for each placement, that show the ad as people would see it.

A preview is also a condition. While Require a preview before an ad is switched on is ticked (it is by default, under Meta ad spend limits in Safety limits), an ad can be switched on only by someone who has had it previewed in the last 24 hours. That holds for ads made in Ads Manager too, and for every ad that would start running under a campaign or an ad set you switch on.

The reason: a paused ad costs nothing, a running one does, and the person who starts the spending should have seen what it shows.

Switching on ​

Switching on is the only way spending starts, and nothing else does it. It is never done as part of another request.

Switch on the "Spring offer" campaign.

The AI client first shows you a preview, checked by Meta:

  • the budgets that would start spending;
  • the most it could spend: 1.75 times the daily budgets on one day, seven times them in a week, and a lifetime budget in full;
  • the ads that would run;
  • what the ad account's active daily budgets would total afterwards.

Only after you confirm is it switched on.

Three checks are made before anything is sent, and each can refuse:

  • Each budget against its limit. A budget made in Ads Manager above your limit cannot be started from here.
  • The account's total. The daily budgets already running on the ad account plus the ones about to start must stay under Highest total of active daily budgets on one account. A lifetime budget is not part of that total, and the preview says so.
  • The preview, as above.

Pausing is the off switch. It can be undone.

Budgets ​

Raise the daily budget of the "Spring offer" ad set to 120 SAR.

Lower all three campaigns to 50 USD a day.

A budget is changed where it is held: on the campaign, or on the ad set. A daily budget stays daily and a lifetime budget stays lifetime. A bid and an ad set's end date are changed the same way.

A raise is held to four limits: the highest daily or lifetime budget, the largest increase in one call, the account's total of active daily budgets, and the longest an ad set may run.

Lowering is never refused by the increase limit or by the account's total. Those two stop raises only: refusing a reduction would just keep the higher spend in place. The new amount still has to be under the highest budget for the currency, and above the minimum Meta sets for the ad account.

You can also raise a daily budget for a period, such as a sale weekend, after which it goes back by itself. That counts as a raise and passes the same limits. Once made, such a period cannot be changed or removed from here.

To follow a month's spend against your own plan, see Budgets and alerts.

Editing and copying ​

Rename the campaign to "Acme - Ramadan 2027".

Change the ad set's targeting to add Dammam. Keep everything else.

Copy the "Spring offer" ad set into the new campaign.

Editing changes what Meta lets change, and the preview is checked by Meta:

  • a campaign's name and its special ad categories;
  • an ad set's name, targeting, start, attribution windows, frequency cap and hours;
  • an ad's name, its creative and the pixel that tracks it.

Editing is not a second way to spend. No edit takes a status or a budget.

  • Targeting is replaced whole. The AI client sends all of it, not only the part that changes. On a running ad set, a change of targeting restarts Meta's learning.
  • A new creative on an ad sends the ad back through Meta's review. On an ad that is switched on, the new creative needs a preview first.
  • What is fixed at creation (an objective, what an ad set optimises for) is changed by copying.

A copy is always paused. It carries its source's budget, which is checked when the copy is switched on. Meta copies at most three ads under a campaign or an ad set in one step; for more, the parts are copied one at a time.

Labels can be put on campaigns, ad sets and ads, or taken off, to group them.

Bulk changes ​

Pause every ad set in the "Spring offer" campaign.

Up to 25 campaigns, ad sets or ads of one kind can be paused or archived in one request, or have their budget, bid or end date changed. Each item is checked by itself, by the same rules as a single change, and has its own row in the activity log. One item refused does not stop the others, and the answer lists every item with its result.

A bulk change cannot switch anything on and cannot delete. Each of those stays a single, confirmed request.

Deleting ​

Prefer pausing. A paused campaign costs nothing and can be switched on again.

  • Archiving cannot be undone, but keeps the results.
  • Deleting cannot be undone. It asks twice: the preview, then a separate, explicit confirmation that you want it deleted. The AI client deletes only when you asked for a delete.

Delete the test campaign "Draft 3". Yes, delete it for good.

An audience can be deleted the same way. It is refused while a running ad set uses the audience or a lookalike was built from it, because Meta stops for good the ads that use a deleted audience. A lead form cannot be deleted at all, only archived: Meta has no delete for one.

Creative enhancements ​

Meta can change an ad by itself: rewrite the text, crop or retouch the image, add an overlay, translate it. Here every ad is sent with all of these refused, by name.

To let a request ask for one:

  1. Open Safety limits.
  2. Under Meta ad spend limits, tick Let a call switch on Meta's creative enhancements.
  3. Press Save ad spend limits.

Even then an enhancement is on only when you ask for that one by name. The rest stay refused.

Chat ads ​

An ad can open a chat instead of a website: on WhatsApp, Messenger or Instagram Direct.

Make an ad that opens a WhatsApp chat with us, with the greeting "Hello, how can we help?" and two quick questions people can tap.

The ad set and the creative both name the same app. The button and the link are then set for you, and a creative that leads anywhere else is refused. The welcome message can hold a greeting, up to four questions to tap, or on WhatsApp a message already typed for the person.

For WhatsApp, the Page needs a WhatsApp number linked. Reports show the conversations started and the cost of each.

Automated rules ​

An automated rule is Meta's own: on a schedule, Meta checks your campaigns, ad sets or ads against conditions and acts.

Make a rule that pauses any ad that spent more than 200 SAR in the last 7 days with a click rate under 0.5%.

  • A rule made here can only pause or notify. A rule that switches things on or changes a budget would act with nobody confirming it, and is not offered.
  • A rule is created disabled. Enabling it is its own step, after you have seen what it does.
  • A rule made in Ads Manager that does more than pause or notify can be disabled from here, but not enabled.

These are different from this server's own alert rules, which only tell you: see Budgets and alerts.

A/B tests ​

Set up an A/B test between the two ad sets for the first two weeks of next month.

A test names two to five campaigns or ad sets that already exist. For its duration Meta divides the audience evenly between them. Creating one switches nothing on and changes no budget. Its preview is this server's own check.

The account spending limit ​

An ad account has a spending limit of its own at Meta: the total it may spend, after which Meta stops every ad on it. It is separate from the limits on Safety limits.

  • Anyone can ask what the account has spent, what it owes and how much is left before that limit. Totals only: payment methods and invoices are not read.
  • Only an administrator of this installation can set or remove it. A limit at or below what the account has already spent stops everything at once, and the preview says how much is left. Removing it asks twice.