Attribution, cohorts and ROAS for mobile apps and games: every install tied to the campaign that paid for it, with D0–D30 retention, ARPU and ROAS by day, country and campaign.
Everything an MMP shows you: who installed from which ad, what they earned, and whether the campaign paid for itself.
Every install matched to its click: tracking link, Play referrer, advertising id or IP window. Transparent rules, in order.
Day × country × platform × campaign. D0–D30 retention, ARPU, ROAS and gross profit in a sortable table or heatmap.
Meta, Google, TikTok and AppLovin spend pulled nightly. MAX, Adapty and store reports fill revenue before the SDK ships.
Installs and purchases forwarded to Meta CAPI and Google's conversion API so campaigns keep optimizing without their SDKs.
No partner status, no sales call. Three steps and the first cohort shows up the next morning.
Its app token and tracking link are generated instantly. iOS, Android, macOS and the web are one app; a Mac app with its own App Store record, not a universal purchase, is an app of its own.
Meta token, AppLovin Report Key, Google and TikTok OAuth, App Store Connect, Play Console, Adapty. Each on its own tab with a connected badge.
Or two lines of code. Installs arrive attributed; daily revenue was already flowing from the server side.
One dashboard instead of five tabs. Spend, installs, revenue and cohorts on the same row, with mature cohorts counted separately.
Works with the networks and stores your team already uses.
Tracking link click id → Meta and Google Play referrers → advertising id or Meta's own click, whichever is later → IP + platform → Meta view. First match wins; the source is stored on every user.
MAX revenue, MAX cohorts, Adapty purchases, App Store Connect and Play Console reports arrive server-side, so ROAS shows up on day one.
Pick columns, filter by value, drag to reorder, save named reports, export CSV. The same table for spend, daily revenue and cohorts.
Unity, Flutter, Godot, native Android and iOS SDKs, or a plain HTTP API. Events are queued on disk, batched and retried; the SDK never takes the app down.
void Awake()
{
Roasit.Roasit.Init("https://roasit.com", "your_app_token");
}
// after a purchase: what it charged (RoasitCharged, from
// your app's SDK tab: 0 for a free-trial start, and 0
// while Google Play holds it as deferred, not paid yet:
// ProcessPurchase runs again once it is) and the store's
// order id (on Google Play the GPA.… order id)
var deferred = googlePlayExtensions != null &&
googlePlayExtensions
.IsPurchasedProductDeferred(product);
var charged = deferred ? 0
: RoasitCharged(product, appleExtensions);
if (charged > 0)
Roasit.Roasit.TrackIap(product.definition.id,
(decimal)charged, product.metadata.isoCurrencyCode,
orderId);Nothing up to 3,000 attributed installs a month, with every feature and no card. Organic installs are always free and never counted. Paid plans start at $49 a month (Starter, 15,000 attributed installs); yearly is two months free.
No. Attribution uses our tracking link, the Play install referrer (Meta's encrypted payload and Google's gclid included), Meta's own Install Referrer on Android and, as a fallback, IP matching inside a 24-hour window. IDFA is optional.
Spend from Meta, Google, TikTok and AppLovin, MAX ad revenue, Adapty purchases, and App Store / Play Console installs and IAP arrive from the server side. MAX's cohort API even fills D0–D30 revenue and retention per install day.
Events are queued on disk and sent in batches. Network errors and 5xx responses are retried with backoff; nothing is lost when the app closes.
Yes. Installs and purchases are forwarded to Meta's Conversions API and Google's App Conversion Tracking API from the server, so campaigns keep receiving signals.
On Roasit's servers, which we run for you. It stays there unless you export it: the raw events can go to your own S3 bucket. No per-user pricing.
Apple sends SKAdNetwork postbacks straight to Roasit when the app's Info.plist names it; the SDK sets conversion values from your revenue schema. Campaign-level iOS results without a separate attribution provider, next to device-level attribution for the rest.
Native Android (Kotlin) and iOS (Swift), Flutter (Dart) on mobile and the web, the Unity (C#) and Godot (GDScript) engines, and a JavaScript snippet for websites, whose purchases Roasit reads from your Stripe account; plus a plain HTTP API for anything else. On macOS: Mac App Store apps, built with Swift (AppKit, SwiftUI or Mac Catalyst), Flutter, Unity or Godot. A Mac build sold outside the Mac App Store (Developer ID, Steam) is counted as a desktop build, with no attribution.
Free up to 3,000 attributed installs a month. No card needed.