How to track leads from Meta ads on Facebook and Instagram.

Ads Manager counts clicks for you. Knowing which ads bring enquiries takes a little setup on your site and in each ad, done before the campaign starts.

Updated 12 October 2026

Tag every ad link

To track leads from Meta ads, start with the link. Add utm tags to every ad's website address, so each visit carries the campaign and the ad it came from into your analytics and, if your form saves them, into the enquiry itself.

Without tags, ad visits look like ordinary Facebook or Instagram traffic, and some arrive with no source at all because the apps open links in their own browser. You cannot tell a paid visit from someone who tapped a link in a post. Meta's instant forms are the exception: leads from them stay inside Meta with the campaign and ad already attached. The tags are for ads that send people to your website.

Let Ads Manager fill in the names

You do not need to build a different link for each ad. Paste the same text into the URL parameters field in each ad's tracking settings:

utm_source={{site_source_name}}&utm_medium=paid&utm_campaign={{campaign.name}}&utm_content={{ad.name}}&utm_term={{adset.name}}

Ads Manager fills in the placeholders at each click. The source becomes fb for Facebook, ig for Instagram, msg for Messenger or an for Audience Network, and the campaign, ad set and ad names are whatever you called them. So name campaigns and ads for the report you will read later, for example spring-whitening and video-before-after. Keep names short and free of spaces, because spaces and symbols turn into codes in the page address.

Count enquiries instead of clicks

A click only means someone tapped. Some close the page before it loads, and an ad with cheap clicks can bring no enquiries at all. Count enquiries, per campaign and per ad, and later mark how each one ended: booked, quoted, not a fit or no reply. An ad that brings fewer enquiries but more bookings is the better ad.

Have your form save the utm values in hidden fields, so every enquiry reaches your inbox or customer records with its campaign and ad attached. This works best when the ad lands on one page with the form on it, as a landing page built for ads does, because the tags are still in the address when the form is sent.

Send a Lead event, after consent

The Meta pixel is a script on your site that reports visits and actions to Meta. Send a Lead event only when an enquiry has really gone through, such as when the thank-you message appears, so Meta learns which clicks turn into enquiries.

Where the law requires consent for tracking, the pixel must not load until the visitor agrees. Visitors who say no are missing from Meta's numbers but not from your own records, which is one more reason to count enquiries yourself. Keep the content of the form out of what you send: Meta does not need the message, and Meta's Business Tools Terms do not allow health or financial details.

Add the Conversions API with one event ID

The Conversions API is the server-side copy of the same events. When an enquiry arrives, your server sends the Lead event to Meta directly, so it still counts when an ad blocker or browser privacy settings stop the pixel.

Give each enquiry one event ID and send it with both copies. Meta matches the browser event and the server event by event name and ID, and counts the enquiry once instead of twice. The consent rules apply to the server copy too: if a visitor said no to tracking, send neither copy.

Read results per campaign and per ad

Put two sources side by side: Ads Manager for what each campaign and ad cost, and your own records for the enquiries and bookings each one brought. The breakdown by platform in Ads Manager compares Facebook, Instagram and the other placements.

They will not match exactly. Meta can credit an ad with an enquiry from someone who saw it and came back later another way, while your records only know the tagged click. Decide which ads to keep from your own records, and use Ads Manager for cost and reach.

Give each test a fair run

A new ad set starts in a learning phase, and results jump around while Meta works out who to show it to. Judging an ad on its first few enquiries is mostly judging luck.

Before you start, decide what you are testing, how much you will spend, how long it runs and what result counts as a win. Change one thing per test, such as the image or the first line, and avoid big edits halfway: they send the ad set back into learning.

If the page itself is not ready, start with before you run ads. An automation can copy each enquiry and its tags into your customer records, so nobody does it by hand.