文档

​
​

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

适用于 iOS 的插页式集成

通过实现委托、初始化广告单元、加载广告服务和在适当时间显示广告来集成插页式广告服务。
阅读时间7 分钟
最后更新于 2 天前

Unity LevelPlay Interstitial 是一个全屏广告单元,通常在 app 生命周期中的自然过渡点投放。 
注意
本文档与 SDK 8.4.0+ 相关。

先决条件

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

创建插页式广告对象

必须在收到 onInitSuccess 回调后执行插页式广告对象的创建。
该对象是可重用的实例,可以处理多个加载并在整个会话中显示。创建后,应将其用于加载和展示同一广告单元的广告服务。
对于更高级的实现,如果需要,可以创建多个插页式广告对象。
self.interstitialAd = [[LPMInterstitialAd alloc] initWithAdUnitId:@"adUnitId"];
self.interstitialAd = LPMInterstitialAd(adUnitId: "adUnitId")

实现委托

在代码中实现 LPMInterstitialAdDelegate 以获取广告投放信息。 
  • 建议在加载插页式广告之前设置委托。
  • 每个插页式广告都应有自己的委托实现。
  • 委托方法在主线程上运行。
self.interstitialAd = [[LPMInterstitialAd alloc] initWithAdUnitId:@"adUnitId"]; self.interstitialAd.delegate = self;#pragma mark - LPMInterstitialAdDelegate Methods- (void)didLoadAdWithAdInfo:(LPMAdInfo *)adInfo {}- (void)didFailToLoadAdWithAdUnitId:(NSString *)adUnitId error:(NSError *)error {}- (void)didChangeAdInfo:(LPMAdInfo *)adInfo {}- (void)didDisplayAdWithAdInfo:(LPMAdInfo *)adInfo {}- (void)didFailToDisplayAdWithAdInfo:(LPMAdInfo *)adInfo 报错:(NSError *)报错 {- (void)didClickAdWithAdInfo:(LPMAdInfo *)adInfo {}- (void)didCloseAdWithAdInfo:(LPMAdInfo *)adInfo {}
self.interstitialAd = LPMInterstitialAd(adUnitId: "adUnitId")self.interstitialAd.setDelegate(self)// MARK:LPMInterstitialAdDelegate 方法func didLoadAd(包含 adInfo:LPMAdInfo) {func didFailToLoadAd(withAdUnitId adUnitId:字符串,报错:报错) {func didChangeAdInfo(_ adInfo:LPMAdInfo) {func didDisplayAd(包含 adInfo:LPMAdInfo) {func didFailToDisplayAd(包含 adInfo:LPMAdInfo,报错:报错) {func didClickAd(包含 adInfo:LPMAdInfo) {func didCloseAd(包含 adInfo:LPMAdInfo) {

LevelPlay 广告信息

LPMAdInfo 参数包含有关加载的广告的信息。在此处了解有关其实现和可用字段的更多信息。

加载 Interstitial Ad

要加载插页式广告,请使用 loadAd。
[self.interstitialAd loadAd];
self.interstitialAd.loadAd()

显示插页式广告

在收到 didLoadAd 回调后显示插页式广告。
  • 需要共享 ViewController。 
  • 如果使用放置,请在 showAd API 中通道放置/位置名称,如下文 Placements 部分所示。
  • 广告成功展示给用户后,可以通过重复加载步骤加载另一个广告。
- (void)showInterstitialAd { // 检查广告是否已准备就绪 if ([self.interstitialAd isAdReady]) { // 显示而不放置/位置 [self.interstitialAd showAdWithViewController:self placementName:NULL]; }}
func showInterstitialAd() { // 检查广告是否已准备就绪 if self.interstitialAd.isAdReady() { // 显示而不放置/位置 self.interstitialAd.showAd(viewController: self, placementName: nil) }}

检查 Ad is Ready

为了避免展示失败,并确保广告可以正确展示,建议在调用 showAd API 之前使用以下 API。
isAdReady – 如果广告已成功加载且广告单元未设置上限,则返回 true,否则返回 false。
isPlacementCapped – 有效放置/位置被限制时返回 true。如果放置/位置无效或未设置上限,此 API 将返回 false。
// 检查广告是否已准备就绪并且放置/位置未设置上限if ([self.interstitialAd isAdReady] && ![LPMInterstitialAd isPlacementCapped:placementName]) { [self.interstitialAd showAdWithViewController:self placementName:placementName];}
// 检查广告是否已准备就绪并且放置/位置未设置上限if self.interstitialAd.isAdReady(), !LPMInterstitialAd.isPlacementCapped(placementName) { self.interstitialAd.showAd(viewController: self, placementName: placementName)}

广告位

我们支持在 LevelPlay 控制面板上设置插页的广告位节奏和上限。 
如果为插页式广告服务设置了位置,请调用 showAd 方法为指定的放置/位置提供广告。
// 检查广告是否已准备就绪并且放置/位置未设置上限if ([self.interstitialAd isAdReady] && ![LPMInterstitialAd isPlacementCapped:placementName]) { // 显示带有放置/位置的广告 [self.interstitialAd showAdWithViewController:self placementName:@"PlacementName"];}
// 检查广告是否已准备就绪并且放置/位置未设置上限if self.interstitialAd.isAdReady(), !LPMInterstitialAd.isPlacementCapped(placementName) { // 显示带有放置/位置的广告 self.interstitialAd.showAd(viewController: self, placementName: placementName)}

插页式广告服务的完整实现示例

NS_ASSUME_NONNULL_BEGIN@interface InterstitialAdViewController () <LPMInterstitialAdDelegate>@property(nonatomic, strong) LPMInterstitialAd *interstitialAd;@end@implementation InterstitialAdViewController- (void)createInterstitialAd { self.interstitialAd = [[LPMInterstitialAd alloc] initWithAdUnitId:@"adUnitId"]; self.interstitialAd.delegate = self;}- (void)loadInterstitialAd { // 用于加载或重新加载广告 [self.interstitialAd loadAd];}- (void)showInterstitialAd { if ([self.interstitialAd isAdReady]) { [self.interstitialAd showAdWithViewController:self placementName:NULL]; }}- (void)showInterstitialAdWithPlacementName:(NSString *)placementName { } // 检查广告是否已准备就绪并且放置/位置未设置上限 if ([self.interstitialAd isAdReady] &amp;&amp; ![LPMInterstitialAd isPlacementCapped:placementName]) { [self.interstitialAd showAdWithViewController:self placementName:placementName]; }}#pragma mark - LPMInterstitialAdDelegate 方法- (void)didLoadAdWithAdInfo:(LPMAdInfo *)adInfo {}- (void)didFailToLoadAdWithAdUnitId:(NSString *)adUnitId error:(NSError *)error {}- (void)didChangeAdInfo:(LPMAdInfo *)adInfo {}- (void)didDisplayAdWithAdInfo:(LPMAdInfo *)adInfo {- (void)didFailToDisplayAdWithAdInfo:(LPMAdInfo *)adInfo 报错:(NSError *)报错 {- (void)didClickAdWithAdInfo:(LPMAdInfo *)adInfo {}- (void)didCloseAdWithAdInfo:(LPMAdInfo *)adInfo {}@endNS_ASSUME_NONNULL_END
类 InterstitialAdViewController:UIViewController、LPMInterstitialAdDelegate { var interstitialAd:LPMInterstitialAd! func createInterstitialAd() { self.interstitialAd = LPMInterstitialAd(adUnitId: "adUnitId") self.interstitialAd.setDelegate(self) } func loadInterstitialAd() { // used to load or reload the ad self.interstitialAd.loadAd() } func showInterstitialAd() { if self.interstitialAd.isAdReady() { self.interstitialAd.showAd(viewController: self, placementName: nil) } } func showInterstitialAd(withPlacementName placementName:字符串) { // check that ad is ready and that the placement is not capped if self.interstitialAd.isAdReady(), !LPMInterstitialAd.isPlacementCapped(placementName) { self.interstitialAd.showAd(viewController: self, placementName: placementName) } } // MARK:LPMInterstitialAdDelegate 方法 func didLoadAd(包含 adInfo:LPMAdInfo) { func didFailToLoadAd(withAdUnitId adUnitId:字符串,报错:报错) { func didChangeAdInfo(_ adInfo:LPMAdInfo) { func didDisplayAd(包含 adInfo:LPMAdInfo) { func didFailToDisplayAd(包含 adInfo:LPMAdInfo,报错:报错) { func didClickAd(包含 adInfo:LPMAdInfo) { func didCloseAd(包含 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 广告信息

    • 加载 Interstitial Ad

    • 显示插页式广告

      • 检查 Ad is Ready

      • 广告位

    • 插页式广告服务的完整实现示例

    • LevelPlay Mediation 演示应用程序

    • 后续步骤


报告此页面的问题