AI Search

横幅广告

设置横幅广告

  1. 从左侧导航面板中选择“库存”  >“库存设置”
  2. 搜索您想要为其创建广告位的应用或网站,然后点击+ 添加广告位
  3. 点击“选择广告单元”,然后选择“横幅广告”
  4. 点击“添加广告位”开始设置横幅广告。创建广告位后,即可查看广告位 ID。

将横幅广告添加到您的应用

创建横幅广告

IMBanner只是一个用于UIView显示 HTML 广告的子类。InMobi SDK 提供了两种实现横幅广告的机制:

程序化实例化

1. 导入头文件并在文件中声明 Banner 实例ViewController.h,或者导入框架并在ViewController.swift文件中声明 Banner 实例。您的ViewController头文件应如下所示:

Objective C

#import <UIKit/UIKit.h> 
@import InMobiSDK; 
@interface ViewController : UIViewController <IMBannerDelegate> 
@property (nonatomic, strong) IMBanner *banner; 
@end

Swift

import UIKit
import InMobiSDK
class ViewController: UIViewController, IMBannerDelegate {
    var banner: IMBanner?
}

2. 实例化横幅对象。您的ViewController.m文件应如下所示:

Objective C

- (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]; 
}

Swift

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 秒。

Objective-C

// to turn off auto refresh set the below value to NO.
[self.banner shouldAutoRefresh:NO];

//to set custom refresh interval
[self.banner setRefreshInterval:40];

Swift

// to turn off auto refresh set the below value to NO.   banner?.shouldAutoRefresh(false).   //to set custom refresh interval banner?.refreshInterval = 40

3. 如果您想随时取消横幅广告,请使用取消 API:

Objective-C

[self.banner cancel];
self.banner.delegate = nil;
self.banner = nil;

Swift

self.banner.cancel();
self.banner.delegate = nil
self.banner = nil

4. 对于广告状态回调,请实现代理方法IMBannerDelegate。我们支持以下回调:

Objective C

// 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");
}

Swift

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)")
    }

您可以在刷新横幅对象时使用以下过渡效果:

Objective C

  • UIViewAnimationTransitionNone
  • UIViewAnimationTransitionFlipFromLeft
  • UIViewAnimationTransitionFlipFromRight
  • UIViewAnimationTransitionCurlUp
  • UIViewAnimationTransitionCurlDown

Swift

  • none
  • flipFromLeft
  • flipFromRight
  • curlUp
  • curlDown

Objective C

self.banner.transitionAnimation = UIViewAnimationTransitionCurlUp;

Swift

banner?.transitionAnimation = .curlUp

使用 Interface Builder

  1. 将此图标放置在UIViewViewController’s视野中广告应显示的​​位置。
  2. 设置横幅框架。
  3. 将类标识设置UIViewIMBanner
  4. 在你的ViewController头文件中,声明一个IBOutlet实例IMBanner
  5. UIView(Banner)在故事板的场景中,将此设置为你的输出口ViewController
  6. 在 中viewDidLoad(),输入banner.placementId = <insert placement id>

本页内容

最后更新于 : 10 Sep, 2026