适用于 iOS 的插页式集成
通过实现委托、初始化广告单元、加载广告服务和在适当时间显示广告来集成插页式广告服务。
阅读时间7 分钟最后更新于 2 天前
Unity LevelPlay Interstitial 是一个全屏广告单元,通常在 app 生命周期中的自然过渡点投放。
先决条件
- 确保已将 LevelPlay SDK 正确集成到应用程序中。此处概述了集成。
- 确保使用 LevelPlay Initialization API 初始化 SDK。
- 在 LevelPlay 后台中找到 AdUnitID。
创建插页式广告对象
必须在收到 onInitSuccess 回调后执行插页式广告对象的创建。
该对象是可重用的实例,可以处理多个加载并在整个会话中显示。创建后,应将其用于加载和展示同一广告单元的广告服务。
对于更高级的实现,如果需要,可以创建多个插页式广告对象。
self.interstitialAd = [[LPMInterstitialAd alloc] initWithAdUnitId:@"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 {}
LevelPlay 广告信息
LPMAdInfo 参数包含有关加载的广告的信息。在此处了解有关其实现和可用字段的更多信息。
加载 Interstitial Ad
要加载插页式广告,请使用 loadAd。
[self.interstitialAd loadAd];
显示插页式广告
在收到 didLoadAd 回调后显示插页式广告。
- 需要共享 ViewController。
- 如果使用放置,请在 showAd API 中通道放置/位置名称,如下文 Placements 部分所示。
- 广告成功展示给用户后,可以通过重复加载步骤加载另一个广告。
- (void)showInterstitialAd { // 检查广告是否已准备就绪 if ([self.interstitialAd isAdReady]) { // 显示而不放置/位置 [self.interstitialAd showAdWithViewController:self placementName:NULL]; }}
检查 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];}
广告位
我们支持在 LevelPlay 控制面板上设置插页的广告位节奏和上限。
如果为插页式广告服务设置了位置,请调用 showAd 方法为指定的放置/位置提供广告。
// 检查广告是否已准备就绪并且放置/位置未设置上限if ([self.interstitialAd isAdReady] && ![LPMInterstitialAd isPlacementCapped:placementName]) { // 显示带有放置/位置的广告 [self.interstitialAd showAdWithViewController: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] && ![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
LevelPlay Mediation 演示应用程序
Integration Demo 应用程序演示了如何在 app 中集成插页式广告单元 API。
验证您与我们的集成测试套件的集成。
后续步骤
请遵循我们的集成指南来集成其他插页式广告网络或配置其他广告格式: