Skip to main content
Ads is a tab on Reports. It answers one question: of the people who tapped one of your ads and then messaged you on WhatsApp, what happened next. On screen it introduces itself as What each ad produced in conversations, contacts and revenue. It only reads. Nothing here changes a contact, a conversation or a payment. The page has two halves, and they come from different places:
  • Responses (conversations, messages, new contacts, revenue) come from the messages people send you after tapping an ad. You get these on every workspace, with nothing to set up.
  • Spend (what each ad cost, and the cost per conversation) comes from your own Meta ad account. You only get it once you connect your Meta ad account in DMLY, and connecting one depends on your plan. Without it, every spend cell is a dash.
The page says this under the cards, in these words:
Responses come from people who clicked an ad and messaged you. Spend and delivery come from your connected ad account, so an ad can appear here with spend and no conversations. A dash means we have no synced figure for that ad, not a zero.
Read What DMLY sees, and what it cannot before you put a revenue figure next to an ad and call it profit.

Open the report

1

Open Reports

In the sidebar, under Configurations, select Reports, then select the Ads tab. It sits between Finance and CSAT. Finance only appears if your role can view finance, so on some accounts the strip is five tabs and Ads is third.The Ads tab of Reports, highlighted in the tab strip, with the Ads with replies, Conversations, New contacts, Revenue and Ad spend cards
2

Read the cards

Ads with replies, Conversations, New contacts and Revenue, plus Ad spend once your ad account has synced a figure for your dates. Revenue and Ad spend are there only if your role can view finance; without it you get the other three.
3

Read the table

One row per ad, busiest first. If your role can view finance, the last two columns are Ad spend and Cost per conversation. They show a dash until your ad account has synced a figure for that ad.The ads table with one row per ad, showing conversations, messages, new contacts, revenue, ad spend and cost per conversation, and a dash for a post with no spend
4

Filter by date

Set From and To to narrow the window. Leave both blank and the report covers the trailing 30 days. Some figures ignore your dates on purpose; see Filter by date.
5

Export

CSV gives you the table as a spreadsheet, PDF the same report as a document. See Export.
The responses on this report come from ads that open a WhatsApp chat, which is what the browser tab calls them: Click-to-WhatsApp ads. Messages from an ad that opens a Messenger or Instagram chat are not counted here. The ad’s details reach DMLY on WhatsApp’s own webhook, and there is no equivalent report for the other two.Spend is different. It is read from the whole ad account you connected, so any ad in that account that spent money in your dates gets a row, even one that never sent anybody to WhatsApp. It shows its spend and no conversations.

What DMLY sees, and what it cannot

DMLY puts revenue and spend side by side, but it never divides one by the other, on the page or in the exports. To work out whether an ad paid for itself, set its Revenue against its Ad spend yourself, and remember the two can be in different currencies (see Caveats). Spend is synced from Meta every hour. Meta can restate an ad’s figures for up to 28 days, so the last few weeks can still move a little after you first read them.
An ad missing from the list is not an ad with a zero. Without a connected ad account, an ad only appears once somebody has tapped it and messaged you inside your date range. A campaign that ran all week and got no messages is simply absent. With an ad account connected, an ad that spent money in your dates appears too, even with no messages. Either way, an ad that neither spent nor got a message in your dates has no row.

What each number means

The cards sum up the whole window. The table breaks the same figures down per ad. Rows are ordered busiest first: most conversations, then most messages, then most spend. So among ads that got no messages, the one that cost you most comes first.
Two ads can share a headline, but never an ID. When you need to be certain which ad a row is, go by the ID under the headline, not by the words. If you edit an ad’s headline mid-campaign the row shows whatever the ad says now, not what it said when the first person tapped it.

Who gets credit for a contact

A contact belongs to exactly one ad: the first one that ever brought them to you. That is first-touch credit, and it never moves afterwards. This matters most for the ads you run at people who already know you. Say a salon runs a Summer Sale ad in June that brings in forty new clients, then a Winter Clearance ad in December aimed at reminding old clients you exist. Fifteen of those June clients tap the December ad and message you. If it worked the other way round, every re-engagement ad you ever ran would look like your best source of new business, and the ad that actually paid to win those clients would show nothing. So a re-engagement ad is credited honestly: it gets the conversations it caused, and it does not claim customers it merely reached again.
New contacts counts an ad’s whole history, not just your date range. The dates decide which ads appear in the list, and what their Conversations and Messages figures are. New contacts is then the full count of everyone that ad has ever acquired. Narrowing the dates will not narrow that column.
The same rule writes the Source on the contact record itself, in words rather than IDs: WhatsApp ad: Summer Sale, or WhatsApp post: Our new opening hours when the tap came from an organic post rather than a paid ad. A later ad never overwrites it, and neither does anything overwrite a source you typed in yourself, so a contact you had already marked as Walk-in referral keeps that. You can filter and segment on Source; see Tags and segments.

Revenue

Revenue against an ad is money you collected inside your date range, from the contacts that ad acquired. It values a payment almost the same way the finance report does for Money in:
  • Dated by the day the payment arrived, not by the day the ad ran and not by the day you invoiced.
  • Tips are excluded. A gratuity moves money but is not takings.
  • Refunds are taken off. One difference: Money in never takes off more than the payment’s tip-free amount, but this report takes off the full refund. So when a refund includes a tip, the ad’s revenue comes out lower than Money in, and can go below zero.
  • A payment that never actually arrived does not count.
  • Amounts are added up in your workspace currency, with no conversion between currencies.
One kind of payment lands here that Money in deliberately leaves out: a gift card being spent. The finance report drops those, because it already counted that money when you sold the card; this column does not. So an ad-won customer paying with a gift card adds to their ad’s revenue without adding to Money in. Either way these rows are a slice of your takings rather than all of them, and they are not meant to add up to Money in. Because it is dated by the payment, an ad from six months ago can show revenue this month, as long as somebody also tapped that ad inside your window. If nobody did, the ad has no row at all and that money appears nowhere on this page.
Revenue beside an ad is what those customers paid you. It has nothing subtracted for what the ad cost, even when Ad spend sits in the next column. It is not profit, and it is not return on ad spend.

Who can see the money

The Ads tab itself is not restricted to people who can see finance. Anyone who can open Reports gets it.
  • Can view finance (owners and admins, and by default the built-in Member and Viewer roles too; only a custom role without View finance (invoices, payments, orders) loses it): the full report, with the Revenue and Ad spend cards, the Revenue, Ad spend and Cost per conversation columns, and the money in both exports.
  • Cannot view finance: the same report with the money taken out, both what you earned and what you spent. Three cards, no money columns, and no revenue or spend in the CSV, the PDF or the ads page of the workspace report. An ad that spent money but got no messages still has a row, reading zero conversations, because the spend that put it there is withheld. Everything else works normally: conversations, messages, new contacts, the dates and the exports are all there.
The money is not merely hidden from the screen for that teammate. It is removed before the page is built, so it is not sitting behind the table waiting to be found. See Roles and permissions. Exporting is a separate permission again: CSV, PDF and Workspace report all need Export reports, which is admin only by default. The buttons are shown to everyone, so a teammate can select one and still be turned away. That is true of every Reports tab.

Filter by date

From and To are the only filters, and there is nothing to select to apply them: the report reloads the moment you change a date. A Clear filter link appears while either is set and resets both.
  • Leave both blank and you get the trailing 30 days, ending today.
  • Set From later than To and DMLY reads it as a typo and swaps them, rather than showing you nothing.
What your dates govern: With nothing to show, the table reads No ad-referred conversations in this range. On a very busy range a warning appears above the table: Showing the first 20,000 ad messages in this range. Narrow the dates for exact figures. Split the range into shorter windows when you need the counts to be exact.

Export

1

CSV

click-to-whatsapp-ads.csv: one row per ad, in the same order as the table, with the columns Ad ID, Headline, Type, Conversations, Messages, New contacts, Impressions and Clicks. When your role can view finance it adds Revenue, Currency, Spend, Spend currency and Cost per conversation.The file splits the table’s single Ad cell into three columns, and Type carries Meta’s own raw word, ad or post, rather than the From an ad wording you see on screen. Impressions and Clicks are in the file only; the page does not show them. Currency is your workspace’s, for Revenue; Spend currency is your ad account’s, for Spend. Where there is no synced figure, Impressions, Clicks, Spend and Cost per conversation are empty cells rather than 0, so a spreadsheet total never counts a figure nobody measured.
2

PDF

click-to-whatsapp-ads.pdf: the report as a document, laid out like every other Reports PDF, with your business header at the top and the date range under the title.Inside it: the same cards (Ads with replies, Conversations, New contacts, and Revenue when your role can view finance, plus Ad spend when there is also a synced figure), a Busiest ads bar chart of the top eight by conversations, and an Every ad table listing all of them. The chart only appears when the table has more than one row, and when there are more than eight a line under it names the total, so you know the table is the longer list.The Every ad table has no spend or cost per conversation columns. In the PDF, spend appears only as the Ad spend total. Use the CSV when you need spend ad by ad.The document repeats the caveats rather than leaving them on screen: where responses come from, and a message-limit warning on a busy range. When your role can view finance it also says where spend comes from, and adds the currency note and a stalled-sync line when they apply. With nothing in the range it prints No ad-referred conversations in this range.
3

Workspace report

The combined PDF carries an Ads section, on its own page after the others. It appears only when the ads table for that document’s trailing 30 days has at least one row: an ad that got a message, or, with an ad account connected, an ad that spent money. With neither in those 30 days, the report comes with no ads page at all rather than an empty one.That condition is about content, not permission. The finance section turns on whether your role can view finance; the ads section turns on whether there is anything to report. When the ads section does appear, everyone gets it, with the Revenue column and the Ad spend total left out for a role that cannot view finance.
Your From and To carry into the CSV and the PDF, so both files match the window you were looking at. The Workspace report carries nothing across and always covers the trailing 30 days, and its ads page renders only if there is something in those 30 days; this tab’s own PDF renders whether or not there is. See Exporting reports.

Where else an ad shows up

In the inbox

An ad-referred WhatsApp message carries a small card above it reading From an ad or From a post, with the ad’s headline, the first lines of its copy and its picture. Where the ad has a link the card opens it. So whoever answers can see which offer the person is replying to before typing a word.

On the contact

The contact’s Source names the ad that brought them in: WhatsApp ad: Summer Sale. See Contacts.

In an automation

The Click-to-WhatsApp ad trigger starts a flow when somebody messages you from an ad: any ad, or one specific ad. Copy the ID out of this report’s Ad column to pin a flow to one. See Triggers.

Caveats

Nobody has tapped it and messaged you inside your dates, and DMLY has no spend for it in those dates either. Without a connected ad account, DMLY learns about an ad only from the message it produces, so an ad with no messages is invisible here rather than a row of zeros. Connect your ad account and an ad that spent money shows up even with no messages. Otherwise widen the dates, then check the ad in Ads Manager to see whether it is getting clicks at all.
Look at the line under the cards. It tells you which of these it is:
  • No line at all: usually no ad account is connected, so there is nothing to sync. See Connect your Meta ad account. If one is connected, it has synced and simply has no spend for these ads in your dates.
  • An ad account is connected. Spend and delivery appear after the first hourly sync. Wait for the hour to turn.
  • Several ad accounts were shared and none is chosen yet. Pick one under Integrations, Meta Ads, before spend can be reported. DMLY never guesses which account is yours. Open Integrations → Meta Ads and choose one.
  • Meta Ads is not included in your plan. Upgrade to connect an ad account. An ad account is still connected, but your plan no longer includes Meta Ads, so syncing has stopped and any figures are from before it did. See Plans.
  • A red line starting Spend stopped syncing or Spend is not syncing: Meta stopped accepting the connection. Open Integrations → Meta Ads, disconnect and connect again. Until you do, the figures are from the last sync that worked.
With everything working, a dash on one row still means that ad has no figure: it is a post rather than an ad, or it belongs to a different ad account from the one you connected.
Revenue is in your workspace’s currency and spend is in your ad account’s. When the two differ, the page says: Your ad account bills in a different currency from this workspace, so return on ad spend is not shown. DMLY does not convert between them, so do that sum yourself with the rate you use for your books.
On the broadcast itself, not here. A paid Marketing Messages broadcast gets its own Paid campaign panel with Meta’s figures for that send, including its spend if your role can view finance. See What it costs.
Correct, and deliberate. The dates decide which ads are listed, and how many conversations and messages they had. New contacts is the total that ad has ever acquired, so it stays put. To ask “how many new people did this ad bring me in March”, set the dates to March and read Conversations, then check the contacts themselves by Source.
That is the report working. They were already yours, so the ad gets the Conversations it earned while the credit for winning them stays with the ad that first brought them in. Anything they spend stays with that first ad too.
The two are not measuring the same thing. This column is money you actually collected in DMLY from the people an ad brought you: after refunds, without tips, and with nothing subtracted for ad spend. Meta reports on what it observed on its own platform. Expect them to differ. Ad spend on this page is Meta’s own figure, synced from your ad account, so for cost the two should broadly agree, allowing for the hourly sync and Meta restating recent days.
Their role cannot view finance. They still get the rest of the report. Give them View finance (invoices, payments, orders) if they should see the money. See Roles and permissions.
Check the IDs under the headlines. Two different ads sharing a headline get a row each, which is right: they are two ads. One ad never splits across two rows, however often you rename it.

Next

Finance report

Where the revenue rules come from: what counts as money in, and what does not.

Triggers

Start a flow when somebody messages you from an ad.

Contacts

Contact records, and the Source that names the ad.

Exporting reports

Every CSV and PDF export across Reports, in one place.