横幅广告

前言

在将广告单元集成到您的应用之前,您必须:

横幅广告

横幅是矩形的,系统发起的广告,在你的live应用内容周围的指定区域服务。

步骤 1. 初始化横幅广告

OpenMediation SDK触发几个事件来通知您横幅广告活动。要显示横幅广告,需要创建一个全新的OMBanner对象,设置它的委托并加载广告。

创建OMBanner对象

下面的代码片段演示了如何使用OMBanner类来创建Banner对象,并实现OMBannerDelegate接口来接收Banner广告事件。SDK将通知委托所有可能发生的事件如下:

@property (nonatomic, strong) OMBanner *banner;
- (OMBanner*)banner{
     if(!_banner){
         _banner = [[OMBanner alloc] initWithBannerType:OMBannerTypeDefault placementID:@"YOUR_PLACEMENT_ID"];
         [_banner addLayoutAttribute:OMBannerLayoutAttributeHorizontally constant:0];
         [_banner addLayoutAttribute:OMBannerLayoutAttributeVertically constant:0];
         _banner.delegate = self;
         [self.view addSubview:_banner];
     }
   return _banner;
}
private lazy var banner: OMBanner = {
let banner = OMBanner(bannerType: OMBannerType.default, placementID: "YOUR_PLACEMENT_ID")
banner.add(.horizontally, constant: 0)
banner.add(.vertically, constant: 0)
banner.delegate = self
self.view.addSubview(banner)
return banner
}()

有关我们支持的标准横幅尺寸的详细信息,请参见下表:

OMBannerType Size
OMBannerTypeDefault 320 x 50
OMBannerTypeMediumRectangle 300 x 250
OMBannerTypeLeaderboard 728 x 90
OMBannerTypeSmart If (iPhone) 320 x 50
If (iPad) 728 x 90

 

Banner Delegate (OMBannerDelegate)

在代码中实现以下回调函数,以在收到广告状态时处理广告逻辑。 例如 ,在横幅广告准备就绪时, 调用 loadAndShow 函数将广告投放给您的用户。

通过OMBannerDelegate协议声明的方法,允许采用的委托响应来自OMBanner类的消息,从而响应诸如是否已加载广告或用户单击广告之类的操作。

/// Invoked when the banner ad is available.
- (void)omBannerDidLoad:(OMBanner *)banner {
     NSLog(@"BannerAd Did Load");
}

///  Sent after an OMBanner fails to load the ad.
- (void)omBanner:(OMBanner *)banner didFailWithError:(NSError *)error {
     NSLog(@"BannerAd Did Fail");
}
/// Invoked when the banner ad is showing. - (void)omBannerWillExposure:(OMBanner *)banner { NSLog(@"BannerAd Did Exposure"); } /// Invoked when the user clicks on the banner ad. - (void)omBannerDidClick:(OMBanner *)banner { NSLog(@"BannerAd Did Click"); }
/// Invoked when the banner ad is available.
func omBannerDidLoad(_ banner: OMBanner) {
     print("BannerAd Did Load")
}

/// Invoked when the call to load a banner has failed.
/// Parameter error contains the reason for the failure.
func omBannerDidFail(toLoad banner: OMBanner, withError error: Error) {
     print("BannerAd Did Fail")
}

/// Invoked when the banner ad is showing.
func omBannerWillExposure(_ banner: OMBanner) {
     print("BannerAd Will Exposure")
}

/// Invoked when the user clicks on the banner ad.
func omBannerDidClick(_ banner: OMBanner) {
     print("BannerAd Did Click")
}

 

步骤 2. 加载并显示横幅广告

调用 loadAndShow 方法向用户请求并展示横幅广告。

[self.banner loadAndShow];
self.banner.loadAndShow()

注意: 该加载方法可以在任何时候被调用多次,但我们不建议很短的时间内连续请求。在短时间内发出许多请求毫无意义,因为在此期间库存的可用性不太可能发生很大变化。

请不要在应用程序中定时请求Banner广告,OpenMediation SDK会自动对Banner广告进行定时刷新。

 

步骤 3. 安全区域布局实现

安全区域是指作为iOS11的一部分引入的布局指南,用于定义iOS应用程序中允许的位置视图。这样可以确保您的应用程序不会覆盖任何父视图,包括导航和标签栏。

if (@available(iOS 11.0, *)) {
    [_banner setCenter:CGPointMake(self.view.center.x, self.view.frame.size.height - _banner.frame.size.height/2.0 - self.view.safeAreaInsets.bottom)];
 } else {
    [_banner setCenter:CGPointMake(self.view.center.x, self.view.frame.size.height - _banner.frame.size.height/2.0)];
 }
if #available(iOS 11.0, *) {
    banner.center = CGPoint.init(x:self.view.center.x, y:self.view.frame.size.height - banner.frame.size.height/2.0 - self.view.safeAreaInsets.bottom)
 } else {
    banner.center = CGPoint.init(x:self.view.center.x, y:self.view.frame.size.height - banner.frame.size.height/2.0)
 }

 

步骤 4. 支持Network横幅尺寸

您可以在下面找到支持的Network,以及每个Network Banner Size的尺寸:

Platforms

Default

(320*50)

Rectangle

(300*250)

Leaderboard

(728*90)

Smart

(320*50/728*90)

Admob ✔️ ✔️ ✔️ ✔️
Facebook ✔️ ✔️ ✔️ ✔️
AdColony ✔️ ✔️ ✔️ ✔️
UnityAds ✔️   ✔️ ✔️
Vungle ✔️   ✔️ ✔️
AppLovin ✔️ ✔️ ✔️ ✔️
Pangle ✔️ ✔️ ✔️ ✔️
Mintegral ✔️ ✔️ ✔️ ✔️
TencentAds ✔️   ✔️ ✔️

 

这篇文章有帮助吗?
0 人中有 0 人觉得有帮助

评论

0 条评论

文章评论已关闭。