Rewarded
Display Rewarded ads
To display rewarded ads, use the showAd function as shown in the example below:
#import <Bidease/Bidease.h>
NS_ASSUME_NONNULL_BEGIN
@interface ViewController : UIViewController<BideaseShowDelegate>
@property(nonatomic) BideaseRewarded* rewarded;
@end
NS_ASSUME_NONNULL_END
@implementation ViewController
- (id)initWithCoder:(NSCoder *)coder
{
if (self = [super initWithCoder:coder])
{
_rewarded = [[BideaseRewarded alloc]initWithPlacementId:@"PlacementID"];
}
return self;
}
-(void)showAd
{
__weak typeof(self)weakSelf = self;
[_rewarded bidWithContext:nil bidfloor:nil completion:^(id<BDEAuctionBid> bid, NSString* requestId, NSError* error) {
if (nil == bid)
{
NSLog(@"Bid failed %@", error);
return;
}
[bid onWin:nil];
[weakSelf.rewarded loadWithBid:bid completion:^(id<BideaseAd> ad, NSError* error) {
if (nil == ad)
{
NSLog(@"Load failed %@", error);
return;
}
ViewController* strongSelf = weakSelf;
if (nil != strongSelf)
{
[strongSelf.rewarded showWithDelegate:strongSelf];
}
}];
}];
}
#pragma mark - BideaseShowDelegate methods
-(void)onAdWillAppear:(BideaseAd*)ad providerId:(int)providerId sender:(BideaseAdvertising*)sender
{
NSLog(@"onAdWillAppear");
}
-(void)onAdDidDisappear:(BideaseAd*)ad providerId:(int)providerId sender:(BideaseAdvertising*)sender
{
NSLog(@"onAdDidDisappear");
}
-(UIViewController*)viewControllerForPresentingModalView
{
return self;
}
-(void)onAd:(BideaseAd*)ad didReceiveReward:(int)reward currency:(NSString*)gameCurrency providerId:(int)providerId sender:(BideaseAdvertising*)sender
{
NSLog(@"onAddidReceiveReward");
}
-(void)onAdClicked:(BideaseAd*)ad providerId:(int)providerId sender:(BideaseAdvertising*)sender
{
NSLog(@"onAdClicked");
}
-(void)onAdReported:(BideaseAd*)ad reason:(NSString*)reason providerId:(int)providerId sender:(BideaseAdvertising*)sender
{
NSLog(@"onAdReported");
}
-(BOOL)shouldShowAd:(BideaseAdvertising*)sender
{
return YES;
}
-(void)onAdFailedToAppear:(BideaseAd*)ad error:(NSError*)error providerId:(int)providerId sender:(BideaseAdvertising*)sender
{
NSLog(@"onAdFailedToAppear %@", error.localizedDescription);
}
@endimport Bidease
class ViewController: UIViewController , BideaseShowDelegate {
let rewarded:BideaseRewarded
func showAd() {
let rw = rewarded
rw.bid(withContext: nil, bidfloor: nil) { [weak self] bid, requestId, error in
guard let bid = bid else {
print("Bid failed")
return
}
bid.onWin(nil)
rw.load(with: bid) { ad, error in
guard nil != ad else {
print("Load failed")
return
}
if let delegate = self {
rw.show(with: delegate)
}
}
}
}
required init?(coder: NSCoder) {
rewarded = BideaseRewarded(placementId: "PlacementID")
super.init(coder: coder)
}
func onAdWillAppear(_ ad: any BideaseAd, sender: BideaseAdvertising) {
print("onAdWillAppear");
}
func onAdDidDisappear(_ ad: any BideaseAd, sender: BideaseAdvertising) {
print("onAdFailedToAppear")
}
func onAdFailed(toAppear ad: (any BideaseAd)?, error: Error, sender: BideaseAdvertising) {
print("onAdFailedToAppear")
}
func onAdClicked(_ ad: any BideaseAd, sender: BideaseAdvertising) {
print("onAdClicked")
}
func shouldShowAd(_ sender: BideaseAdvertising) -> Bool {
return true
}
func onAd(_ ad: BideaseAd,
didReceiveReward reward: Int,
currency gameCurrency: String,
providerId: Int,
sender: BideaseAdvertising) {
print("onAdDidReceiveReward")
}
}import SwiftUI
import Bidease
final class BideaseRewardedController: NSObject, ObservableObject, BideaseShowDelegate {
private let rewarded: BideaseRewarded
override init() {
self.rewarded = BideaseRewarded(placementId: "PlacementID")
super.init()
}
func showAd(from viewController: UIViewController) {
rewarded.bid(withContext: nil, bidfloor: nil) { [weak self] bid, requestId, error in
guard let self, let bid else {
print("Bid failed")
return
}
bid.onWin(nil)
self.rewarded.load(with: bid) { ad, error in
guard ad != nil else {
print("Load failed")
return
}
self.rewarded.show(with: viewController, delegate: self)
}
}
}
// MARK: - BideaseShowDelegate
func onAdWillAppear(_ ad: any BideaseAd, sender: BideaseAdvertising) {
print("onAdWillAppear")
}
func onAdDidDisappear(_ ad: any BideaseAd, sender: BideaseAdvertising) {
print("onAdDidDisappear")
}
func onAdFailed(toAppear ad: (any BideaseAd)?, error: Error, sender: BideaseAdvertising) {
print("onAdFailedToAppear")
}
func onAdClicked(_ ad: any BideaseAd, sender: BideaseAdvertising) {
print("onAdClicked")
}
func shouldShowAd(_ sender: BideaseAdvertising) -> Bool {
true
}
func onAd(
_ ad: BideaseAd,
didReceiveReward reward: Int,
currency gameCurrency: String,
providerId: Int,
sender: BideaseAdvertising
) {
print("onAdDidReceiveReward \(reward) \(gameCurrency)")
}
}
////////////////////////////////////////////////////////////////////////
//UIViewController Provider for SwiftUI
struct ViewControllerResolver: UIViewControllerRepresentable {
let onResolve: (UIViewController) -> Void
func makeUIViewController(context: Context) -> UIViewController {
let vc = UIViewController()
DispatchQueue.main.async {
onResolve(vc)
}
return vc
}
func updateUIViewController(_ uiViewController: UIViewController, context: Context) {}
}
//////////////////////////////////////////////////////////////////////////
//USAGE
struct ContentView: View {
@StateObject private var rewarded = BideaseRewardedController()
@State private var presenter: UIViewController?
var body: some View {
VStack(spacing: 24) {
Button("Show Rewarded Ad") {
if let presenter {
rewarded.showAd(from: presenter)
}
}
}
.background(
ViewControllerResolver { vc in
presenter = vc
}
)
}
}Updated 13 days ago