Avatarify
AI Studio
Highlights
- Attribution data in real time, replacing next-day reporting
- ~90% of events attributed
- Meta event match quality held after the switch
Blush is an AI dating simulator on iOS. Users practice conversation and flirting with AI-generated matches, each with its own backstory. It sits in Entertainment, where creative burns out fast, so the whole buy comes down to how many variants you can get in front of how many markets.

Anton Kovalchuk, Head of UA at Blush, buys across Meta web-to-app and Apple Ads. He tests creative country by country, and splits Reels from Feed to see where the same concept works harder. Every morning he goes through yesterday’s numbers and cuts what’s stopped paying back.
One channel, no room for mistakes
Almost all of Blush’s paid volume comes from Meta web-to-app campaigns, with a smaller volume through Apple Ads.
Running most of your buy through one channel changes the cost of being wrong. Across five sources, a campaign that underperforms for a day is noise inside a bigger portfolio. Through one, it’s a real share of the day’s spend, and it keeps spending until someone catches it.
Blush’s reporting refreshed once a day, covering the day before. Attribution data lived in AppsFlyer, but reading it meant exporting raw event logs and working out campaign performance by hand. For a same-day read on a campaign that launched that morning, that was the only option.
Attribution in real time
Anton moved paid attribution to Adapty Attribution, which reports ad spend against subscription revenue in real time, down to the individual ad and creative, across Meta, TikTok, and Apple Ads.
It works through a tracking link. The link carries the campaign, ad set, and creative through the click, and the Adapty SDK already in the app reports the install and every subscription event after it. A renewal three months later still resolves back to the ad that produced it.

The SDK was already running in Blush’s app, so there was nothing to build. Anton connected the Meta ad account through OAuth, created a campaign configuration, and pasted the generated click link into Meta Ads Manager as the destination URL.
It took ten minutes. Adapty’s team joined a 30-minute call to adjust the setup live while he ran it, and none of it needed an engineering ticket or an App Store release.
He didn’t take it on faith either. He ran Adapty Attribution and AppsFlyer in parallel and compared what each one attributed. Around 90% of events matched correctly to campaigns on both, and Meta’s event match quality held steady after the switch.
Adapty opens first, Meta second
Anton opens Adapty Attribution before he opens Meta Ads Manager.
He starts with the ad profit column to see whether yesterday finished in the black or the red, then works down through campaign performance to the individual ads inside each campaign, and finally to the same creative broken out by country to see where it holds. He splits Reels from Feed so he can compare one concept against itself across placements.
When a new creative, placement, or geo goes live, Anton doesn’t wait for the next day’s numbers. Once a campaign has enough spend and installs to give a reliable read on CPI, he decides that afternoon whether it continues.
Same-day data also catches things that aren’t campaign problems at all. A product or onboarding change can drop install-to-subscription conversion, and on next-day reporting that shows up only after another day of spend has gone out against traffic that wasn’t converting.
Campaigns lose payback over time, and the ones that do get stopped that morning, while the budget moves to whatever’s still working.
All of it runs on data from the same day. Under next-day reporting, every one of those decisions waited a cycle.
You can only push a channel as fast as you can read it
Reporting latency sets a ceiling on how hard you can work a channel.
Run most of your volume through one, and the gap between a campaign turning and someone catching it is where the money goes.
Blush closed theirs from the next morning to the same hour, with no loss in measurement quality and no engineering work.

