前言
在将广告单元集成到您的应用之前,您必须:
- 在OpenMediation用户界面中,创建一个应用并创建一个广告展示位置,您可以在此处按照指南进行操作 。
- 将OpenMediation SDK集成到您的项目中, 按照我们的操作步骤进行iOS SDK集成 。
- 如果您使用聚合,请转到集成广告网络,并确保已添加广告网络的SDK以及希望在应用中使用的相应适配器。
横幅广告
横幅是矩形的,系统发起的广告,在你的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 方法向用户请求并展示横幅广告。
注意: 该加载方法可以在任何时候被调用多次,但我们不建议很短的时间内连续请求。在短时间内发出许多请求毫无意义,因为在此期间库存的可用性不太可能发生很大变化。
请不要在应用程序中定时请求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 | ✔️ | ✔️ | ✔️ | ✔️ |
✔️ | ✔️ | ✔️ | ✔️ | |
AdColony | ✔️ | ✔️ | ✔️ | ✔️ |
UnityAds | ✔️ | ✔️ | ✔️ | |
Vungle | ✔️ | ✔️ | ✔️ | |
AppLovin | ✔️ | ✔️ | ✔️ | ✔️ |
Pangle | ✔️ | ✔️ | ✔️ | ✔️ |
Mintegral | ✔️ | ✔️ | ✔️ | ✔️ |
TencentAds | ✔️ | ✔️ | ✔️ |
评论
文章评论已关闭。