Available banner ad sizes:
| Banner Size | Description | Devices | AdSize constant |
| 320x50 | Banner | Phone and Tablet | TappxBannerSize320x50 |
| 728X90 | Banner | Tablets | TappxBannerSize728x90 |
| - | Smart Banner | Phone and Tablet | TappxBannerSmartBanner |
| 300x250 | IAB Medium Rectangle | Phone and Tablet | TappxBannerSize300x250 |
To set up a banner ad, add the following lines to the ViewController:
#import <TappxFramework/TappxAds.h>
@interface ViewController () <TappxBannerViewDelegate>
@property (retain, nonatomic) TappxBannerView* tappxBanner;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
_tappxBanner = [[TappxBannerView alloc] initWithDelegate:self
andSize:TappxBannerSmartBanner];
[self.addTappxBannerViewToView: _tappxBanner];
[_tappxBanner setRootViewController:self];
[_tappxBanner load];
}
- (void)addTappxBannerViewToView:(UIView *)tappxView {
tappxView.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:tappxView];
[self.view addConstraints:@[
[NSLayoutConstraint constraintWithItem:tappxView
attribute:NSLayoutAttributeBottom
relatedBy:NSLayoutRelationEqual
toItem:self.view.safeAreaLayoutGuide
attribute:NSLayoutAttributeBottom
multiplier:1
constant:0],
[NSLayoutConstraint constraintWithItem:tappxView
attribute:NSLayoutAttributeCenterX
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeCenterX
multiplier:1
constant:0]
]];
}
@end
import UIKit
import TappxFramework
class ViewController: UIViewController
{
var tappxBanner: TappxBannerView?
override func viewDidLoad() {
super.viewDidLoad()
self.tappxBanner = TappxBannerView(delegate: self, size: .smartBanner,position:.bottom)
self.addTappxBannerViewToView(tappxView: self.tappxBanner!)
self.tappxBanner?.setRootViewController(rootViewController: self)
self.tappxBanner?.load()
}
func addTappxBannerViewToView(tappxView: UIView) {
tappxView.translatesAutoresizingMaskIntoConstraints = false;
self.view.addSubview(tappxView)
self.view.addConstraints(
[
NSLayoutConstraint.init(item: tappxView, attribute: .bottom, relatedBy: .equal, toItem: self.view.safeAreaLayoutGuide, attribute: .bottom, multiplier: 1, constant: 0),
NSLayoutConstraint.init(item: tappxView, attribute: .centerX, relatedBy: .equal, toItem: self.view, attribute: .centerX, multiplier: 1, constant: 0)
]
)
}
}
import SwiftUI
import TappxFramework
struct BannerAdTappxView: View {
let navigationTitle: String
var body: some View {
VStack {
UITappxBannerView(size: .size320x50, animation: .random){
event in
switch event {
case .didClose(bannerView: let bannerView):
debugPrint("didClose \(bannerView)")
break
case .didPress(bannerView: let bannerView):
debugPrint("didPress: \(bannerView)")
break
case .didFinishLoad(bannerView: let bannerView):
debugPrint("didFinishLoad \(bannerView)")
break
case .didFail(bannerView: let bannerView, error: let error):
debugPrint("didFail \(bannerView) with error: \(error)")
break
}
}
}
}
}
#Preview {
BannerAdTappxView(navigationTitle: "Banner")
}
TIP: we recommend sending additional information with your ad requests to improve performance. Check Advanced Settings section.
-(void) tappxBannerViewDidFinishLoad:(TappxBannerView*) vc{
NSLog(@"BANNER: DidFinishLoad");
}
-(void) tappxBannerViewDidFail:(TappxBannerView) viewController
withError:(TappxErrorAd) error{
NSLog(@"BANNER: DidFail %@", error.descriptionError);
}
-(void) tappxBannerViewDidPress:(TappxBannerView*) vc{
NSLog(@"BANNER: DidPressr");
}
-(void) tappxBannerViewDidClose:(TappxBannerView*) vc{
NSLog(@"BANNER: DidClose");
}
extension AdViewController: TappxBannerViewDelegate {
func tappxBannerViewDidFinishLoad(_vc: TappxBannerView!) {
print("BANNER: FinishLoad")
}
func tappxBannerViewDidFail(_vc: TappxBannerView!, withError error: Error!) {
print("BANNER: Failed %@", error.localizedDescription)
}
func tappxBannerViewDidPress(_vc: TappxBannerView!) {
print("BANNER: DidPress")
}
func tappxBannerViewDidClose(_vc: TappxBannerView!) {
print("BANNER: DidClose")
}
}
After ad was successful shown and no longer needed, it can be destroyed.
if(_tappxBanner != nil)
{
[_tappxBanner removeBanner];
[_tappxBanner removeFromSuperview];
_tappxBanner = nil;
}
if self.tappxBanner != nil {
self.tappxBanner?.removeBanner()
self.tappxBanner?.removeFromSuperview()
self.tappxBanner = nil
}
By default, banner ads periodically change every 30 seconds. To set the frequency of ad refresh use the following:
[_tappxBanner setTimeRefresh:45];
self.tappxBanner?.setTimeRefresh(45)
The minimum refresh time is 30 seconds and the maximum is 150 seconds.
To disable automatic ad refresh, use:
[_tappxBanner disableRefresh];
self.tappxBanner?.disableRefresh()
Banner ads example: Objective-C | Swift | SwiftUI
MREC ads example: Objective-C | Swift | SwiftUI
Complete demo: Objective-C | Swift | SwiftUI