What our ads actually did

We buy traffic for Harvv and publish what happens to it. Spend, behaviour, signups, updated every hour.

One campaign, not our whole account. Every figure below is scoped to a single ad set, so nothing else we run is folded in to flatter it. We publish the results, not the targeting: you will not find the audience, the interests or the geo split here. You will find every number they produced.

Day one of this campaign

Running since 2026-09-01. Nothing before that date is counted anywhere on this page.

Spend$0.11USD
Ad sessions13arrived with a click ID
Reached signup0of those sessions
Left without signing up0of the sessions that reached it
Signups from this ad0carried the campaign tag
Rage-click sessions2our own pixel, on us

The funnel

Impressions12
Link clicks0
0% of previous
Landing page views0
the page actually loaded
Sessions our pixel saw13
more than Meta reports, see the note below
Reached the signup page0
0% of previous
Signed up0
signup record carried this campaign tag

Our own pixel counts more ad-tagged sessions than Meta reports landing page views. Two different meters: Meta counts a view it attributes to one of its own clicks, while the pixel counts any session that arrived carrying a Facebook click ID, including return visits and links people forwarded. We report both rather than picking the flattering one.

Every stage here is the same population: sessions that arrived carrying this campaign's tag, and signups whose record carried it through. Nothing on this chart is a site-wide number standing in for an ad-driven one.

Day by day

Ad spend per day
$0.1102026-09-01: $0.1109-01
Impressions per day
1202026-09-01: 1209-01
Sessions our pixel saw
1302026-09-01: 1309-01

Spend and sessions are separate charts on purpose: they are different scales, and one chart with two y-axes can be made to show any relationship you like. Dashed rules on the rate charts mark the days we changed something. A day with fewer than 25 in its denominator is drawn as a gap, because a rate over a handful of events is not a rate.

What moves with what

Pearson correlation across the days above. Nothing is reported yet: we hold correlations back until there are at least 7 paired days. A coefficient computed over three days is noise with a decimal point.

PairCorrelationDays
Spend vs Ad sessionsnot enough data yet
Spend vs Signups from this adnot enough data yet
Ad sessions vs Signups from this adnot enough data yet
Ad sessions vs Rage-click sessionsnot enough data yet
Ad sessions vs Sessions reaching signupnot enough data yet
Rage-click sessions vs Signups from this adnot enough data yet

Every number, as a table

The same data behind every chart above, so nothing here is readable only as a shape.

DateSpendImpr.ClicksLPVSessionsReached signupSignupsRageDead
2026-09-01$0.111200130020

What we detected, what we changed

Every change to this funnel, what our own product or its gates found that prompted it, and which stage it was meant to move.

2026-09-01Who we showed it to
Filtered for agencies with staff

Detected The brief was agencies with at least two people. No ad platform sells headcount targeting, so it has to be inferred.

Changed Required a second signal: tools a staffed agency buys and a solo freelancer usually does not. Reach fell from 383,000 to 135,000, so it is filtering rather than rubber-stamping.

2026-09-01Surviving the page load
Built a landing page for this ad

Detected The previous agency ad pointed at a comparison page: 29.7 KB compressed against our own 25 KB budget, with a headline that promised something the ad had not.

Changed A purpose-built page at 21.6 KB whose headline is the ad headline.

2026-09-01Engagement on the page
Made the question chips answer in one click

Detected Clicking a question wrote it into a box and stopped, then asked for a second click to see the answer. That is a dead click, the exact thing this product detects.

Changed Selecting a question now moves the question and the answer together.

2026-09-01Reaching the call to action
Moved the call to action above the fold

Detected On a 375px phone the only call to action sat below the answer panel, off the first screen.

Changed A button now sits under the headline, measured at 450px on an 812px screen.

2026-09-01Reaching the call to action
Fixed five tap targets under 44px

Detected Our own layout check flagged logo links at 34px and a button at 26px, under the minimum Apple and Google both publish and a defect this product reports to customers.

Changed All raised past 44px, verified at five screen widths.

2026-09-01Measurement itself
Started recording where signups come from

Detected No signup record carried a campaign tag. The capture ran only inside the app, so anyone who arrived on a marketing page and clicked through to the signup form lost it on the way.

Changed First touch is now recorded on every marketing page. There is no backfill: what was never captured cannot be recovered.

2026-09-01Measurement itself
Stopped counting ad-review crawlers as visitors

Detected Creating the ad made Meta fetch the page: 8 sessions carrying the campaign tag and a click ID before a penny was spent. Our own bot check caught 1 of the 8.

Changed Days with no spend cannot report traffic, and flagged sessions are dropped.

2026-08-18Who we showed it to
Kept the agency angle over the trades angle

Detected Two Dallas trades concepts ran at 1.22% and 0.91% click-through, under the 1.5% floor, while 85% and 100% of their clicks survived the page load. The hook was failing, not the page. The agency concept then ran at 1.86%.

Changed Different audience and geography, so not a clean comparison, but enough to keep the agency angle and stop rewriting landing pages.

2026-08-18Who we showed it to
Targeted owners, not practitioners

Detected Interest targeting alone reaches everyone who works in advertising, most of whom cannot buy software.

Changed Added a business-owner signal as a required second condition rather than a broader interest list.

2026-05-23Surviving the page load
Stopped optimising for clicks

Detected Our first campaign spent about $7 for zero signups: 174 clicks, 98.7% of them bouncing at under 10% scroll.

Changed Every campaign now optimises for landing page views, which only count when the page actually loads in a browser.

2026-05-23Surviving the page load
Dropped Instagram and Audience Network

Detected Instagram sessions reported page-load times of 93 to 111ms on Pakistani mobile networks, which is physically impossible.

Changed Facebook feed only, on every campaign since.

We are not claiming any of these moved a number yet. The campaign started on 1 September, the changes shipped the same day, and there is no before to compare against. When there is enough data on both sides of a marker to say something, this page will say it, and it will say when it cannot.

Take the raw data

Every daily row behind this page, as CSV: spend, impressions, clicks, landing page views, sessions, signup-page reach, signups, rage clicks and dead clicks. Free, but it needs an account, because an open export of a live campaign is a scraping target rather than a reader.

Sign up to downloadAlready signed in

Why we publish this

Harvv tells people what their visitors actually did, including when the answer is unflattering. It would be strange to sell that and keep our own numbers private. If the ads do not work, this page will say so.