In this article · 17 sections
- What Meta Ads is and how it works for an online store
- How much Facebook ads cost: work back from the order
- What to have ready before your first ad
- Meta Pixel and Conversions API in CloudCart: the setup
- A Facebook catalog from your store: the feed for dynamic ads
- Which campaigns to run: a structure for a small or mid-sized store
- Audiences: broad, your customer list and Lookalike
- What Advantage+ Shopping (Advantage+ sales) is and when it works
- Retargeting and dynamic catalog ads: step by step
- Ads that sell: formats, video and copy
- Why the mobile version of your store decides the cost per purchase
- How to tell if your ads make money: metrics and UTM
- How an AI assistant helps with Facebook ads
- Facebook, Google Ads or TikTok: which suits which store
- Meta ads for Black Friday and Christmas
- 7 Facebook ads mistakes to avoid
- Frequently asked questions
In short: Facebook and Instagram ads (Meta Ads) sell for an online store when three things are in place: a Meta Pixel with the Conversions API that reports purchases, a product catalog for dynamic ads, and a budget worked back from the order. Your budget follows from the most you can pay per purchase. With a €45 average order and a 40% margin, that is €18.
Written by the CloudCart team, the Bulgarian ecommerce platform, for stores selling in or from Bulgaria and across the EU. CloudCart facts come from the platform documentation and the Sales channels and Pricing pages.
What Meta Ads is and how it works for an online store
Meta Ads is Meta's advertising system for Facebook, Instagram, Messenger, Threads and the Audience Network of partner apps. You run it in Ads Manager, with a business portfolio in Meta Business, a Facebook Page and an ad account.
On Google people search; on Facebook and Instagram they scroll and the ad sparks the want. So Meta works best for products bought with the eyes: clothing, cosmetics, home decor, gifts, food and drinks, sporting goods.
Meta's algorithm learns from your store's events (views, add to cart, purchases), so the pixel and catalog come before creative and budget. A campaign has three levels: the campaign (objective, for example Sales), the ad set (audience, budget, placements, optimization event) and the ad (image, video or catalog, text and link).
How much Facebook ads cost: work back from the order
Facebook ads cost whatever budget you set. Meta charges no monthly fee, and impressions and clicks are priced in an auction. The useful question is how much you can pay for one purchase without losing money.
- Average order value. Revenue for 90 days divided by the number of orders. Example: €45.
- Gross margin. What is left after the product, shipping and packaging. Example: 40%, or €18 per order.
- Maximum cost per purchase (CPA). The profit per order before ads: €18. Above it, every sale from ads loses money.
- Break-even ROAS. 1 ÷ margin = 1 ÷ 0.4 = 2.5. ROAS (return on ad spend) is ad revenue divided by ad spend. Below 2.5 you lose, above it you profit.
- Learning budget. An ad set exits the learning phase after about 50 optimization events in 7 days (Meta Business Help: the learning phase). At €15 per purchase, that is about €750 a week for one ad set.
| Average order | Margin | Max cost per purchase | Break-even ROAS | Weekly budget for 50 purchases at 80% of max CPA |
|---|---|---|---|---|
| €25 | 50% | €12.50 | 2.0 | €500 |
| €45 | 40% | €18 | 2.5 | €720 |
| €80 | 35% | €28 | 2.9 | €1,120 |
| €150 | 30% | €45 | 3.3 | €1,800 |
With €15 to €30 a day, run one campaign with one ad set and a broad audience. Below 10 purchases a week, optimize for InitiateCheckout until volume grows.
Important: in November and December more advertisers bid for the same people and impressions cost more. Your maximum cost per purchase does not change, so cut back any campaign that stays below break-even ROAS for 3 days in a row.
What to have ready before your first ad
Before the first ad you need a business portfolio, a pixel that reports purchases, a catalog and a fast mobile product page.
- Meta Business and an ad account. At business.facebook.com create a business portfolio, add the Facebook Page, connect Instagram and open an ad account in euros.
- A pixel (dataset) in Events Manager. Create it once and note the numeric Pixel ID, then verify your store's domain in the business settings.
- A cookie banner. Without consent the visitor is not tracked. In CloudCart the banner is in Apps → GDPR → Cookies; see the guide to GDPR and cookies in CloudCart.
- A catalog in Commerce Manager. Products with price, availability and image. Without it there are no dynamic ads.
- The mobile product page. Image, price, delivery and the buy button visible on a phone without scrolling.
For Bulgarian shoppers a smooth checkout means delivery to an Econt or Speedy office (the two main Bulgarian courier networks) or a BOX NOW parcel locker, chosen right in checkout.
Meta Pixel and Conversions API in CloudCart: the setup
The Meta Pixel is code in your store that tells Meta what a visitor does. The Conversions API (CAPI) sends the same events from the store's server, so the purchase reaches Meta even when the browser blocks the pixel (Meta Business Help: Conversions API).
CloudCart sends the standard events PageView, ViewContent, Search, AddToCart, AddToWishlist, InitiateCheckout and Purchase by itself, with value, currency and products. The browser and server events share one event ID, so Meta does not count a purchase twice.
- Open the settings. In the admin: Apps → XML Feed → Facebook → Settings.
- Facebook Pixel ID. Paste only the number from Events Manager.
- Access Token. In Events Manager: Settings → Conversions API → Generate access token. Paste it into the field.
- Enable CAPI. Turn on the switch and save.
- Test. Paste the code from Events Manager → Test events into Test Event Code. Open the store in a browser where you are not signed in to the admin, since admin sessions send no events, and place a test order.
- Clear the test code. Delete it and save. While it is filled in, real events arrive as test events and are not counted.
The Conversions API in CloudCart is a separately paid service: in the feature table on the pricing page it is not included in Baby Pack, Starter Pack, CC Pro or CC Master. The browser pixel works on every plan and sends the same events.
Important: the pixel and CAPI fire only after the visitor accepts the advertising (Targeting) cookie group. An order entered by hand in the admin or through the API does not send a Purchase event to Meta.
A Facebook catalog from your store: the feed for dynamic ads
A Facebook catalog is your product list in Commerce Manager: title, description, price, image, link and availability (Meta Business Help: catalogs). Dynamic ads, Instagram product tags and Advantage+ catalog ads are built from it. In CloudCart the catalog is an XML feed that CloudCart regenerates every 2 hours.
- A Google category on every category. In Products → Categories, set the Google Product Taxonomy category. The Meta feed reads it from there.
- Switch on the feed. Apps → XML Feed → Facebook. Include all products or filter by category, brand, product, tag or selection, with or without out-of-stock and hidden products.
- Add the feed URL in Commerce Manager. Catalog → Data sources → Data feed → Scheduled feed, updated daily or hourly.
- Connect the pixel to the catalog in Commerce Manager → Catalog → Events, and check Issues for products with no image, no price or a policy rejection.
On CC Master ("Variants in listing" on /pricing), variants go in as separate items under one item group ID, so the ad shows the exact red size M the shopper viewed. On the other plans each product is one item.
| Plan (billed annually, excl. VAT) | Price per month | Products in Facebook Dynamic Ads |
|---|---|---|
| Baby Pack | €14 | 100 |
| Starter Pack | €33 | 2,000 |
| CC Pro | €83 | 7,500 |
| CC Master | €249 | 10,000 |
The same catalog also feeds Google Shopping, eMAG (a marketplace in Bulgaria and Romania), Pazaruvaj (a Bulgarian price comparison site) and more than 30 other channels on Sales channels.
Which campaigns to run: a structure for a small or mid-sized store
Three campaigns are enough: new customers, product retargeting and, with a few hundred customers, bringing buyers back. More campaigns split the budget and slow learning.
| Campaign | Audience | Ads | Share of budget |
|---|---|---|---|
| New customers (Advantage+ sales) | Broad, your country, no interests | 3 to 6 videos and images plus the catalog | 60 to 70% |
| Product retargeting | Viewed or added to cart in 14 days, minus buyers of the last 7 days | Dynamic catalog ad | 20 to 30% |
| Bring back buyers | Bought 30 to 180 days ago | New collection, a matching product, a code | up to 10% |
Use the Sales objective, Purchase as the optimization event and Advantage+ placements everywhere. Past buyers come back more cheaply by email, so most of that work belongs in the automated emails of Marketing Suite in Marketing → Campaigns.
Audiences: broad, your customer list and Lookalike
For new customers, the broad audience (Advantage+ audience, country and age only) usually wins. Customer lists and Lookalikes (people resembling your buyers; 1% is the closest match) still help as a hint and for exclusions.
- Filter in the store. In CloudCart open Customers and filter those who accept marketing messages.
- Export. Export customers downloads a CSV; the store asks for a two-factor code because the file holds personal data.
- Upload to Meta as a Customer list audience, and refresh it monthly.
- Lookalike. Create a 1% Lookalike for Bulgaria or your target country. The source needs at least 100 people from one country.
Important: only customers with marketing consent go into the Meta list. People who unsubscribed from your emails never go into an ad audience.
What Advantage+ Shopping (Advantage+ sales) is and when it works
Advantage+ sales, formerly Advantage+ Shopping, is a campaign where Meta's AI picks the audience, placements and creative mix for Sales (Meta Business Help: Advantage+ sales). You supply creatives, catalog, budget and country.
- Use it with: a working pixel with CAPI, a catalog, 5 or more creatives and budget for at least 10 to 20 purchases a week.
- Wait if: the store has no purchases yet, you have one or two creatives, or the product is for a very narrow group.
- Save money: if your account offers it, define your existing customers and cap their share of budget, so you do not pay for people who would buy anyway.
Retargeting and dynamic catalog ads: step by step
A dynamic catalog ad shows past visitors the products they viewed or left in the cart, at today's price from the feed.
- Audience. Custom audience → Website: ViewContent and AddToCart in the last 14 days, plus a "Purchase, 7 days" audience to exclude.
- Campaign. Sales objective with Catalog switched on.
- Ad set. "Retarget products", excluding the purchase audience.
- Ad. A catalog carousel with the benefit and delivery terms in the text, for example "Next-day delivery to your nearest Econt office".
- Budget. 20 to 30% of the total; a small store's retargeting audience fills up fast and frequency climbs.
Abandoned cart emails and Viber messages reach shoppers who left contact details; the ad reaches the rest.
Ads that sell: formats, video and copy
Since Meta decides who sees the ad, a new video often lowers cost per purchase more than any audience change. Use 9:16 video for Reels and Stories, 4:5 images, carousels for sets and catalog ads for retargeting.
- The first 2 to 3 seconds: product and benefit straight away, no logo intro.
- A new creative every 2 to 4 weeks: when frequency rises and clicks fall, the audience has seen enough.
- Product photos: clean background, several angles. Aura Studio in CloudCart writes product descriptions and reads color and material from the photo.
Why the mobile version of your store decides the cost per purchase
Almost all Instagram and Facebook traffic is on phones, and a slow product page turns paid clicks into no orders.
The Analytics → Sessions by device type report in CloudCart shows your mobile, desktop and tablet shares against the previous period. If mobile's share of sessions is far above its share of orders, the problem is the mobile cart, and the ad is fine. Check your top product in PageSpeed Insights: Google rates a main content load (LCP) up to 2.5 seconds as good (web.dev: Largest Contentful Paint). The full checklist is in the guide to the mobile version of an online store.
How to tell if your ads make money: metrics and UTM
Ads make money when ROAS is above your break-even ROAS. Meta attributes purchases by its own model, usually up to 7 days after a click and 1 day after a view, so check its numbers against your store's orders.
- UTM in the ad. In the URL parameters field enter
utm_source=facebook&utm_medium=cpc&utm_campaign={{campaign.name}}. - The CloudCart report. In Analytics, Sales by source / medium groups orders by
facebook / cpcand by campaign, with revenue and order count. - Reconcile. Some gap is normal (Meta counts view-through purchases); a large, growing gap usually means the pixel or CAPI is not sending everything. For GA4, see the guide to GA4 and Google Tag Manager.
| Metric | What it tells you | Decision |
|---|---|---|
| ROAS | Ad revenue ÷ spend | Below break-even 3 days running: new creative or lower budget |
| Cost per purchase | Spend ÷ purchases | Above your maximum: pause the ad set |
| Frequency | Times one person saw the ad | Rising while CTR falls: new creative |
| Event Match Quality | How well Meta matches events to people, 0 to 10 | Low: check that CAPI is on; CloudCart's server event sends hashed email, phone and address when available |
How an AI assistant helps with Facebook ads
An AI assistant connected to your store takes over catalog checks and the weekly math. In CloudCart, Claude Code, ChatGPT Codex, Gemini CLI, Cursor or VS Code connect with one sentence and a key from Settings → PAT Tokens, and you write in plain English what you need.
- Catalog before the feed: "Show me products with no image, no description or no Google category."
- What to advertise: "Which 20 products had the most orders in 60 days and have at least 10 units in stock?"
- Real ROAS: "Here is this week's Ads Manager export. Divide revenue from orders with UTM facebook by spend, per campaign, and flag any campaign above €18 per order." CloudCart orders keep UTM source, medium and campaign, so this works from your own data.
The PAT token can be Read Only, with an expiry and allowed IP addresses, and the assistant changes anything only with a write token and after your yes. See AI in an online store.
Facebook, Google Ads or TikTok: which suits which store
Google Ads captures demand that already exists; Meta and TikTok create it. Most stores combine Google Shopping for searchers with Meta for discovery and retargeting.
| Meta (Facebook, Instagram) | Google Ads and Shopping | TikTok | |
|---|---|---|---|
| Intent | Browsing, the ad sparks the want | Searching, the ad answers | Watching, the ad entertains and shows |
| Strong products | Visual, new, gifts, impulse buys | Known products, spare parts, brands | Cosmetics, fashion, gadgets |
| In CloudCart | Apps → XML Feed → Facebook | Apps → XML Feed → Google | Apps → TikTok Dynamic Ads, TikTok Ads, TikTok Shop |
Meta ads for Black Friday and Christmas
Black Friday is the last Friday of November. Build audiences from early November, because that week impressions cost the most.
- Four to two weeks before: brand and product video to a broad audience, to fill your retargeting audiences.
- The week before: check pixel, CAPI and catalog; raise the new-customer budget by about 20% every few days so learning does not restart.
- Black Friday week: the sale price in the store and the catalog, so dynamic ads show it; more budget to retargeting.
- December: gifts by price, gift vouchers and the last day to order for delivery before the holidays.
The full checklist is on the Black Friday in CloudCart page.
7 Facebook ads mistakes to avoid
- Boosting a post instead of a Sales campaign: Boost usually optimizes for engagement.
- A pixel with no Purchase: Meta then optimizes for clicks. Test with an order outside the admin.
- A forgotten Test Event Code: real purchases are not counted.
- Many tiny ad sets: five at €5 a day never leave learning; one at €25 does.
- Daily changes: big edits restart learning. Judge after 3 to 7 days.
- Retargeting buyers or sending ads to a slow mobile page.
- Decisions on Meta's report alone, without your
facebook / cpcorders and margin.
Frequently asked questions
As much as the budget you set: Meta has no monthly fee and impressions are priced in an auction. Work out your maximum cost per purchase as average order times margin, for example €45 × 40% = €18. To leave learning, an ad set needs about 50 purchases in 7 days.
Create a business portfolio and ad account, add the pixel to your store and the catalog in Commerce Manager. In Ads Manager choose Sales, the Purchase event, a broad audience for your country, automatic placements and 3 to 6 creatives, then judge after 3 to 7 days.
Browsers and ad blockers stop some pixel events. The Conversions API sends the purchase from the store's server, so Meta still gets it when the customer accepted advertising cookies. Also check that no Test Event Code is left and that you test outside the admin.
Advantage+ Shopping, now Advantage+ sales, is a campaign where Meta's AI picks audience, placements and creatives for Sales. It works best with an accurate pixel, a catalog and 10 to 20 purchases a week; a new store should start with a standard sales campaign.
One campaign covers both. With automatic placements Meta splits the budget by cost per purchase. Separate Instagram only for creative made entirely for Reels and Stories.
Questions about the pixel, the catalog or the Conversions API in your CloudCart store? Write to support@cloudcart.com.
Sources
- Meta Business Help: the learning phasewww.facebook.com
- Meta Business Help: Conversions APIwww.facebook.com
- Meta Business Help: catalogswww.facebook.com
- Meta Business Help: Advantage+ saleswww.facebook.com
- web.dev: Largest Contentful Paintweb.dev
