measuremy.site

How to measure the return on a paid ad campaign

Calculator placed on financial graphs and reports showcasing data analysis and business documentation.
Photo by RDNE Stock project on Pexels

Paid ad return means revenue or expected value from people who came through an ad, divided by what you spent. Clicks and impressions are useful, but they are not return. To measure return you need three things: a clear conversion goal, campaign-tagged links, and a way to connect ad clicks to completed actions on your site.

Start with one clear conversion goal

Choose the action that matters: purchase, paid signup, trial start, booking, qualified lead, or download. If the action is not a purchase, put a value on it. For example, if one in ten free trial users becomes a paying customer and a customer is worth $200, a trial start is worth roughly $20 for return calculations. Use your own numbers; guesses should be labeled as guesses.

Tag every paid link before launch

Use UTM parameters on every ad destination URL. Keep the names consistent. For a Google search campaign:

https://example.com/landing?utm_source=google&utm_medium=cpc&utm_campaign=summer_launch&utm_content=blue_ad

Use utm_source for the platform, utm_medium for the channel, utm_campaign for the campaign, and utm_content for the ad variant. Check that redirects preserve these parameters before the campaign starts.

Track the campaign in your own analytics

The ad platform will report clicks and, if you install its pixel, conversions. Do not rely on that alone. Platform attribution can count view-through conversions or give credit to an ad when a visitor would have returned anyway. Your own analytics should record campaign visits and later conversions. measuremy.site tracked campaign links with UTM tags credit later traffic and signups, which helps when someone clicks an ad, leaves, and returns directly a few days later.

Calculate return in money, not clicks

Use two formulas:

For non-purchase goals, multiply conversions by the expected value you set. Subtract refunds or cancellations that happen within your measurement window if you want a true return. Keep the date range the same for spend, visits, and conversions.

Use a consistent attribution window

A conversion may happen minutes or days after the click. Choose one window, such as 7 days after click, and apply it to every campaign. Check the ad platform's settings because the default window may not match your own reporting. If someone clicks an ad on one device and converts on another, last-click tracking may miss the connection. For a small site, last-click is usually the easiest place to start, but you should know that it undervalues ads that introduce people to you.

Build a funnel from ad click to conversion

Look at the path from the ad landing page to the confirmation page. A simple funnel might be:

If many paid visitors reach the landing page but few reach the signup step, the problem is probably the landing page or the offer. If many reach signup but few reach the confirmation page, the problem is probably the signup form or payment step. In measuremy.site, funnels are built from page paths and events, so you can check drop-off for paid visitors specifically.

Compare channels separately

Paid search and paid social often behave differently. Search ads usually reach people already looking for a solution, while social ads interrupt people and need more education before conversion. Use separate UTM campaigns for each channel, and compare them by CPA and ROAS, not just clicks. A channel with a higher CPA can still be worth it if those customers buy more later, but you need to know that before scaling spend.

Watch for misleading signals

A high click count with no conversions may mean the ad promises something the landing page does not deliver. A spike in landing page visits without a corresponding spike in signups may mean the audience is wrong or the page is slow. Bot clicks and accidental taps can also inflate ad platform numbers. Compare ad platform clicks with site visits for the same campaign. Large gaps are worth investigating before you spend more.

A small worked example

Suppose you spend $200 on a paid search campaign. The ad platform reports 80 clicks. Your analytics shows 60 visits from that UTM campaign. Ten visitors reach the signup confirmation page. If a signup is worth $30 to you based on your own conversion data, the campaign generated $300 in expected value. ROAS is 1.5x and CPA is $20. That is a real example only if your numbers match; use your own values.

What to do each week

Record spend, attributed conversions, revenue or expected value, CPA, and ROAS for each campaign. Pause the campaigns with the highest CPA first, but only after enough conversions to make a decision. Change one variable at a time, such as the landing page headline, the offer, or the ad creative. Do not change the UTM names mid-campaign unless you accept that old and new data will be split.

Paid ad measurement works when you connect spend to completed actions. Tag links properly, track conversions in your own analytics, calculate money in and money out, and use that to move budget away from campaigns that do not pay back.

See it on your own site

measuremy.site is cookieless analytics your coding agent can read. 30-day free trial, no card. Plans from $9/month.

Start free trial See the live demo

Add measuremy.site analytics to this project: connect the measuremy.site MCP server at https://a.measuremy.site/mcp for all my projects (claude mcp add --scope user; it signs in with OAuth, no key, and one sign-in covers every site), then tell me how to sign in. Details: measuremy.site/llms.txt

Free tools

All free tools

More from the blog