Apps

Monetize your app with an offerwall SDK.

Let free users earn the credits, points or premium time your app already sells by completing offers. A native SDK opens the wall, your server holds the key, and signed postbacks credit every reward.

  • 3,000+offers to choose from
  • Single-usetokens, no key in the app
  • 5 SDKsAndroid, iOS and plugins

How do you monetize an app with an offerwall?

You add an offerwall screen where signed-in users complete offers from advertisers, such as trying another app or finishing a survey, and earn your app’s own currency: AI credits, premium days, hints or points. You are paid per completed offer, and a signed postback tells your server when to credit the user. It works best in apps that already have something to earn and users who will not pay. Building a game instead? See offerwalls for games.

How it works for Apps.

From the first click to the reward in your currency, in five steps.

  1. User taps Earn credits

    A signed-in user opens your Earn screen, for example from an out-of-credits prompt, and your app asks your server for a session.

  2. Your server gets a token

    Your server calls POST /v1/session with your API key and that user's ID. The token works once, for 10 minutes.

  3. The wall opens natively

    The SDK opens the wall in a native screen with your currency name, icon and colors. Offers match the user's country and device.

  4. User completes an offer

    The user finishes an offer, such as reaching a goal in another app. The advertiser confirms it, sometimes days later.

  5. Your server adds credits

    A signed postback reaches your server, which adds the credits. If an offer is reversed, a second postback tells you to take them back.

Why Apps owners add Moonetix.

One pay-per-result affiliate network, built around your currency and your users.

  • Pays in your own currency

    Set the name, icon and rate: AI credits, premium days, hints or points. Users earn what your app already sells, not cash.

  • No secret ships in the app

    Only the App ID lives in your build. Your server keeps the API key and asks for a single-use token each time a user opens the wall.

  • Native SDK screens

    The Android and iOS SDKs, plus the Flutter and React Native packages, open the wall natively with your colors and tell your app when it closes.

  • Credits only from your server

    Every credit and every reversal arrives as a signed server-to-server postback, so a modified app cannot add credits on its own.

  • Earns from users who never pay

    Free users who will not subscribe can fund their own usage with offers. See how to monetize free users.

  • Reports by offer and sub ID

    See clicks, conversions and reversals by country, offer and sub ID, plus a traffic quality report and a Reporting API.

One token, one native screen.

No API key ships in your app. Your server asks Moonetix for a single-use session token, and the SDK opens the offerwall with it.

  1. User taps EarnSigned in to your app
  2. Your serverPOST /v1/session with your API key
  3. Session tokenWorks once, for 10 minutes
  4. Native screenThe SDK opens the offerwall
session.php
<?php
// POST /api/moonetix/session: a fresh token for the signed-in user
$user = current_user();
if (!$user) {
    http_response_code(401);
    exit;
}
 
$key = getenv('MOONETIX_API_KEY');
$ch  = curl_init('https://api.moonetix.com/v1/session');
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    CURLOPT_POSTFIELDS     => http_build_query(['user_id' => (string)$user->id]),
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT        => 10,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $key],
]);
$data = json_decode((string)curl_exec($ch), true);
$code = (int)curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
 
header('Content-Type: application/json');
if ($code === 201 && !empty($data['token'])) {
    echo json_encode(['token' => $data['token']]);
    exit;
}
http_response_code($code === 403 ? 403 : 503);
echo json_encode(['error' => 'offerwall_unavailable']);
EarnActivity.kt
// Once, in your Application class
Moonetix.init(applicationContext, "YOUR_APP_ID")
 
// When the user taps Earn
Moonetix.open(activity, token)

Store rules for rewarded apps.

Apple and Google allow optional rewards inside apps, with hard lines around forced installs, reviews, crypto and kids. Checked against the official pages below.

Do

  • Keep the wall optional. Apple’s guideline 3.2.2(x) lets you incentivize actions in your app, but not force users to download other apps to use it.
  • Sell credits on iOS only through in-app purchase (3.1.1). Bought credits may not expire, so if earned and bought credits share one balance, let none expire.
  • Give your app its own purpose. Google Play bars apps whose main functionality is rewarding installs of other apps, and Apple rejects apps made mainly for ads.
  • Put a neutral age screen in front of the wall in a mixed-audience app, and show the wall only to users aged 16 and over.

Do not

  • Never reward ratings or reviews, in your app or through any offer. Apple and Google Play both prohibit incentivized reviews.
  • Don’t pay crypto for offers in a crypto app on iOS. Guideline 3.1.5(v) bars currency for tasks such as downloading other apps.
  • Don’t add the wall to a kids’ app. Google’s Families policy names offerwalls, and Apple’s 5.1.4 bars third-party ads in apps for kids.
  • Don’t lock a core feature behind the wall. Users must reach every feature by using your app, with offers only as a faster option.

Sources, checked on November 5, 2026: Apple App Review Guidelines, Google Play: User Ratings, Reviews, and Installs, Google Play Families Policies. Platform rules change, so check them before you launch.

Set it up in four steps.

  1. Apply as a publisher

    Apply with your app’s store listing. Every application is reviewed by hand, and once you are approved, every app you add is live right away. Get approved.

  2. Set up your credits currency

    Name it after what users spend, such as credits or premium days. Set the icon, units per $1, user split and rounding. The currency calculator helps.

  3. Add a token endpoint and SDK

    Your server calls POST /v1/session for the signed-in user. The app passes the token to the Android or iOS SDK, or the Flutter or React Native package.

  4. Credit from postbacks, then test

    Handle signed postbacks for credits and reversals, send test postbacks from the Integration tab, and test on a normal connection, not a VPN. Checklist.

What could it earn?

Slide to your audience and adjust the assumptions. The rates are an example, not a promise: placement, countries, and devices change every result.

Open the full calculator

Estimate your earnings

Slide to your monthly audience

10,000
5001M
  • 8% open the wall
  • 10% finish an offer
  • $1.20 per completion
Estimated monthly earnings $93.12
Per year $1,117.44Per 1,000 users $9.31

Example rates, not a promise. Placement, countries, and devices change every result.

Adjust the assumptions

Guides for Apps.

Step-by-step guides from the Moonetix Academy.

Can You Put an Offerwall in an iOS App? Apple's Rules What Apple's App Review Guidelines say about rewarded offers in iOS apps: guideline 3.2.2, in-app purchase and currency, ATT, privacy labels, kids, and how to lower review risk. 12 min read How to Add an Offerwall to an Android App (Kotlin) Add an offerwall to an Android app in Kotlin with the Moonetix Android SDK: install it from Gradle, create a single-use session on your server, open the wall with one call, and credit users only from signed postbacks. 11 min read How to Add an Offerwall to an iOS App (Swift) Add an offerwall to an iOS app with the MoonetixOfferwall SDK: install it with Swift Package Manager or CocoaPods, create a single-use session on your server, open the wall from UIKit or SwiftUI, and credit users from postbacks. 11 min read How to Monetize an AI App or Chatbot (Free Users Too) Every free user of an AI app costs you inference. How to price subscriptions and credit packs, set free limits, use ads and rewarded credits, and follow app store rules. 12 min read How to Monetize Free Users Without a Paywall Most users of apps, games and SaaS never pay. Here are the ways to earn from them while the product stays free, which ones fit your product type, and how to measure the result. 10 min read Best Offerwall SDKs for Android Apps in 2026 How to choose an offerwall SDK for an Android app, with a side-by-side check of six real SDKs: minimum Android version, size, dependencies, advertising ID use, reward postbacks, and what each one means for your Google Play Data safety form. 11 min read

Apps questions

What apps owners ask before they add Moonetix.

Still have a question? Contact us

What is the best way to add an offerwall to an app?

Pay offers in a currency your app already uses, such as AI credits, premium days or hints, and place the Earn button where users run out. Credit users only from server-side postbacks.

Can I add an offerwall to an Android app?

Yes. The Moonetix Android SDK supports Android 5.0 (API 21) and newer, installs with one Gradle dependency, and adds only the internet permission. See the Kotlin guide.

Does Apple allow offerwalls in iOS apps?

In most cases, if the wall is optional and pays your own in-app currency. Guideline 3.2.2(x) allows incentives for actions in your app but bans forcing downloads or reviews. See offerwall rules for iOS apps.

Do I have to put my API key in the app?

No. Only the App ID, which is not a secret, ships in your build. Your server keeps the API key and requests a single-use token for the signed-in user, which works once, for 10 minutes.

Can users earn AI credits from offers?

Yes. Name your currency credits and price it so the inference cost of the credits stays below what an offer pays you. How to monetize an AI app shows the math.

Does the offerwall need an App Tracking Transparency prompt?

According to the iOS SDK docs, it does not track users across apps or use the advertising identifier. Whether you need ATT depends on every SDK in your app, so check the others too.

How old must users be to use the offerwall?

At least 16, and users under 18 need a parent’s or guardian’s permission. Keep the wall out of apps for children, as offerwalls and COPPA explains.

Which users see offers?

Offers depend on the user’s country and device. Users on VPNs, proxies, Tor or data center networks are blocked from the wall.

Turn your traffic into earnings.

Create a free publisher account and earn from every offer your users complete on your website, app, game, or community.

Worldwide targeting