How to Create a Custom Conversion in Meta Ads Without Code

8 min readTracking, Attribution, Conversion rate

A custom conversion is a rule in Meta Events Manager that counts visits to one page, usually the thank-you page people reach after a form or a checkout, as a conversion. It works from what your pixel base code already sends, so no code is needed. Create it under Custom conversions: choose your pixel, set the rule to URL contains with a piece of the address only that page has, name it and pick the event type it counts as. Then complete the action yourself and compare its count with your own records before you let an ad set optimize for it.

You have a website, the Meta pixel is installed, and Events Manager shows page views. What it does not show is the action you are paying for: the booking that went through, the quote request that was actually sent, the order that completed. The base pixel code records a page view every time a page loads. A lead or purchase event arrives only if something sends one, such as code added to the site or your store or booking tool. A custom conversion gets you that count without touching the site, as long as the action ends on a page of its own. The Meta Business Help Center pages cited below were read on September 10, 2026, and Meta's developer documentation on September 13, 2026.

What a custom conversion is, and what it needs from your site

It is a rule, not a new kind of tracking. Meta's developer documentation says custom conversions are created entirely within Events Manager and let you define visitor actions based on unique strings in your website addresses. Its own example is the case this article is about: people who subscribe to a mailing list land on a thank-you page, and a custom conversion tracks visitors who viewed any page with /thank-you in its address. The pixel keeps sending exactly what it sent before, and the rule decides which of those visits count as the conversion.

That leaves two requirements, and a custom conversion stuck at zero has usually missed one of them. The first is the pixel on the page where the action ends: no base code on the thank-you page means no page view from it, and the rule has nothing to match. Meta's guidance puts the order plainly: create and install the pixel on your website first, then set up standard events, and only then create custom conversions. The second is an address of its own. If your form thanks people with a message on the same page, the address never changes and no rule can tell a submission from a visit. Many form and booking tools have a setting that sends people to a page of your choice after they submit, and turning it on is a settings change rather than a code job. What that confirmation page should say to the person who lands on it is covered at aevin.dev/blog/landing-page-for-facebook-ads.

Everything in this article hangs on one page that only people who completed the action ever see. Find that page before you open Events Manager, and the rest is a few minutes of work.

Custom conversion or standard event: which one you need

Meta's developer documentation describes standard events as predefined visitor actions that correspond to common, conversion-related activities, such as viewing or purchasing a product. If your store, booking tool or site integration already sends one for your action, a lead, a purchase, a scheduled appointment, you usually do not need a rule on top of it: optimize for the event you already have. So before you build anything, open your pixel in Events Manager and look at which events actually arrive. A custom conversion is for the common small business case where page views are all there is.

Your situationWhat to use
Only page views arrive, and the action ends on its own thank-you pageA custom conversion with a URL rule
Your store, booking tool or developer already sends Lead, Purchase or another standard event for itThat standard event, with no rule on top
The form confirms on the same page, so the address never changesA thank-you page first, then the rule
The action happens after the website: a phone booking, a qualified lead, a deal closed in your CRMServer-side events, as a separate project
The lead comes from an instant form inside Facebook or InstagramNo rule: there is no page on your site to match

Before Events Manager: pick the piece of the address

Submit your own form, or book a test appointment, exactly the way a customer would. When the confirmation page loads, copy its address from the browser bar. You want a fragment of it rather than the whole thing, because a full address often carries extras that change from visit to visit: campaign tags after a question mark, an order number, a trailing slash. A URL contains rule only needs the fragment to appear somewhere in the address, so those extras break nothing. Before you use the fragment, put it through four checks.

  • It appears in that page's address and in no other address on your site. /thank-you also matches a blog post at /blog/thank-you-notes-for-clients, and every visit to that post would count as a conversion.
  • It is more than what every address has. A lone slash appears in the address of every page, and so do https and www on most sites, so a rule built on one of them fires on every visit and looks like a campaign that suddenly started working.
  • It belongs to one action. If the contact form and the booking form share a thank-you page, the rule counts both as the same thing. Give each form its own page if you want to optimize for them separately.
  • Nobody reaches the page without completing the action. A thank-you page linked from the menu or the footer collects visits from people who never submitted anything.

Creating a custom conversion in Events Manager, step by step

  1. 1.Go to Meta Events Manager and select the account you want to use.
  2. 2.Click Custom conversions in the left menu, then click Create custom conversion.
  3. 3.Choose your website's pixel as the source of events. The rule can only read what that pixel sends.
  4. 4.Add the rule: choose URL contains and enter the fragment you picked, for example /thank-you.
  5. 5.Name it after the action, not the page: Booking Confirmed or Quote Request Sent rather than TY Page. The name is how you will recognize it months from now, when nobody remembers which page was which.
  6. 6.Pick the event type that describes the action, such as Lead for an inquiry, Schedule for a booking or Purchase for an order. That is the type of conversion it reports as, so a booking should not go in as a purchase.
  7. 7.Leave the value empty unless every completion is worth about the same amount, for the reason in the next section. Then create it.
  8. 8.Go through the action yourself once more, from the page your ad sends people to all the way to the thank-you page, so there is a fresh visit to look for.

One limit is worth knowing before you start making one per landing page out of habit. Meta's developer documentation sets the maximum at 100 custom conversions per ad account. That is plenty for a small business, but a duplicate created because nobody checked the list takes one of the hundred just the same as a useful one.

The value box, and when to fill it in

The value is optional. Meta's help pages describe a box you can check to enter a conversion value, and the API reference is exact about what that number becomes: when a conversion is URL based, it is the default conversion value associated to each conversion. A thank-you page with only the base pixel code sends no amount of its own, so every visit the rule counts carries that same figure.

That makes a value honest in one situation: every completion is worth about the same. A fixed-price service, a consultation you can price from your own records, a single-product checkout. Enter that figure and the conversion carries a money amount instead of a bare count. When order sizes vary, a fixed number is a guess stamped on every conversion. It cannot tell a $40 order from a $400 one, which leaves value-based bidding nothing real to rank, and sending the actual amount with the event is what fixes that: a code or integration job. Whether to steer by the lead or by the sale behind it is a separate decision, worked through at aevin.dev/blog/cost-per-lead-vs-cost-per-acquisition.

Check it counts real visits before you trust it

A rule that saves without an error is not yet a rule that works. Run three checks: two right away and one the next day.

  1. 1.Open Test Events in Events Manager, go through the action on your site the way a customer would, and watch for the page view from the thank-you page. If it never arrives, the problem is the pixel on that page, and no change to the rule will fix it.
  2. 2.Do it again on a phone over mobile data, and check that the confirmation address there still contains your fragment.
  3. 3.The next day, compare what Meta reports for the custom conversion with something you count by hand for the same day: confirmation emails, bookings in your calendar, orders in your store.
What you seeMost likely causeWhat to do
Zero, and Test Events never showed the page viewThe pixel is not on the thank-you pageFix the pixel on that page; the rule is not the problem
Zero, although Test Events showed the page viewThe fragment is not in the real address, or reporting has not caught up yetCopy the address again from a real submission, and give reporting a day
Far more than your own recordsThe fragment matches other pages, the page is reachable without converting, or one visit sends several events that each match the ruleSearch your site for the fragment, and check in Test Events how many events one visit sends
Somewhat fewer than your own recordsVisits the browser never reported, and Ads Manager counting only conversions it credits to an adExpected within limits: watch whether the gap changes, not whether it closes

Do not try to make the two numbers identical. What matters is whether the gap holds steady while you change nothing, and why the counts never fully agree is covered at aevin.dev/blog/how-to-read-facebook-ads-manager.

Pointing an ad set at it

Once it counts what you count, the custom conversion is ready to optimize for. Meta's developer documentation says custom conversions can be used to optimize ad campaigns. In Ads Manager that comes down to choosing it, by the name you gave it, as the conversion to optimize for when you set up a campaign that sends people to your website.

Timing matters more than the click. A conversion that has fired only a handful of times gives delivery very little to learn from. The calmer order is to let it count alongside your current optimization first, confirm it matches your records, and only then switch, changing nothing else in the same edit so that whatever happens next has one explanation. Which edits send an ad set back into learning, and what that costs, is covered at aevin.dev/blog/meta-ads-learning-phase.

When a URL rule is not enough

Some conversions never load a page you control. A booking taken over the phone. A lead your team marks as qualified a week after the form. A deal that closes in your CRM, or an order that gets refunded. A rule that reads website addresses sees none of them, and it cannot see visits the browser never reported either. Leads from instant forms sit outside it too, because people fill those in without leaving Facebook or Instagram. Conversions that happen after the website reach Meta by being sent from your own systems, a separate project with its own decisions, explained at aevin.dev/blog/facebook-conversions-api. And if the trouble is that instant form leads are not reaching your CRM at all, that is a delivery problem rather than a tracking one, diagnosed at aevin.dev/blog/facebook-lead-ads-not-showing-up.

Where Aevin fits, and where it does not

Aevin, our own product at $97, $197 and $497 a month, connects Meta, Google Ads and TikTok in one panel, and it creates the same kind of URL-based custom conversion without a trip to Events Manager. On its custom conversions screen you enter a name, a piece of the thank-you page address and what the conversion counts as, a lead unless you pick another event, and choose the pixel when there is more than one. Aevin writes the rule as a page view whose address contains your fragment, ignoring letter case, so each load of the page counts once even if the page sends other events too. It refuses a fragment that would match every page, such as a lone slash, https or www, and it lists the custom conversions the ad account already has, including ones made by hand in Events Manager, so you can check for a duplicate first. Three limits belong in the same paragraph. It does not set a value or a currency, so a conversion that needs a fixed value is one to create in Events Manager. It creates the conversion when you press the button, and only in an ad account you have given it permission to create in. And conversions that happen after the website are a different feature, sending conversions to Meta, which the pricing page lists on the Growth and Agency plans.

Do I need a developer to create a custom conversion in Meta Ads?

No, as long as the base pixel code is on your site and the action ends on a page with its own address. The rule is built in Events Manager from a piece of that address, and the page view the base code already records is all it needs. You need more only when the confirmation has no address of its own, which is often a form setting rather than code, or when the action happens away from the website.

Why does my new custom conversion show zero?

Check three things in order. Is the pixel on the thank-you page: Test Events should show a page view when you complete the action yourself. Is your fragment really in the address: copy it again from a real submission rather than from memory. Has reporting caught up: conversions can take a day or more to appear in Ads Manager, so a zero on the first day proves little.

Can I use a custom conversion to build an audience?

Meta's developer documentation says so: custom conversions can be used to define custom audiences as well as to optimize campaigns. For people who reached a thank-you page there is also a route that does not depend on the custom conversion at all: a website custom audience built on the same kind of rule, visitors whose page address contains your fragment. It is handy for keeping people who already converted out of an ad.

Should I set a conversion value if my order sizes vary?

Usually not. On a URL-based custom conversion the value is one default applied to each conversion, so every counted visit carries the same figure. That works when completions are worth about the same, and it misleads when a $40 order and a $400 order both show up as your average. Real amounts have to be sent with the event itself, which takes code or an integration.

How many custom conversions can one ad account have?

Meta's developer documentation puts the maximum at 100 per ad account, checked on September 13, 2026. Look through the list before creating another one, because a duplicate uses up the limit exactly like a useful conversion does.