Ad tracking — count your ad results (Meta Pixel, Google, Conversions API)
Connect Facebook/Instagram and Google ads to your website with one ID each — sales and visits are then reported automatically. Includes the Meta Conversions API token walkthrough.
6 min readUpdated 4 Nov 2026
In this guide
What your website reports on its own
Open Tracking in your website's menu (under Settings) — the first card there is written for your kind of website and lists exactly what is reported automatically. In short:
Online shops & restaurants
Product views, add-to-carts, checkout starts and every sale — with the order number and real rupee amount. Sales are reported from the customer's browser AND — once the Conversions API token is saved — from our server, so a customer who app-switches to GPay and never returns is still counted. Contact-form enquiries, bookings and WhatsApp/call taps are reported too. A pharmacy's sales go with their amount only, never which products.
Service, catalogue & news websites
Every visit is reported, plus your real conversions: contact/enquiry form submissions (as Lead events, browser + server), appointment bookings, trip and vehicle-rental bookings (as booking events, browser + server), and WhatsApp or phone-number taps (as Contact events). News reader-pass sales are reported as purchases with their real amount; car-dealer sell-your-car requests and astrology tool enquiries as leads. Ad platforms also build a visitor audience for remarketing.
You never paste code into your website. Every platform below only needs an ID pasted into Settings → Tracking. If a platform shows you a big block of code, you can paste the whole thing into the ID box — we pick the ID out of it automatically.
Meta (Facebook & Instagram) — the Pixel
Open Events Manager
Go to business.facebook.com, sign in, and from the ☰ menu choose All tools → Events Manager.
Find or create your pixel
Look in Data sources. If you don't have a pixel yet, tap Connect data → Website, name it after your business, and enter your website address when asked. When Meta then asks how to install the code — close that screen. We install it for you.
Paste the Pixel ID
Copy the long number under your pixel's name and paste it into Tracking → Meta (Facebook) Pixel, then Save.
The #1 mistake: your ad campaigns in Ads Manager use one pixel, but your website reports to a different one. Both must be the same pixel ID — otherwise Meta shows “no activity” even though everything works.
Meta Conversions API — recommended for every website
The Pixel reports from the customer's browser. But many Indian customers pay by switching to a UPI app and never return — Meta misses those sales; and on any website, ad blockers or a closed tab can swallow an enquiry. The Conversions API token lets us also report every order placed on your website (Cash on Delivery included), every enquiry and every booking from our server, so nothing is missed. Each order goes with its order number on both sides, so Meta removes the duplicate automatically and counts the order once. Orders you create yourself in the dashboard are not reported. If your shop confirms orders first, the sale is reported when the customer accepts the final bill. The token box appears once a Pixel ID is filled in.
Open your pixel's Settings
Events Manager → Data sources → open the same pixel you pasted above → the Settings tab → scroll to Conversions API.
Choose Set up manually
If Meta asks which events you'll send: shops tick Purchase (under Ecommerce and retail); service/catalogue websites tick Lead instead. On the parameter screens keep Event ID ticked, plus phone, email and name if shown. If it mentions a “Dataset Quality API” — skip it.
Generate the access token
Press Generate access token, copy the long code starting with EAA… and paste it into Tracking → Meta Conversions API token, then Save.
The token is a send-only key — if you test it on other Meta screens it looks like it does nothing. That's normal; we use it to report your sales and enquiries for you.
Meta's Event Setup Tool — don't add the same events again
Your website already sends Meta its events by itself, including View content on product pages, Add to cart, Initiate checkout when the checkout page opens, Add payment info when the customer chooses how to pay, Purchase for every sale, Lead for enquiry forms, Schedule for bookings and Contact for WhatsApp or phone taps. Meta's Event Setup Tool can add events without code by watching button taps and page visits. If you add an event there that your website already sends, Meta counts it twice, and the tool's copy does not carry the order's amount.
A Purchase added there on your Pay or Buy Now button does the most harm: Meta counts every tap as a sale, even when the customer never pays. Meta can then show Fix currency parameter for website Purchase events, and your campaigns learn from sales that never happened.
Remove an event added in the tool
Events Manager → your pixel → the Settings tab → Event setup → Open Event Setup Tool → enter your website address → Open website. In Meta's panel on your website, open All events (in some versions Events on this page), expand the event and delete it.
Customer details — your event match quality
Meta gives each event a match quality score out of 10 (Events Manager → your pixel → open the event, e.g. Purchase → Event match quality). It says how often Meta can tell which Facebook or Instagram account made the sale or enquiry. A higher score means Meta credits more of your sales to your ads and finds better buyers.
To match, Meta uses customer details sent with each event. Your website sends these with every sale, enquiry and booking: phone number, email address, name, city, state, PIN code, country and a customer ID (a code made from the phone number, the same for every order one customer places on your website). Each detail is scrambled into a code before it leaves, so it never travels as plain text. They go from our server (with the Conversions API token) and from your website's own pixel, so Meta can match the event whichever copy arrives first.
Choose what is sent
Settings → Tracking → the Meta card → Customer details sent to Meta. Untick any detail you do not want sent, and use Also add them to your website's own pixel event to switch the pixel's copy on or off. Save. Your next sale or enquiry follows your choice. A health website (a pharmacy, clinic, doctor, dentist or hearing-care shop) starts with name and address details off.
See what the last event carried
With the Conversions API token saved, the card shows the last sale, enquiry or booking our server sent to Meta: when, whether Meta accepted it, and which details it carried. If Meta refused it, the card says why in one line (most often a token made for a different pixel).
Example: a Kochi skincare shop gets an order from Sreekumar Nair, delivery to Kochi, Kerala 682001. Meta receives codes for his phone, email, name, Kochi, Kerala, 682001, India and his customer ID, plus his browser's details. Meta works the score out again from your new sales over the next few days.
Always sent, the cookie notice, and what is never sent
Always sent: the customer's browser type, IP address and Meta's own cookie. Meta needs them to count a website event at all. Cookie notice: when a customer taps Decline on your cookie notice, your Meta pixel stops on that device and our server tells Meta nothing about them, so Meta does not count what they do. The pixel runs on the pages they open before they tap Decline. A sale reported later goes only if the customer's choice is on record. Not sent: gender and date of birth (your checkout does not ask for them), so Meta may keep suggesting them; that is expected.
Product and service names
Your tags are told which product a customer looked at, added to the cart or bought, or which service they booked. Ads that show people what they looked at need this. To stop it: Settings → Tracking → Product names in ad events → untick Tell your ad tags which product it was and Save. Your tags then learn only the amount, for every ad tag and for the events our server sends to Meta. Each tag still reads the address of the page it runs on, and that address can name the product.
On a website that deals with people's health, the name of a product or service can say what condition a customer has, so weigh this yourself. A hearing-care or medical store starts with it on, because its ads depend on it; a clinic, doctor or dentist starts with it off. A pharmacy on the Pharmacy & Care design never names a medicine, and that cannot be turned on.
Customers who have signed in
A customer who signed in on your website with their phone number is matched on every page they open, not only when they buy. Meta then connects what they look at and add to the cart to the right person. The details are the phone, email and name on their account, and your boxes decide which ones go; like the rest, they are scrambled into codes first. The checkout page uses the order's own details instead. A customer who tapped Decline on your cookie notice is not matched this way.
To switch it off: Settings → Tracking → the Meta card → untick Recognise signed-in customers on every page and Save. A health website starts with this off, because which pages of such a website a person reads is health information.
Sales completed after the customer left
Some sales are decided later, when the customer is no longer on your website. Our server reports each one to Meta with the browser details kept from the customer's visit:
- A UPI payment you confirm: you tap I received this payment on the customer's UPI attempt. The sale is dated when they paid. Meta takes a sale up to 7 days late, so an older one is not sent.
- An auction win: reported when the winner pays, by your payment link or when you mark the order paid, with the browser details from their bid. A winner who never pays is never reported, and neither is a next bidder you offer the item to, because only the winner's browser details are kept.
- An order request you confirmed: reported when the customer accepts the final bill.
- A reader pass: reported when the payment is received.
To stop reporting UPI payments you confirm and auction wins: Settings → Tracking → the Meta card → untick Also report UPI payments you confirm and auction wins. These need the Conversions API token. If the browser details from the visit are not on record, the sale is not reported. Orders you type in yourself are never reported. Google Ads does not receive these later sales: its details go only from the customer's own browser.
Google — GA4 and Google Ads
Google Analytics (GA4)
At analytics.google.com: Admin (gear) → Create → Property → add a Web data stream with your website address → copy the G-… Measurement ID into Settings → Tracking.
Google Ads — count your sales as conversions (shops)
At ads.google.com: Goals → Conversions → + New conversion action → Website → enter your website address. Choose category Purchase, value use different values for each conversion, count Every. On the Tag setup screen open the event snippet and copy the whole code — paste it into the Conversion ID box in Settings → Tracking; we extract both the ID and the label automatically. Every sale then lands in Google Ads with its real rupee value.
Not a shop? Count your enquiries instead
Create the conversion action with category Submit lead form (count: One), then copy the event snippet from Tag setup and paste it into the Conversion ID box — every contact-form enquiry then counts as a conversion in Google Ads. The AW-… ID alone still gives you remarketing audiences.
Google Ads — enhanced conversions
Google Ads can match each sale or enquiry to a Google account using customer details, so more of them are credited to your ads. Google calls this enhanced conversions. Your website sends the details from the customer's own browser, with the conversion your Google tag already counts. Phone, email and name are scrambled into codes first. City, state and PIN code go as plain words, because that is Google's rule, and only together with a first and last name, because Google cannot match them alone.
Turn it on in Google Ads
At ads.google.com: Goals → Conversions → Settings. Under Enhanced conversions for web, turn it on, agree to Google's terms and choose Google tag as the method. Until you do, Google does not use these details. To check it is working, open your conversion in Google Ads and look at its Diagnostics.
Choose what is sent
Settings → Tracking → the Google card → Customer details sent to Google Ads. It shows once your conversion label is saved. Untick any detail you do not want sent, and Save. A health website starts with name and address details off. A customer who tapped Decline on your cookie notice sends none of them, and your Google tags stop on that device.
Tag Manager, Microsoft, Pinterest, Snapchat, LinkedIn, X
The same pattern everywhere: create the tag inside that platform's ads console, copy its ID, paste it in Tracking. Each field there tells you the exact menu path: Google Tag Manager (GTM) (GTM-…), Microsoft Ads UET (Bing), Pinterest Tag, Snapchat Pixel, LinkedIn Insight Tag, and X (Twitter) Pixel with an optional X Purchase event ID (tw-…) so X counts your sales. Fill only the platforms you actually advertise on — each tag loads on your website only when its ID is set, so empty fields cost nothing.
Check it's working
Wait a few minutes after saving
Your published website updates automatically — no republish needed from you.
Meta — Test events
Events Manager → your pixel → Test events → open your website on your phone. PageView (and product events on shops) appear within a minute. With the Conversions API token saved, paste the TEST code into the test box in Settings → Tracking, place a small test order, and watch Purchase arrive from both Browser and Server — counted once. Remove the test code when done.
Google — Realtime
GA4 → Reports → Realtime while you browse your own website — you should appear as a visitor.
Seeing no activity? Check, in this order: (1) the pixel ID here matches the one your campaigns use; (2) you saved and waited a few minutes; (3) you're not testing with an ad blocker or inside a private/incognito window with tracking protection on.
More in Customers & marketing
Did this answer your question?
It takes one tap and it genuinely changes what we write next.