Know which ads pay back.

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.

Start freeFree up to 3,000 attributed installs a month · No card neededSee pricing
⌂ Overview × Meta Ads × Google Ads × TikTok Ads ×+ Add view
+ WidgetApps My App ⌃+ Filter▦ Last 30 days · Aug 4 – Sep 2
Total installs ⛛1,456,002
Ad spend ⛛$24,601
ROAS ⛛2.65
1D retention ⛛18.9%
Installs by network Group by network
Meta62%
AppLovin21%
Google9%
Organic8%
Ad spend vs revenue Daily
RevenueAd spend
Retention cohorts D1 · D3 · D7 · D14 · D30
09-01
09-02
09-03
09-04
09-05
MetaMarketing API
GoogleAds API
TikTokMarketing API
AppLovinAxon & MAX
AdaptyWebhook
StripeWeb payments
App StoreConnect API
Google PlayConsole reports
5ad networksMeta, Google, TikTok, AppLovin Axon, MAX
D0–D30cohort windowsretention, ARPU, ROAS per install day
6SDKs + HTTP APIUnity, Flutter, Godot, Android, iOS, web
0per-user feesunlimited apps and members

Unlock the full picture.

Everything an MMP shows you: who installed from which ad, what they earned, and whether the campaign paid for itself.

☺click_ref · TR_android_video
◎

Mobile attribution

Every install matched to its click: tracking link, Play referrer, advertising id or IP window. Transparent rules, in order.

D1D3D7D14D30
09-01
09-02
09-03
09-04
▦

Cohort reports

Day × country × platform × campaign. D0–D30 retention, ARPU, ROAS and gross profit in a sortable table or heatmap.

ROAS 2.65
$

Spend & revenue, automated

Meta, Google, TikTok and AppLovin spend pulled nightly. MAX, Adapty and store reports fill revenue before the SDK ships.

installpurchase
⇄

Postbacks

Installs and purchases forwarded to Meta CAPI and Google's conversion API so campaigns keep optimizing without their SDKs.

Live in an afternoon.

No partner status, no sales call. Three steps and the first cohort shows up the next morning.

01

Add your app

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.

02

Connect networks and stores

Meta token, AppLovin Report Key, Google and TikTok OAuth, App Store Connect, Play Console, Adapty. Each on its own tab with a connected badge.

03

Drop the prefab, ship

Or two lines of code. Installs arrive attributed; daily revenue was already flowing from the server side.

Everything in one stack.

One dashboard instead of five tabs. Spend, installs, revenue and cohorts on the same row, with mature cohorts counted separately.

Connect your tools

Works with the networks and stores your team already uses.

Attribution, in the open

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.

  • Meta campaign, ad set and ad decrypted on Android - same-session taps from the Play referrer, views and earlier-session taps from Meta's own Install Referrer (needs your Facebook App ID in the SDK)
  • Google campaign names from Google's own response
  • No ATT prompt required

Daily data without the SDK

MAX revenue, MAX cohorts, Adapty purchases, App Store Connect and Play Console reports arrive server-side, so ROAS shows up on day one.

  • D0–D30 ad revenue and retention from MAX's cohort API
  • Purchases and refunds from Adapty in real time
  • Store installs and IAP by country

Report like an MMP

Pick columns, filter by value, drag to reorder, save named reports, export CSV. The same table for spend, daily revenue and cohorts.

  • Group by platform, country, network, campaign
  • Heatmap view for retention and ROAS
  • Members with per-app access

Two lines of code.

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.

  • Install, session, MAX impression revenue and IAP
  • Play and Meta install referrers read on first open
  • Prefab or code; downloadable from the dashboard
Bootstrap.cs
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);

Questions?
We got answers.

What does Roasit cost?

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.

Do I need an advertising ID or the ATT prompt?

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.

What works before the SDK is in the app?

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.

How does the SDK behave offline?

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.

Do the networks keep optimizing without their SDKs?

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.

Where does the data live?

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.

How does iOS attribution work without an MMP?

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.

Which platforms and engines are supported?

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.

Know which ads pay back.

Free up to 3,000 attributed installs a month. No card needed.