Ads to WhatsApp

Which Ad Brought the Sale? Tracking Revenue Per Meta Ad on WhatsApp

How to track WhatsApp sales from Facebook ads: record the source ad, tag the chat, log the sale and read revenue per ad. A simple setup for Malaysian SMEs.

Start your chatbot now
Which Ad Brought the Sale? Tracking Revenue Per Meta Ad on WhatsApp
On this page
  1. Why is it hard to know which ad brought…
  2. What do you need to track revenue per ad
  3. Step 1: How do you tell chats apart by ad
  4. Step 2: How should the chat be tagged
  5. Step 3: Which outcomes should you log
  6. Step 4: How do you record the sale
  7. Step 5: How do you read revenue per ad
  8. What mistakes make ad tracking unreliable
  9. Who needs revenue-per-ad tracking, and who…
  10. How does a ChatsHero AI Agent Office keep…
  11. Frequently Asked Questions

To track WhatsApp sales from Facebook ads, record which ad each chat came from at the start, tag the contact, log the outcome (booked, quoted, paid) and add the sale amount, then compare chats, bookings and revenue per ad. The ad that sends the most chats is often not the ad that brings the most money.

Key takeaways
  • Ad dashboards stop at chats started. Revenue per ad needs the chat, the tag and the sale joined together.
  • Name every ad clearly, so the chat can be traced back to one ad.
  • Log four outcomes: booked, quoted, paid, lost with a reason.
  • Offline and counter sales must be recorded by a person, or revenue per ad will be understated.
  • Review weekly by ad, and cut by revenue per ad, not by chats.

Why is it hard to know which ad brought the sale on WhatsApp?

It is hard because the ad ends at the tap on the WhatsApp button, and the sale happens later, inside a private chat that your ad dashboard cannot see. The dashboard shows chats started. It does not show who paid.

For the owner, this creates a familiar problem. You run three ads. The dashboard says Ad B brought the most chats. But your staff say the serious customers seem to come from Ad C. Who is right? Without a record that connects each chat to an ad and then to a sale, nobody can say, and the budget moves to whichever ad looks busiest.

This guide shows a simple way to fix it, step by step, using a sheet or your chat platform. For the wider ad-to-appointment path, read our beginner's guide to Click-to-WhatsApp ads, and for a broader take on measurement see WhatsApp ads ROI tracking for Facebook and TikTok. This post focuses on one question: revenue per ad.

What do you need to track revenue per ad?

You need four records for every chat: the source ad, the stage reached, the outcome and the sale amount. If any one is missing, the chain breaks.

RecordExampleWho or what captures it
Source adAd C, Raya promo videoPlatform at the start of the chat, or a pre-filled message from the ad
Stage reachedChatted, quoted, booked, paidAI tags from the chat, staff confirm
OutcomeWon, lost, pendingStaff or system
Sale amountRM___Staff, invoice or payment record

That table is the whole system. Everything else is how to fill it in reliably.

Step 1: How do you tell chats apart by ad?

Give every ad a short, unique name and make sure that name is attached to each new chat. Without a label on the chat, you are guessing.

There are two practical ways to do it:

  1. Pre-filled opening message. Click-to-WhatsApp ads can start the chat with a ready line. Write a different line for each ad, such as a different product name or code word. The customer sends it, and your system sees which ad they came from.
  2. Platform capture. Some chat platforms record ad information automatically when the chat starts. Ask your provider whether yours does, and how it appears on the contact record.

Use the first method if you are unsure about the second, since it works with any setup. Meta describes the format in its guide to creating ads that click to WhatsApp.

Step 2: How should the chat be tagged?

Tag the contact with the ad name and the stage as the chat moves, so the record builds itself. A tag turns a conversation into a row you can count.

In an AI agent office, this is the job of the AI employees. The receptionist records the source, the sales agent notes interest and budget, and the booking agent marks a confirmed appointment. ChatsHero does CRM tagging from the chat context, so the tags are applied while the customer talks rather than by someone remembering later.

[Pre-filled] Hi, saya berminat dengan pakej RAYA-C

Hi! Terima kasih berminat dengan pakej Raya. Anda cari untuk berapa orang, dan tarikh bila?

6 orang, minggu depan

Baik. Saya boleh sediakan sebut harga dan tempahkan anda Khamis 2pm untuk lihat sampel. Okay?

Illustrative example. Behind the scenes the contact would be tagged: source RAYA-C, stage: booked.

Step 3: Which outcomes should you log?

Log four outcomes only: booked, quoted, paid and lost with a reason. More categories make the sheet slow to fill and nobody keeps it up.

OutcomeDefinitionWhy it matters
BookedSlot confirmed for visit, demo, viewing or serviceShows which ads bring real intent
QuotedPrice sentShows who reached a decision point
PaidDeposit or full payment receivedThe revenue number
LostNo sale, with a reason such as price, timing, no replyShows what to fix

Lost reasons teach more than wins. In our own sales data, 76 contacts went silent with no clear reason, and 19 stopped when demo times were offered. Knowing why a lead was lost is what turns a tracking sheet into a to-do list, so add a lost reason from day one.

Try it yourself

Want to see how this looks with your own business? WhatsApp us and chat with the ChatsHero AI.

Step 4: How do you record the sale?

Record the sale amount against the same contact, on the day it happens. This is the step most businesses skip, and it is what makes revenue per ad possible.

How it gets recorded depends on how you sell:

Be honest about the limit. An AI cannot see a cash payment at your counter. If staff do not record it, that revenue will be missing from the ad that earned it, and the ad will look worse than it is. For payment proof handling, see WhatsApp payment proof and COD in Malaysia.

Step 5: How do you read revenue per ad?

Read it in one table, once a week, from chats to money. The aim is to see the ad that earns, not the ad that looks busy.

AdChatsBookedPaidRevenueAd spendRevenue per RM1 spent
Ad A150206RM___RM______
Ad B300121RM___RM______
Ad C90259RM___RM______

Illustrative layout with invented chat counts. Fill in your own figures.

In that layout, Ad B has the most chats and the fewest payments. Ad C has the fewest chats and the most payments. Judged by chats, Ad B wins. Judged by revenue per ringgit of spend, Ad C probably does. The sheet makes the decision visible. For a simple spreadsheet build, our guide to a WhatsApp sales funnel in Google Sheets shows the columns, and Google's help pages on COUNTIF and in-cell dropdown lists explain how to count by ad and keep stage labels consistent.

What mistakes make ad tracking unreliable?

Four mistakes cause most bad numbers: unlabelled chats, inconsistent stages, unrecorded offline sales and judging too early.

  1. Unlabelled chats. If half your chats have no source, the totals mean little. Fix the labelling first.
  2. Inconsistent stages. One person writes 'hot', another writes 'interested'. Use a dropdown, not free text.
  3. Missing offline sales. Make recording the sale part of closing it.
  4. Judging too early. If your sales take two weeks to close, a three-day-old ad has not finished producing revenue. Compare ads after a full sales cycle.

Also be careful with personal data. A tracking sheet holds names and phone numbers, so limit who can open it and follow the Personal Data Protection Act. Share summaries, not the full list, with your ad agency.

Who needs revenue-per-ad tracking, and who can keep it simple?

Anyone running more than one ad into WhatsApp, or spending steadily, benefits from it. A business with a single ad and a handful of chats can track by hand with a notebook.

It matters most where sales are high-value and slow, such as property, cars, renovation and B2B supply, because the ad that wins on chats can be a long way from the ad that wins on revenue. In those trades, a sale may take weeks, and a salesperson, not the AI, closes it. The AI's job is to keep the record complete so the right ad gets the credit.

It matters least where an order is a single click and the sale is paid inside the ecommerce platform, since that platform already shows the order source.

How does a ChatsHero AI Agent Office keep the record?

ChatsHero, a Malaysian AI agent platform, runs a reporting agent alongside the receptionist, sales and booking agents, so tags, bookings and outcomes are collected as chats happen and summarised for the boss. Payment slips can feed a Google Sheet through custom workflows such as AI Receipt Scanning.

How the source ad is captured and shown on the contact depends on your setup, so ask to see it during the free 30-minute Zoom demo. Bring your current ads, and we will walk through how each chat would be tagged from first message to sale.


Frequently Asked Questions

How do I know which Facebook ad a WhatsApp chat came from?

Use a different pre-filled opening message for each ad, or ask your chat platform whether it records the source ad automatically when the chat starts.

Can I see sales per ad in Meta Ads Manager?

Ads Manager shows chats started. Revenue per ad needs your own record linking each chat to a sale, unless your platform sends outcomes back to Meta.

What if customers buy at my counter instead of in the chat?

Staff must record the sale against the contact. The AI cannot see a counter payment, so unrecorded sales make an ad look weaker than it is.

How long should I wait before judging an ad?

Wait for a full sales cycle. If deals close in two weeks, a three-day-old ad has not finished producing revenue.

Do I need special software?

A Google Sheet with dropdowns is enough to start. A chat platform with CRM tagging reduces manual work.

Sources

  1. WhatsApp Business: How to create ads that click to WhatsApp
  2. Google Docs Editors Help: COUNTIF function
  3. Google Docs Editors Help: Create an in-cell dropdown list
  4. Jabatan Perlindungan Data Peribadi (PDPA Malaysia)

Further reading

See every chat tagged to its ad

Bring your ads to a free 30-minute Zoom demo and we will show how an AI Agent Office tags and reports each chat.

Start your chatbot nowChat with us on WhatsApp