Reports

ROAS by ad campaign: spend, revenue and profit for every campaign as the network names it.

Reports put what your ads cost next to what their leads sold for, so you can see which ads make money. Spend comes from the ad network through cost tracking. Revenue comes from your own waterfall: the price a destination paid for each lead.

You'll find them under Measure → Reports. The page is called ROAS, short for return on ad spend, and it opens on By ad platform campaign: one row per campaign exactly as Meta, TikTok, Snapchat or Google names it.

Start with By ad platform campaign

Spend arrives from the network already labelled with the network's campaign id, so this is the view that works the moment cost tracking runs. You do not need a EventsIQ campaign set up for it. Every lead that carries the same network campaign id is joined to that campaign's spend.

ROAS by ad platform campaign

ROAS by ad platform campaign
ROAS by ad platform campaign

Each row is one ad campaign, and the columns answer the questions you would otherwise work out in a spreadsheet:

ColumnWhat it tells you
Ad campaignThe campaign's name in the ad network
LeadsLeads that arrived carrying this campaign's id
SoldHow many of those a destination bought
SpendWhat the network charged for the campaign in the range
RevenueWhat destinations paid for its leads
Cost per leadSpend divided by leads
Cost per soldSpend divided by sold leads
ProfitRevenue minus spend
ROASRevenue divided by spend. 2.00x means $2 back for every $1

The table is sorted by spend, so the campaigns costing you the most are at the top. Click a column heading to sort by it, or type in Search ad campaign... to find one.

Return by ad platform campaign

Open Return by ad platform campaign above the table for a bar per campaign. Bars are green above 1.00x, where a campaign pays for itself, and scaled to 2.00x, so you can see at a glance which campaigns to scale and which to cut.

Return by ad platform campaign
Return by ad platform campaign

The leads behind a row

Click the list icon at the end of a row to see every lead that campaign produced: when it arrived, the form, the routing, who bought it, the status and the price. Each lead links to its full log.

The leads behind an ad campaign
The leads behind an ad campaign

No ad campaign id on the lead

This row collects leads that arrived without a network campaign id, so there is no spend to join them to. It usually means:

  • the ad does not use the traffic source's parameters, or the campaign_id row was removed;
  • an instant form campaign has no Ad campaign picked on its General tab;
  • the leads came from somewhere that is not paid traffic at all.

The controls

ControlWhat it does
All platformsShow one network only: Facebook and Instagram, Google, TikTok, Snapchat, Microsoft, Everything else
Time zoneWhich time zone a "day" is counted in. Spend and leads both use it
Date rangeThe days to report on
Sync spendRun cost tracking now instead of waiting for the next scheduled read
Export CSVDownload the table as it is shown

Under Group by:

  • With leads / No leads / All chooses whether to show campaigns that spent without producing a lead. With leads is the default, and the line underneath says how many rows it hid. Switch to No leads to find money going out with nothing coming back.
  • Totals shows one row per campaign for the whole range. By day splits each campaign into days, which is how you spot the day a campaign stopped working.

The summary cards

CardWhat it is
SpendWhat the ad networks charged
RevenueWhat destinations paid for the leads, and how many sold
ProfitRevenue minus spend
Total ROASRevenue divided by spend, and revenue per lead underneath

The coverage strip

Above the cards, three numbers tell you how much of that is trustworthy. Click What these mean for the detail.

NumberWhat it means
Measured returnROAS counting only campaigns that have both spend and leads. The figure to judge campaigns by
Spend with no leadsMoney spent on campaigns that produced nothing here. Red when it is above zero
Revenue with no spendLeads sold from rows with no cost recorded, for example the No ad campaign id row, organic traffic or an ad account cost tracking does not read

A large Revenue with no spend usually means cost tracking is missing an ad account, or leads are losing their campaign id. A large Spend with no leads means ads are running that EventsIQ is not seeing leads from.

More columns

Click Columns to add, remove or reorder columns. Tick to show, drag to reorder, and Reset to go back to the default.

The Columns menu
The Columns menu
ColumnWhat it is
Ad accountThe network account this campaign is billed under
Sold %Share of leads that sold
Revenue per leadThe number to compare against cost per lead
Impressions, Link clicks, All clicksAs the ad network reports them. All clicks includes reactions, comments and shares
Tracked clicks, Cost per click, Click to lead %Clicks on your own tracking links. Only when grouping by Campaign, because the network never sees these clicks

Other groupings

Group by can also show the same numbers another way:

Group byEach row isSpend shown
Ad platform campaignOne campaign as the ad network names it. The defaultYes
CampaignOne of your EventsIQ campaigns, adding up the ad campaigns it claimsYes
Traffic sourceOne traffic sourceYes
FormOne form or sourceNo
DestinationOne destination that bought leadsNo

Form and Destination show leads and revenue only, because spend belongs to ad campaigns, not to forms or destinations.

By campaign

Grouping by Campaign adds a few things that only make sense for your own campaigns:

  • Any status / Running / Not running filters by whether the ad campaign is live.
  • The Tracked clicks, Cost per click and Click to lead % columns.
  • A Split test table inside each row, when the campaign splits traffic across landing pages.
  • A Not in one of your campaigns row, for spend and leads from ad campaigns no EventsIQ campaign has claimed yet.
A campaign's split test
A campaign's split test

A EventsIQ campaign claims an ad campaign in one of two ways: its leads arrive carrying that ad campaign's id, or the ad campaign is picked as its Ad campaign. An ad campaign claimed by two EventsIQ campaigns stays under Not in one of your campaigns rather than being counted twice.

How the numbers are joined

Spend is stored per ad campaign, per hour. A lead carries its ad campaign id. Reports join the two on that id and on the day, counted in the time zone you pick. So a lead submitted at 11pm in New York and the spend in that same hour land on the same day, even though it is already tomorrow in UTC.

Revenue showing as zero?

If spend appears but revenue and ROAS stay at zero, check:

  1. Your traffic source still has its campaign_id row, and your ads use the campaign's tracking URL.
  2. For instant forms, the campaign's Ad campaign is picked.
  3. Leads are actually being sold. Revenue is what destinations paid, so unsold leads add nothing.