Facebook ads lead tracking
Facebook ads lead tracking: see which ad brought each lead
Facebook ads lead tracking means knowing which campaign, ad set and ad brought each lead. Add URL parameters such as utm_campaign={{campaign.name}} and utm_content={{ad.name}} to every ad, send it to your landing page, and put the ownyourclick tag there. Each form fill lands in your Google Sheet with its ad and a hot %.
Works for ads that send people to your landing page, not Facebook instant forms.How to switch from instant forms →
7 days of Team, free. No card needed.
| Name | Source | UTM campaign | UTM term (ad set) | UTM content (ad) | platform | Hot % |
|---|---|---|---|---|---|---|
| Priya S. | Diwali batch | Chennai 25-34 | Reel - student story | ig | 84% | |
| Arjun K. | Diwali batch | Lookalike 1% | Carousel - syllabus | fb | 38% | |
| Meena R. | Webinar Oct | Retargeting 30d | Video - founder | ig | 71% |
Why doesn't Ads Manager tell you which ad brought which lead?
When people fill the form on your own landing page, Ads Manager reports how many results each ad got, by its own attribution, but not which person came from which ad. Your leads sit in your form tool or sheet without the ad next to them. So you can't tell whether the ad with the cheapest leads also brings the people who answer the phone and pay.
The fix is to carry the ad's name in the link, and record it with the lead when they fill the form.
How do you set it up?
- In ownyourclick, go to Pages → Add page, paste your landing page's address, and add the tag it gives you to the page's
<head>. - In Meta Ads Manager, open the ad. Under Destination, the website URL is your landing page's own address. In URL parameters (under Tracking), paste:
utm_source=facebook&utm_medium=paid_social&utm_campaign={{campaign.name}}&utm_term={{adset.name}}&utm_content={{ad.name}}&platform={{site_source_name}}- Meta replaces each
{{…}}with the campaign, ad set and ad name when someone clicks. Do it once per ad, or set it on every ad at once by selecting them and editing together. - Send a test lead from the ad's preview link. In your sheet it shows Source facebook and the campaign, ad set and ad.
Point the ad at your landing page's own address, as above, so every tag reaches the page. platform tells you where it ran: fb (Facebook), ig (Instagram), msg (Messenger) or an (Audience Network). platform, and any other parameter you add such as ad_id={{ad.id}}, is recorded with the lead and offered as a sheet column under From your links in Configure Sheets: tick it to add it.
How do Facebook lead form tracking parameters reach your form?
"Lead form" means two different things on Meta, and the tracking works differently for each:
- Your own form, on your landing page. Meta adds the ad's URL parameters to the address when someone clicks. The ownyourclick tag on the page reads them, and when the person fills your form they're saved with the lead: campaign, ad set, ad and platform.
- A Meta instant form (lead ad). Nobody visits your page, so there are no URL parameters to pass. Meta keeps the ad's details with the lead itself: its lead download has
ad_name,adset_name,campaign_nameandplatformcolumns. ownyourclick doesn't receive these leads.
To set the parameters, open the ad in Ads Manager, scroll to Tracking, and paste them into URL parameters (or use Build a URL parameter). Meta's dynamic parameters fill themselves in at each click:
| Parameter | Meta fills in |
|---|---|
{{campaign.name}} | The campaign's name |
{{adset.name}} | The ad set's name |
{{ad.name}} | The ad's name |
{{ad.id}}, {{adset.id}}, {{campaign.id}} | Their ids, which never change |
{{site_source_name}} | fb, ig, msg, an or th (Threads) |
{{placement}} | Where the ad was shown (its placement) |
Two things to know before you publish:
- Names are fixed when the ad is first published, Meta's help says. Rename a campaign or ad later and the parameter still carries the old name. Name them well before you publish, or add
ad_id={{ad.id}}as well. - Editing a live ad can restart its learning. Meta counts a change to an ad's creative as a significant edit, which can send the ad set back into the learning phase. So add the parameters when you create the ad, not later.
Leads that don't come from an ad work the same way: make one link with a source for every place you post. The short video on UTM links (2:46) shows it, from making the link to seeing each lead's source.
How do you switch from instant forms to your landing page?
Instant forms (lead ads) keep people inside Facebook, so your landing page never sees them. To have them land on your page instead:
- In Ads Manager, keep the Leads objective, and in the ad set choose Website as the conversion location instead of Instant forms. (A Sales or Traffic campaign pointing at your landing page works too.)
- In the ad, set the website URL to your landing page and add the URL parameters above.
- Make sure your landing page has the form, and the ownyourclick tag in its
<head>.
People then fill your own form, on your page, and every lead arrives with its ad, its hot % and everything they did on the page.
What do you see for each lead?
Each lead in your Google Sheet and on the page's Leads tab carries:
| Column | From |
|---|---|
| Source | utm_source: facebook |
| UTM campaign | {{campaign.name}} |
| UTM term | {{adset.name}} |
| UTM content | {{ad.name}} |
| platform | {{site_source_name}}: fb, ig, msg or an |
| Hot % | How they behaved on your page: time, scroll, clicks, visits |
Plus everything they typed in the form, their city, device and visit number, and a payment when they pay.
Which ad brings leads that actually buy?
Count isn't quality. Compare ads by what happens after the click:
- Hot %: filter the sheet by ad and see whose leads read your page and whose bounced. How the hot % works.
- Status: how many of each ad's leads reached Demo Booked or Enrolled.
- Payments: connect Razorpay, Dodo Payments or Stripe and each payment is matched to its lead, so you can see which ad brought paying customers.
ownyourclick doesn't import your ad spend. For cost per paying customer, divide the ad's spend in Ads Manager by its paying leads in your sheet.
Can you send leads and purchases back to Meta?
Yes. On a page's Meta ads tab (in beta), add your Pixel ID and choose the events to send: Page view, Lead and Purchase. Add a Conversions API access token and they're sent from the server as well, so Meta still gets them when a browser blocks the pixel.
Under When a lead's status changes, tell Meta, pick the statuses that send Purchase, Qualified lead, Schedule or Contact, so Meta learns which of your leads were good, not only how many there were. The same tab compares what ownyourclick recorded from your Meta ads, what it sent to Meta and what Meta accepted, and says why any are missing.
Does the same work for Google Ads and other channels?
Yes. Any link with UTMs works the same way: Google Ads, YouTube descriptions, WhatsApp broadcasts, email. Build them with the free UTM builder, which has a Meta preset with the parameters above.
Who tracks leads by source like this?
Epaphra
Creator · 1M+ subscribers
A creator with more than a million YouTube subscribers. He puts an ownyourclick UTM link under every video to see how each one performs, and which videos turn into sales.
Read their story →
Error Makes Clever
Edtech company
An edtech company. They see how many of their website's visitors turn into leads, source by source, and that tells them where to put their effort.
Read their story →
Questions
What do people ask?
Do ad-level UTMs pass back with Facebook instant forms (lead ads)?+
No. An instant form opens inside Facebook, so nobody reaches your page and the URL parameters aren't used. Meta's own lead download shows each lead's ad, ad set and campaign names instead. ownyourclick doesn't capture instant forms at all: for that, switch the ad set's conversion location to Website and point the ad at your landing page.
How do you check leads in Facebook ads?+
For instant forms, Ads Manager's Results column counts leads, and Leads Center in Meta Business Suite lists them. For ads that send people to your landing page, Ads Manager only counts results; with ownyourclick each lead is a row in your Google Sheet and on the page's Leads tab, with the ad that brought it.
How do you download leads from Facebook lead ads?+
Meta lets you download instant-form leads as a CSV or XLS file from Ads Manager, from the Instant forms page in Meta Business Suite, or from Leads Center. They're only available for 90 days after someone submits, so download them regularly. Landing-page leads in ownyourclick are already in your sheet, and Export CSV on the Leads tab downloads them.
How do you get leads with Facebook ads?+
Choose the Leads objective in Ads Manager and pick where people convert: an instant form, your website or Messenger. To track each lead by ad with ownyourclick, choose Website, point the ad at a landing page with your form and the ownyourclick tag, and add the URL parameters above.
Does it work for Instagram ads?+
Yes. Instagram ads are set up in the same Ads Manager. The platform parameter, {{site_source_name}}, tells you whether each lead came from Facebook (fb) or Instagram (ig).
Do I need the Meta pixel as well?+
Not to see which ad brought each lead; the URL parameters do that. The pixel and Conversions API send your leads and purchases back to Meta, so its ads can optimise for them.
Can I see cost per lead for each ad?+
ownyourclick doesn't import ad spend from Meta. It gives you each ad's leads, their hot % and who paid; divide the spend Ads Manager shows by those numbers.
Was this page helpful?
Thanks, that helps us make this page better.
What to read next?
UTM builder →
A free UTM link builder with presets for Facebook, Instagram and Google ads, WhatsApp and YouTube. No sign-up needed.
Lead scoring →
Lead scoring from behaviour: a hot % for every lead from time on page, scroll, clicks and visits, so your team calls the ready ones first.
Google Sheets CRM →
A Google Sheets CRM that fills itself: every landing page lead as a row, with statuses your team changes in the sheet. Free template included.
Course creators →
Lead tracking and a Google Sheets CRM for course creators who run ads to a landing page and call or WhatsApp their leads.
Video: where your leads come from →
A short video: make one UTM link with a source for every place you post, and see each lead's source.
The tracking code →
How the tag records visits and picks up your form's leads, step by step.
Find out which ad is worth your money
7 days of the Team plan, free. No card needed. Then from ₹699 a month.