迁移到 iOS 横幅广告单元 API
通过使用广告单元 ID 来加载和显示横幅广告服务,切换到 LevelPlay Banner API。
阅读时间9 分钟最后更新于 3 天前
本指南介绍如何使用广告单元 ID 集成 LevelPlay API 来加载和显示横幅广告服务。
先决条件
- 支持的最小 SDK 为 8.6.0。您可以在此处下载最新的 SDK。
- 确保使用 LevelPlay Initialization API 初始化 SDK。
- 在 LevelPlay 后台中找到 AdUnitID。
创建横幅广告对象并设置大小
横幅广告对象的创建应在接收 onInitSuccess 回调后完成。
// 创建横幅视图并设置广告单元 IDself.bannerAdView = [[LPMBannerAdView alloc] initWithAdUnitId:@"adUnitId"];
横幅大小
旧版 | Ad Unit(广告单元)(新) | dp 中的尺寸 |
|---|---|---|
| ISBannerSize | LPMAdSize | (Width X Height) |
| ISBannerSize_BANNER | bannerSize | 320 x 50 |
| ISBannerSize_LARGE | largeSize | 320 x 90 |
| ISBannerSize_RECTANGLE | mediumRectangleSize | 300 x 250 |
| ISBannerSize_SMART | 替换为自适应广告大小(见下文) | 自动渲染广告服务以调整移动端和平板电脑的大小和方向 |
要创建广告大小,请遵循以下选项之一:
适应屏幕宽度的自适应广告大小(推荐)
此选项根据设备类型返回 BANNER 或 LEADERBOARD。支持自适应功能的网络(Google、Yandex)将根据其优化逻辑返回高度。
LPMAdSize *bannerSize = [LPMAdSize createAdaptiveAdSize];[self.bannerAdView setAdSize: bannerSize];
**指定的横幅大小:**此选项允许您设置指定的横幅大小:横幅、大型、中等矩形。
LPMAdSize *bannerSize = [LPMAdSize largeSize];[self.bannerAdView setAdSize: bannerSize];
广告位
我们支持在横幅广告中放置仅用于举报。应在 loadAd 之前设置广告位,以影响所有重新加载的广告服务。
// 设置放置/位置名称[self.bannerAdView setPlacementName:@"PlacementName"];
设置横幅委托
在代码中实现 LPMBannerAdViewDelegate 而不是 LevelPlayBannerDelegate,从而了解广告投放情况。
- 建议在加载横幅广告之前设置委托。
- 每个横幅广告视图都应有自己的委托实现。
- 回调在主线程上运行。
// 设置委托实现[self.bannerAdView setDelegate:self];#pragma mark - LPMBannerAdViewDelegate- (void)didLoadAdWithAdInfo:(nonnull LPMAdInfo *)adInfo { } //广告已成功加载}- (void)didFailToLoadAdWithAdUnitId:(nonnull NSString *)adUnitId 报错:(nonnull NSError *)报错 { // 广告加载失败}- (void)didClickAdWithAdInfo:(LPMAdInfo *)adInfo { } // 广告被点击}- (void)didDisplayAdWithAdInfo:(LPMAdInfo *)adInfo { } // 广告已显示并在屏幕上可见}- (void)didFailToDisplayAdWithAdInfo:(LPMAdInfo *)adInfo 报错:(NSError *)报错 { // 广告无法在屏幕上显示}- (void)didLeaveAppWithAdInfo:(LPMAdInfo *)adInfo { } // 用户按下广告后被导航出 app}- (void)didExpandAdWithAdInfo:(LPMAdInfo *)adInfo { } // 广告以全屏打开}- (void)didCollapseAdWithAdInfo:(LPMAdInfo *)adInfo { } // 广告恢复为其原始大小}
LevelPlay 广告信息
LPMAdInfo 参数包含有关加载的广告的信息。
IronSource 旧版 API | 广告单元 API | |
|---|---|---|
| 委托 | LevelPlayBannerDelegate | LPMBannerAdViewDelegate |
| 事件 | didLoad | didLoadAdWithAdInfo |
| didFailToLoadWithError | didFailToLoadAdWithAdUnitId | |
| didClickWithAdInfo | didClickAdWithAdInfo | |
| didPresentScreenWithAdInfo | didExpandAdWithAdInfo | |
| didDismissScreenWithAdInfo | didCollapseAdWithAdInfo | |
| didLeaveApplicationWithAdInfo | didLeaveAppWithAdInfo | |
| - | didDisplayAdWithAdInfo | |
| - | didFailToDisplayAdWithAdInfo |
加载横幅广告
要加载横幅广告,请使用 loadAd 而不是 IronSource.loadBanner。
// 加载横幅广告[self.bannerAdView loadAdWithViewController:self];
暂停和恢复横幅刷新
如果在平台中定义了刷新值,则可以在代码中暂停横幅刷新。使用以下方法可停止横幅广告的自动刷新,或在暂停后重新启用。
- pauseAutoRefresh - 暂停横幅广告的自动刷新。
- resumeAutoRefresh - 暂停横幅广告后恢复自动刷新。
// 暂停新[self.bannerAdView pauseAutoRefresh];// 继续刷新[self.bannerAdView resumeAutoRefresh];
销毁横幅广告
要销毁横幅,请调用 destroy 方法。
已销毁的横幅无法再次显示。要显示更多广告服务,请创建一个新的 LPMBannerAdView 对象。
[self.bannerAdView destroy];
多个广告单元横幅 API
旧版 | 广告单元(新) | |
|---|---|---|
| Banner Ad 视图 | ISBannerView | LPMBannerAdView |
| API | loadBannerWithViewController | loadAdWithViewController |
| loadBannerWithViewController | setPlacementName | |
| destroyBanner | destroy | |
| - | LPMAdSize.width | |
| - | LPMAdSize.height | |
| - | pauseAutoRefresh | |
| - | resumeAutoRefresh |
横幅广告服务的完整实现示例
以下是使用自适应横幅大小创建和加载横幅广告的示例。
NS_ASSUME_NONNULL_BEGIN@interface BannerAdViewController () <LPMBannerAdViewDelegate>@property(nonatomic, strong) LPMBannerAdView *bannerAd;@end@implementation BannerAdViewController- (void)dealloc {[self.bannerAd destroy];}- (void)createBannerAd {// 创建横幅视图并设置广告单元 IDself.bannerAd = [[LPMBannerAdView alloc] initWithAdUnitId:@"adUnitId"];// Set the placement name (optional)[self.bannerAd setPlacementName:@"PlacementName"];// Set the ad sizeLPMAdSize *bannerSize = [self getBannerSize];// Required when using adaptive ad sizeif (bannerSize == nil) { return; }[self.bannerAd setAdSize:bannerSize];// Set the delegate implementation[self.bannerAd setDelegate:self];// Add the banner view to the view hierarchy with the proper constraints[self addBannerViewWithSize:bannerSize];}- (LPMAdSize *)getBannerSize {// 1.推荐 - 适应屏幕宽度的自适应广告大小LPMAdSize *bannerSize = [LPMAdSize createAdaptiveAdSize];// 2.使用固定宽度广告大小的自适应广告大小// self.bannerSize = [LPMAdSize createAdaptiveAdSizeWithWidth:400];// 3.指定的横幅大小 - 横幅、大横幅、中矩形// self.bannerSize = [LPMAdSize mediumRectangleSize];return bannerSize;}- (void)loadBannerAd {[self.bannerAd loadAdWithViewController:self];}- (void)addBannerViewWithSize:(LPMAdSize *)bannerSize {self.bannerAd.translatesAutoresizingMaskIntoConstraints = NO;// Add the banner view to the view hierarchy[self.view addSubview:self.bannerAd];[NSLayoutConstraint activateConstraints:@[ [self.bannerAd.bottomAnchor constraintEqualToAnchor:self.view.safeAreaLayoutGuide.bottomAnchor], [self.bannerAd.centerXAnchor constraintEqualToAnchor:self.view.centerXAnchor], [self.bannerAd.widthAnchor constraintsEqualToConstant:bannerSize.width]、 [self.bannerAd.heightAnchor constraintsEqualToConstant:bannerSize.height]]];}#pragma mark - LPMBannerAdViewDelegate- (void)didLoadAdWithAdInfo:(nonnull LPMAdInfo *)adInfo {}- (void)didFailToLoadAdWithAdUnitId:(nonnull NSString *)adUnitId 报错:(nonnull NSError *)报错 {- (void)didClickAdWithAdInfo:(LPMAdInfo *)adInfo {}- (void)didDisplayAdWithAdInfo:(LPMAdInfo *)adInfo {}- (void)didFailToDisplayAdWithAdInfo:(LPMAdInfo *)adInfo 报错:(NSError *)报错 {- (void)didLeaveAppWithAdInfo:(LPMAdInfo *)adInfo {}- (void)didExpandAdWithAdInfo:(LPMAdInfo *)adInfo {}- (void)didCollapseAdWithAdInfo:(LPMAdInfo *)adInfo {}@endNS_ASSUME_NONNULL_END
LevelPlay Mediation 演示应用程序
Integration Demo 应用程序演示如何在 app 中集成横幅广告单元 API。