
它IMBanner只是一个用于UIView显示 HTML 广告的子类。InMobi SDK 提供了两种实现横幅广告的机制:
程序化实例化
1. 导入头文件并在文件中声明 Banner 实例ViewController.h,或者导入框架并在ViewController.swift文件中声明 Banner 实例。您的ViewController头文件应如下所示:
#import <UIKit/UIKit.h>
@import InMobiSDK;
@interface ViewController : UIViewController <IMBannerDelegate>
@property (nonatomic, strong) IMBanner *banner;
@end
import UIKit
import InMobiSDK
class ViewController: UIViewController, IMBannerDelegate {
var banner: IMBanner?
}
2. 实例化横幅对象。您的ViewController.m文件应如下所示:
- (void)viewDidLoad {
[super viewDidLoad];
self.banner = [[IMBanner alloc] initWithFrame: CGRectMake(0, 0, 320, 50) placementId:<placementId>];
self.banner.delegate = self;
[self.view addSubview:self.banner];
[self.banner load];
}
override func viewDidLoad() {
super.viewDidLoad()
banner = IMBanner.init(frame: CGRect(x: 0, y: 0, width: 320, height:
50), placementId: <Insert your placement ID here>)
banner?.delegate = self
view.addSubview(banner!)
banner?.load()
// Use this API to enable or disable auto refresh
banner?.shouldAutoRefresh(true)
// Use this API to set a custom refresh interval on the banner
banner?.refreshInterval = <refresh interval>
}
默认情况下,IMBanner广告每 60 秒刷新一次。您也可以设置自定义刷新间隔,或关闭自动刷新功能以手动加载广告。无论是手动加载还是自动刷新,两次连续广告加载之间的最小时间间隔都应为 20 秒。
// to turn off auto refresh set the below value to NO.
[self.banner shouldAutoRefresh:NO];
//to set custom refresh interval
[self.banner setRefreshInterval:40];
// to turn off auto refresh set the below value to NO. banner?.shouldAutoRefresh(false). //to set custom refresh interval banner?.refreshInterval = 40
3. 如果您想随时取消横幅广告,请使用取消 API:
[self.banner cancel];
self.banner.delegate = nil;
self.banner = nil;
self.banner.cancel();
self.banner.delegate = nil
self.banner = nil
4. 对于广告状态回调,请实现代理方法IMBannerDelegate。我们支持以下回调:
// Notifies that the ad is received with Meta info.
- (void)banner:(IMBanner*)banner didReceiveWithMetaInfo:(IMAdMetaInfo*)info {
NSLog(@"Banner Ad is received")
}
- (void)bannerDidFinishLoading:(IMBanner *)banner {
NSLog(@"bannerDidFinishLoading");
}
- (void)banner:(IMBanner *)banner didFailToLoadWithError:(IMRequestStatus *)error {
NSLog(@"banner failed to load ad");
NSLog(@"Error : %@", error.description);
}
- (void)bannerWillPresentScreen:(IMBanner *)banner {
NSLog(@"bannerWillPresentScreen");
}
- (void)bannerDidPresentScreen:(IMBanner *)banner {
NSLog(@"bannerDidPresentScreen");
}
- (void)bannerWillDismissScreen:(IMBanner *)banner {
NSLog(@"bannerWillDismissScreen");
}
- (void)bannerDidDismissScreen:(IMBanner *)banner {
NSLog(@"bannerDidDismissScreen");
}
- (void)userWillLeaveApplicationFromBanner:(IMBanner *)banner {
NSLog(@"userWillLeaveApplicationFromBanner");
}
-(void)banner:(IMBanner *)banner didInteractWithParams:(NSDictionary *)params{
NSLog(@"bannerdidInteractWithParams");
}
-(void)banner:(IMBanner*)banner rewardActionCompletedWithRewards:(NSDictionary*)rewards{
NSLog(@"rewardActionCompletedWithRewards");
}
public func banner(_ banner: IMBanner, didReceiveWithMetaInfo info: IMAdMetaInfo) {
print("Banner Ad is received")
}
public func bannerDidFinishLoading(_ banner: IMBanner) {
print("[ViewController %@] \(#function)")
}
public func banner(_ banner: IMBanner, didFailToLoadWithError error: IMRequestStatus) {
print("[ViewController %@] \(#function)")
print("Banner ad failed to load with error: \(error)")
}
public func banner(_ banner: IMBanner, didInteractWithParams params: [String : Any]?) {
print("[ViewController %@] \(#function)")
}
public func userWillLeaveApplicationFromBanner(_ banner: IMBanner) {
print("[ViewController %@] \(#function)")
}
public func bannerWillPresentScreen(_ banner: IMBanner) {
print("[ViewController %@] \(#function)")
}
public func bannerDidPresentScreen(_ banner: IMBanner) {
print("[ViewController %@] \(#function)")
}
public func bannerWillDismissScreen(_ banner: IMBanner) {
print("[ViewController %@] \(#function)")
}
public func bannerDidDismissScreen(_ banner: IMBanner) {
print("[ViewController %@] \(#function)")
}
public func banner(_ banner: IMBanner, rewardActionCompletedWithRewards rewards: [String : Any]) {
print("[ViewController %@] \(#function)")
}
您可以在刷新横幅对象时使用以下过渡效果:
UIViewAnimationTransitionNoneUIViewAnimationTransitionFlipFromLeftUIViewAnimationTransitionFlipFromRightUIViewAnimationTransitionCurlUpUIViewAnimationTransitionCurlDownnoneflipFromLeftflipFromRightcurlUpcurlDown
self.banner.transitionAnimation = UIViewAnimationTransitionCurlUp;
banner?.transitionAnimation = .curlUp
UIView您ViewController’s视野中广告应显示的位置。UIView为IMBanner。ViewController头文件中,声明一个IBOutlet实例IMBanner。UIView(Banner)在故事板的场景中,将此设置为你的输出口ViewController。viewDidLoad(),输入banner.placementId = <insert placement id>。
By installing this SDK update, you agree that your Children Privacy Compliance setting remains accurate or that you will update that setting, whenever there is a change in your app's audience. You may update the app's Children Privacy Compliance settings at https://publisher.inmobi.com/my-inventory/app-and-placements.
Support Center