← Back to posts
Building in Public 8 min read

A$73 of Meta ads, 269 clicks, and maybe one user

I spent A$73 on Meta app-install ads. Audience Network gave 210 of 269 clicks for A$2.09, and Meta never heard about a single install.

At 9:12 on a Sunday morning I typed “is it just me or did we get an insane CTR ??” into a chat with my coding agent. Meta was showing 213 link clicks on my new app-install campaign, for A$5.01. A bit over five hours later I paused it at A$73.31 and 269 link clicks.

Here is what those 269 clicks bought, as far as I can verify:

  • One first-time download in Apple’s analytics for the latest day I could see. Apple credited it to App Store Search, not to another app.
  • One new app identity that finished onboarding and saved no people and no notes. I can’t tie it to the campaign. It could be a prospect, a tester or an App Store reviewer.
  • An event source in Meta that still said “Never received event” on the day I paused.

The title says “maybe one user” and that’s me being generous. This post is mostly about that third bullet.

What I ran

OldMate is a personal CRM I’m building solo for iPhone and Android. After you meet someone, you speak or type a note, and it files who, where and what you promised. At the time, the iPhone app was free.

The campaign used Meta’s app promotion objective, set to maximise installs, with five image ads, Australia, 18+, iPhones only and a lifetime cap of A$200. I published it at 5:26pm on Friday 25 September.

What was behind the “insane CTR”?

The campaign was switched off when I looked. Meta said 213 link clicks, 749 impressions and A$5.01 spent, a 28.44% link click-through rate. An earlier weekend web campaign of mine had sat at about 2% at its midpoint.

I’d also been in App Store Connect, which showed a “heap of page views but basically none of them converted”. The placement breakdown explained the clicks: 210 of the 213 came from one placement group, Audience Network.

I asked: “Should we leave it on for a day or save money and switch audience network off?” Then I had the placements cut down to Facebook and Instagram, and the campaign went back on at about 9:30. At 2:25pm I paused it again, with still no conversions to show for it, and asked for a post-mortem.

Why did Audience Network give me 210 clicks for A$2.09?

These are the final numbers at the pause:

Placement groupLink clicksLink CTRSpendPer clickImpressions
Audience Network21043.39%A$2.09A$0.01484
Facebook + Instagram591.22%A$71.22A$1.214,830
Total2695.06%A$73.31A$0.275,314
Two bars drawn to scale. Audience Network was 78.1 percent of link clicks but 2.9 percent of spend; Facebook and Instagram were 21.9 percent of clicks and 97.1 percent of spend. Audience Network Facebook + Instagram share of link clicks · 269 78.1% 210 clicks 21.9% 59 clicks 43.39% CTR A$0.01 a click 1.22% CTR A$1.21 a click 97.1% A$71.22 2.9% A$2.09 share of spend · A$73.31
Same 269 clicks, drawn to scale: a share of clicks against a share of the bill

Audience Network is how Meta shows your ads inside other people’s apps, and Meta lists it as a placement next to Facebook and Instagram. Mine was switched on.

Were the Audience Network clicks fake?

I don’t know, and nothing in my data shows that they were. A 43% click rate next to 1.22% on Facebook and Instagram in the same campaign isn’t the same kind of click. Meta said in 2017 that accidental clicks on Audience Network ads exist and that it stopped counting the ones it could classify, so accidental or low-intent taps are plausible. Bots or fraud I can’t support, so I’m not claiming them.

A$0.01 a click and a 43% click rate made the dashboard look like a hit while the App Store showed page views and next to no downloads. Switching Audience Network off fixed the headline and nothing else. The A$71.22 that went to Facebook and Instagram bought 59 link clicks at about A$1.21 each, and I couldn’t say what any of them did next. That was the real problem.

Why did Meta show no app installs?

In Events Manager, the app’s data source was marked “Inactive” with the note “Never received event”, and every standard event sat at zero from 30 August to 26 September. The Mobile App Install result in the campaign table was a dash. Meta counts installs recorded as app events, so a dash means nothing was recorded. It says nothing about whether anyone installed.

None of this was a surprise. Before launching I asked my agent to check that tracking was wired up. Thirty-seven minutes before I published, it reported back that tracking wasn’t ready to launch: Meta had never received a native app event. Two minutes later I told it to activate the campaign anyway. Meta still let me publish once I accepted its low-volume warning for Aggregated Event Measurement. My written post-mortem from the Sunday afternoon puts it politely: measurement readiness “was not established”.

Some context. On 16 September I decided to build OldMate’s iPhone attribution on Apple’s SKAdNetwork only: no Meta SDK, no advertising ID, no connection from the app to an ad network. That avoids the tracking prompt and the “Data Used to Track You” label, and the commit message says what it costs: “Meta’s own optimisation loop”. It was a deliberate privacy call. But Meta’s help page says iOS 14 campaign results come from SKAdNetwork, and its own SKAdNetwork setup wouldn’t let me set up a custom conversion schema until it had received events through its SDK, its API or a measurement partner. SKAdNetwork alone didn’t get me in the door.

What did the 269 clicks turn into?

Apple. 25 September (UTC) was the latest complete day in App Store Connect. It showed 154 unique devices viewing the product page from app referrers and 1 first-time download, credited to App Store Search. I wouldn’t lean on it: that day covers at most the first 16 hours or so after I published, so none of Sunday’s spend is in it, and app referrer lumps together every app that sends people to your page, so it can’t isolate the ad.

The app itself. In the campaign window, three distinct identities opened the production app. Two already existed before the campaign started. The third finished onboarding, and in my accounts table it had saved no people and no notes. I don’t know where it came from. Another account created on 25 September did save a person and two notes, but nothing ties it to the ads, so I’m not counting it.

I could divide A$73.31 by one and call it a cost per acquisition. It would look like a measurement and it wouldn’t be one.

The web campaigns had numbers, with a catch

My two earlier web campaigns optimised for a registration event on the website, and that event was firing: A$94.20 for 8 Meta-attributed registrations on the weekend (A$11.78 each) and A$348.99 for 32 on the weekday run (A$10.91 each). Meta’s numbers aren’t mine, though. It counts under a 7-day click, 1-day view or 1-day engaged-view window, and at the weekend campaign’s midpoint it reported 4 registrations while my accounts table showed 5 new accounts from all sources, 4 of them email-confirmed and 1 with any saved notes. Meta’s four and my four confirmed accounts happened to match, but nothing showed they were the same people. It was still a number I could argue with, and the app campaign had nothing to argue with.

What to check before running app install ads on a small budget

Two rows of steps. What I did: got warned that Meta had never received an app event, published anyway, spent A$73.31, paused. What to do first: wire the event source, send a test event, do a fresh install end to end, then spend. what I did warned never received an app event publish anyway, 5 ads A$200 cap spend A$73.31 pause 27 Sep, 2:25pm what I'd do first wire it event source connected test event send one, watch it land fresh install install, sign up, save a note then spend small, and read it per placement
The order I used, and the order I'd use now
  1. Wire the event source and watch a test event arrive. If the data source says “Never received event”, stop there. Meta documents a Test events tool for app events in Events Manager.
  2. Do a fresh install on a clean phone and walk the whole path: download, open, make an account, save a note. Count each step separately; they fail separately.
  3. Read results per placement from the first hour. A blended CTR hid one placement group until I went looking.
  4. Pick a success measure that isn’t a click. Mine is an email-confirmed account that saves a first note.
  5. Change one thing at a time. Five ads, a short run, a placement switch and two pauses meant the 59 Facebook and Instagram clicks taught me very little.

With A$200 you can’t buy scale. You can buy information, and information needs a funnel you can see.

How it ended

That campaign stayed paused, and A$126.69 of its cap went unspent. How installs get attributed is a real trade: Meta’s SDK would feed its optimiser and, the way I read Apple’s rules, mean a tracking prompt and a privacy-label change. The store screenshots were mostly plain app screens too, but whether that cost downloads is a guess, and I’ve since replaced them on both stores.

Before you spend a dollar on app-install ads, check that the platform can hear an install. Until it can, a click count is only a record of where the money went.

// join 78 subscribers

Enjoyed that? There are more.

Hi! I'm Jonah and I have thoughts that I share — sometimes. Sign up to receive awesome content in your inbox every week, month, when I get around to it. We don't spam. That's yuck.

Double opt-in — check your inbox (or spam folder) to confirm.