文档

​
​

Development

User Acquisition

Monetization

工业

LevelPlay SDK - iOS

Unity SDK

Android SDK

iOS SDK

Adobe AIR SDK

Flutter SDK

React Native SDK

LevelPlay SDK - iOS

Unity LevelPlay
​
​
iOS SDK
  • 开始使用
  • 法规和设置
  • 广告格式
    • 奖励广告服务
    • 插页式视频
    • Banner 和 MREC
      • Migrate to banner ad unit API
    • iOS 原生广告服务集成
  • 聚合网络
  • 测试集成
  1. 实现游戏增长
  2. Unity LevelPlay
  3. LevelPlay SDK
  4. 适用于 iOS 开发者的 LevelPlay SDK

迁移到 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"];
// 创建横幅视图并设置广告单元 IDself.bannerAdView = LPMBannerAdView(adUnitId: "adUnitId")

横幅大小

旧版

Ad Unit(广告单元)(新)

dp 中的尺寸

ISBannerSizeLPMAdSize(Width X Height)
ISBannerSize_BANNERbannerSize320 x 50
ISBannerSize_LARGElargeSize320 x 90
ISBannerSize_RECTANGLEmediumRectangleSize300 x 250
ISBannerSize_SMART替换为自适应广告大小(见下文)自动渲染广告服务以调整移动端和平板电脑的大小和方向
要创建广告大小,请遵循以下选项之一: 

适应屏幕宽度的自适应广告大小(推荐)

此选项根据设备类型返回 BANNER 或 LEADERBOARD。支持自适应功能的网络(Google、Yandex)将根据其优化逻辑返回高度。
LPMAdSize *bannerSize = [LPMAdSize createAdaptiveAdSize];[self.bannerAdView setAdSize: bannerSize];
let bannerSize = LPMAdSize.createAdaptive()self.bannerAdView.setAdSize(bannerSize)
**指定的横幅大小:**此选项允许您设置指定的横幅大小:横幅、大型、中等矩形。
LPMAdSize *bannerSize = [LPMAdSize largeSize];[self.bannerAdView setAdSize: bannerSize];
let bannerSize = LPMAdSize.large()self.bannerAdView.setAdSize(bannerSize)

广告位

我们支持在横幅广告中放置仅用于举报。应在 loadAd 之前设置广告位,以影响所有重新加载的广告服务。
// 设置放置/位置名称[self.bannerAdView setPlacementName:@"PlacementName"];
// 设置放置/位置名称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 { } // 广告恢复为其原始大小}
// 设置委托实现self.bannerAdView.setDelegate(self)func didLoadAd(包含 adInfo:LPMAdInfo) { //广告已成功加载}func didFailToLoadAd(withAdUnitId adUnitId:字符串,报错:报错) { // 广告加载失败}func didClickAd(包含 adInfo:LPMAdInfo) { // 广告被点击}func didDisplayAd(包含 adInfo:LPMAdInfo) { // 广告已显示并在屏幕上可见}func didFailToDisplayAd(包含 adInfo:LPMAdInfo,报错:报错) { // 广告无法在屏幕上显示}func didLeaveApp(包含 adInfo:LPMAdInfo) { // 用户按下广告后被导航出 app}func didExpandAd(包含 adInfo:LPMAdInfo) { // 广告以全屏打开}func didCollapseAd(包含 adInfo:LPMAdInfo) { // 广告恢复为其原始大小}

LevelPlay 广告信息

LPMAdInfo 参数包含有关加载的广告的信息。

IronSource 旧版 API

广告单元 API

委托LevelPlayBannerDelegateLPMBannerAdViewDelegate
事件didLoaddidLoadAdWithAdInfo
didFailToLoadWithErrordidFailToLoadAdWithAdUnitId
didClickWithAdInfodidClickAdWithAdInfo
didPresentScreenWithAdInfodidExpandAdWithAdInfo
didDismissScreenWithAdInfodidCollapseAdWithAdInfo
didLeaveApplicationWithAdInfodidLeaveAppWithAdInfo
-didDisplayAdWithAdInfo
-didFailToDisplayAdWithAdInfo

加载横幅广告

要加载横幅广告,请使用 loadAd 而不是 IronSource.loadBanner。
// 加载横幅广告[self.bannerAdView loadAdWithViewController:self];
// 加载横幅广告self.bannerAdView.loadAd(with: self)

暂停和恢复横幅刷新

如果在平台中定义了刷新值,则可以在代码中暂停横幅刷新。使用以下方法可停止横幅广告的自动刷新,或在暂停后重新启用。 
注意
再次显示横幅时,它将完成从暂停时间到刷新的时间。 
  • pauseAutoRefresh - 暂停横幅广告的自动刷新。
  • resumeAutoRefresh - 暂停横幅广告后恢复自动刷新。
// 暂停新[self.bannerAdView pauseAutoRefresh];// 继续刷新[self.bannerAdView resumeAutoRefresh];
// 暂停新self.bannerAdView.pauseAutoRefresh()// 继续刷新self.bannerAdView.resumeAutoRefresh()

销毁横幅广告

要销毁横幅,请调用 destroy 方法。
已销毁的横幅无法再次显示。要显示更多广告服务,请创建一个新的 LPMBannerAdView 对象。
[self.bannerAdView destroy];
self.bannerAdView.destroy()

多个广告单元横幅 API

旧版

广告单元(新)

Banner Ad 视图ISBannerViewLPMBannerAdView
APIloadBannerWithViewControllerloadAdWithViewController
loadBannerWithViewControllersetPlacementName
destroyBannerdestroy
-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
导入 UIKit类 BannerAdViewController:UIViewController、LPMBannerAdViewDelegate {var bannerAd:LPMBannerAdView!deinit { self.bannerAd.destroy()}func createBannerAd() { // Create the banner view and set the ad unit id self.bannerAd = LPMBannerAdView(adUnitId: "adUnitId") // Set the placement name (optional) self.bannerAd.setPlacementName("PlacementName") // Set the ad size // Null check required when using adaptive ad size guard let bannerSize = getBannerSize() else { 返回 } self.bannerAd.setAdSize(bannerSize) // Set the delegate implementation self.bannerAd.setDelegate(self) // Add the banner view to the view hierarchy with the proper constraints addBannerView(withSize: bannerSize)}func getBannerSize() -> LPMAdSize? { } // 1.推荐 - 适应屏幕宽度的自适应广告大小 let bannerSize = LPMAdSize.createAdaptive() // 2.使用固定宽度广告大小的自适应广告大小 // bannerSize = LPMAdSize.createAdaptiveAdSize(withWidth:400) // 3.指定的横幅大小 - 横幅、大横幅、中矩形 // bannerSize = LPMAdSize.mediumRectangleSize() return bannerSize}func loadBannerAd() { self.bannerAd.loadAd(with: self)}func addBannerView(withSize bannerSize:LPMAdSize) { DispatchQueue.main.async { self.bannerAd.translatesAutoresizingMaskIntoConstraints = false // Add the banner view to the view hierarchy self.view.addSubview(self.bannerAd) let centerX = self.bannerAd.centerXAnchor.constraint(equalTo: self.view.centerXAnchor) let bottom = self.bannerAd.bottomAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.bottomAnchor) let width = self.bannerAd.widthAnchor.constraint(equalToConstant:CGFloat(bannerSize.width)) let height = self.bannerAd.heightAnchor.constraint(equalToConstant:CGFloat(bannerSize.height)) NSLayoutConstraint.activate([centerX, bottom, width, height]) }}// MARK: - LPMBannerAdViewDelegatefunc didLoadAd(包含 adInfo:LPMAdInfo) {func didFailToLoadAd(withAdUnitId adUnitId:字符串,报错:报错) {func didClickAd(包含 adInfo:LPMAdInfo) {func didDisplayAd(包含 adInfo:LPMAdInfo) {func didFailToDisplayAd(包含 adInfo:LPMAdInfo,报错:报错) {func didLeaveApp(包含 adInfo:LPMAdInfo) {func didExpandAd(包含 adInfo:LPMAdInfo) {func didCollapseAd(包含 adInfo:LPMAdInfo) {}

LevelPlay Mediation 演示应用程序

Integration Demo 应用程序演示如何在 app 中集成横幅广告单元 API。
下载 iOS demo 应用程序

Copyright © 2026 Unity Technologies
法律信息隐私政策CookiesDocumentation Terms of Use请勿出售或分享我的个人信息您的隐私选择(Cookie 设置)

“Unity”、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属公司在美国和其他地方的商标或注册商标(此处查看更多信息)。其他名称或品牌是其各自所有者的商标。

为方便起见,一些页面是机器翻译的,可能包含不准确的内容。如有信息不一致的情况,以英文版本为准。

  • 在本页上
    • 先决条件

    • 创建横幅广告对象并设置大小

      • 横幅大小

      • 适应屏幕宽度的自适应广告大小(推荐)

    • 广告位

    • 设置横幅委托

      • LevelPlay 广告信息

    • 加载横幅广告

    • 暂停和恢复横幅刷新

    • 销毁横幅广告

    • 多个广告单元横幅 API

    • 横幅广告服务的完整实现示例

    • LevelPlay Mediation 演示应用程序


报告此页面的问题