Rewarded Ads

Both rewarded and rewarded interstitial ads offer users a reward for engaging with an ad.

In the examples below, a rewarded ad is displayed when the menu item is clicked. This is a use-case for a rewarded ad.

The ad could also be displayed at natural breaks in the app (e.g. between two screens) and automatically reward users for watching without explicit opt-in. This would be an example of a rewarded interstitial ad.

The reward event will be sent each time a user earns a reward. You can use this event to trigger providing the user a reward in your app. For example, after watching a rewarded ad, you might give the user bonus points or unlock a new level.

iOS

The event .reward includes the reward type and amount.

final class RewardedAdManager: NSObject, ObservableObject, FuseFullScreenAdViewDelegate {
    private let ad: FuseFullScreenAdView

    init(code: String) {
        ad = FuseFullScreenAdView(code: code)
        ad.delegate = self
    }

    func showAd() {
        ad.show()
    }

    func onEvent(adView: FuseFullScreenAdView, event: FuseAdViewEvent) {
        switch (event) {
        case .reward(let type, let amount): print("Reward received: \(amount) of \(type)")
        default: print("Ad event: \(event)")
        }
    }
}

struct MyView: View {
    @StateObject private var adManager = RewardedAdManager(code: "<zone_code>")

    var body: some View {
        NavigationStack {
            ScrollView {
                VStack {
                    // ...

                    Button("Show rewarded ad") {
                        adManager.showAd()
                    }

                    // ...
                }
            }
        }
    }
}

For more examples, see the iOS example repository.

Android

The event FuseAdViewEvent.Reward includes the reward type and amount.

class MainActivity : AppCompatActivity() {
    private var rewardedAd = FuseFullScreenAdView(this, "<zone_code>").apply {
        listener = object : FuseFullScreenAdViewListener {
            override fun onEvent(
                adView: FuseFullScreenAdView,
                event: FuseAdViewEvent,
            ) {
                val msg = when (event) {
                    is FuseAdViewEvent.Reward -> "Reward received: ${event.amount} of ${event.type}"
                    else -> "Ad event: $event"
                }
                msg?.let {
                    println(it)
                }
            }
        }
    }

    override fun onOptionsItemSelected(item: MenuItem): Boolean = when (item.itemId) {
        R.id.action_rewarded -> {
            rewardedAd.show(this)
            true
        }

        else -> super.onOptionsItemSelected(item)
    }
}

For more examples, see the Android example repository.

Flutter

Rewarded ads in Flutter follow the same pattern as interstitial ads, with the addition of reward event handling. Create a FuseFullScreenAdView and call show(). Listen for reward events via the onEvent callback. See the Interstitial section for the base implementation.