文档

​
​

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 横幅集成

通过创建横幅广告对象、设置其大小并在app程序的视图层级视图视图中显示,在 iOS app程序中实现横幅广告服务。
阅读时间10 分钟
最后更新于 2 天前

横幅是由系统启动的矩形广告服务,可以是静态广告,也可以是动画广告,并在实时 app 内容周围的指定区域提供。
注意
本文档与 SDK 8.4.0+ 相关。

先决条件

  • 确保已将 LevelPlay SDK 正确集成到应用程序中。此处概述了集成。
  • 确保使用 LevelPlay Initialization API 初始化 SDK。
  • 在 LevelPlay 后台中找到 AdUnitID。

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

横幅广告对象的创建应在接收 onInitSuccess 回调后完成。
// 创建广告配置 - 可选LPMBannerAdViewConfigBuilder *adConfigBuilder = [LPMBannerAdViewConfigBuilder new];[adConfigBuilder setWithAdSize:bannerSize];[adConfigBuilder setWithPlacementName:@"placementName"];LPMBannerAdViewConfig *adConfig = [adConfigBuilder 构建];// 创建横幅视图并设置广告单元 IDself.bannerAd = [[LPMBannerAdView alloc] initWithAdUnitId:@"adUnitId" config: adConfig];
// 创建广告配置 - 可选let adConfig = LPMBannerAdViewConfigBuilder().set(adSize: bannerSize).set(placementName: "placementName").build()// 创建横幅视图并设置广告单元 IDself.bannerAd = LPMBannerAdView(adUnitId: "adUnitId", config: adConfig)

横幅大小

LPMAdSize

描述

Dimensions in dp(Width X Height)

bannerSize标准横幅320 x 50
largeSize大型横幅320 x 90
mediumRectangleSize中等矩形 (MREC)300 x 250
自适应自动渲染广告服务以调整移动端和平板电脑的大小和方向设备宽度 X 建议高度
要创建广告大小,请遵循以下选项之一:

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

此选项根据设备类型返回 BANNER 或 LEADERBOARD。支持自适应功能的网络(Google、Yandex)将根据其优化逻辑返回高度。
LPMAdSize *bannerSize = [LPMAdSize createAdaptiveAdSize];[self.bannerAdView setAdSize: bannerSize];
let bannerSize = LPMAdSize.createAdaptive()self.bannerAdView.setAdSize(bannerSize)

指定的横幅大小

此选项允许您专门设置横幅大小:横幅、大型、中等矩形。
LPMAdSize *bannerSize = [LPMAdSize createAdaptiveAdSize];[self.bannerAdView setAdSize: bannerSize];
let bannerSize = LPMAdSize.large()self.bannerAdView.setAdSize(bannerSize)

广告位

我们支持在横幅广告中放置仅用于举报。应在 loadAd 之前设置广告位,以影响所有重新加载的广告服务。
// 设置放置/位置名称[self.bannerAdView setPlacementName:@"PlacementName"];
// 设置放置/位置名称self.bannerAdView.setPlacementName("PlacementName")

设置横幅委托

在代码中实现 LPMBannerAdViewDelegate 以获取广告投放信息。
  • 建议在加载横幅广告之前设置委托。
  • 每个横幅广告视图都应有自己的委托实现。
  • 回调在主线程上运行。
  • 当并非所有网络都支持回调时,它们会被标记为可选。
// 设置委托实现 [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 参数包含有关加载的广告的信息。在此处了解有关其实现和可用字段的更多信息。

加载横幅广告

要加载横幅广告,请使用 loadAd。
// 加载横幅广告[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()

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

以下是使用自适应横幅大小创建和加载横幅广告的示例。
NS_ASSUME_NONNULL_BEGIN@interface BannerAdViewController () <LPMBannerAdViewDelegate>@property(nonatomic, strong) LPMBannerAdView *bannerAd;@end@implementation BannerAdViewController- (void)dealloc {[self.bannerAd destroy];}- (void)createBannerAd {LPMAdSize *bannerSize = [self getBannerSize] ?:[LPMAdSize mediumRectangleSize];// 创建广告配置 - 可选LPMBannerAdViewConfigBuilder *adConfigBuilder = [LPMBannerAdViewConfigBuilder new];[adConfigBuilder setWithAdSize:bannerSize];[adConfigBuilder setWithPlacementName:@"placementName"];LPMBannerAdViewConfig *adConfig = [adConfigBuilder 构建];// 创建横幅视图并设置广告单元 IDself.bannerAd = [[LPMBannerAdView alloc] initWithAdUnitId:@"adUnitId" config: adConfig];// 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
导入 UIKitpublic 类 BannerAdViewController:UIViewController、LPMBannerAdViewDelegate {var bannerAd:LPMBannerAdView!deinit {self.bannerAd.destroy()}public func createBannerAd() {guard let bannerSize = getBannerSize() else { 返回}// 创建广告配置 - 可选let adConfig = LPMBannerAdViewConfigBuilder() .set(adSize: bannerSize) .set(placementName: "placementName") .build()// 创建横幅视图并设置广告单元 IDself.bannerAd = LPMBannerAdView(adUnitId: "adUnitId", config: adConfig)// Set the delegate implementationself.bannerAd.setDelegate(self)// Add the banner view to the view hierarchy with the proper constraintsaddBannerView(withSize: bannerSize)}public func getBannerSize() -> LPMAdSize? {// 1.推荐 - 适应屏幕宽度的自适应广告大小let bannerSize = LPMAdSize.createAdaptive()// 2.使用固定宽度广告大小的自适应广告大小// bannerSize = LPMAdSize.createAdaptiveAdSize(withWidth:400)// 3.指定的横幅大小 - 横幅、大横幅、中矩形// bannerSize = LPMAdSize.mediumRectangleSize()return bannerSize}public func loadBannerAd() {self.bannerAd.loadAd(with: self)}public func addBannerView(withSize bannerSize:LPMAdSize) {DispatchQueue.main.async { self.bannerAd.translatesAutoresizingMaskIntoConstraints = false 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: - LPMBannerAdViewDelegatepublic func didLoadAd(with adInfo:LPMAdInfo) {public func didFailToLoadAd(withAdUnitId adUnitId:字符串,报错:报错) {public func didClickAd(with adInfo:LPMAdInfo) {public func didDisplayAd(with adInfo:LPMAdInfo) {public func didFailToDisplayAd(with adInfo:LPMAdInfo,报错:报错) {public func didLeaveApp(with adInfo:LPMAdInfo) {public func didExpandAd(with adInfo:LPMAdInfo) {public func didCollapseAd(with adInfo:LPMAdInfo) {}

LevelPlay Mediation Demo app

Integration Demo 应用程序演示如何在 app 中集成横幅广告单元 API。
下载 iOS demo 应用程序
验证您与我们的集成测试套件的集成。

后续步骤

请遵循我们的集成指南来集成其他横幅广告网络或配置其他广告格式:
  • 调解网络。
  • 奖励广告服务
  • 插页式广告服务
  • 原生广告服务

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

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

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

  • 在本页上
    • 先决条件

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

      • 横幅大小

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

      • 指定的横幅大小

        • 广告位

    • 设置横幅委托

      • LevelPlay 广告信息

    • 加载横幅广告

    • 暂停和恢复横幅刷新

    • 销毁横幅广告

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

    • LevelPlay Mediation Demo app

    • 后续步骤


报告此页面的问题