iOS 横幅集成
通过创建横幅广告对象、设置其大小并在app程序的视图层级视图视图中显示,在 iOS app程序中实现横幅广告服务。
阅读时间10 分钟最后更新于 2 天前
横幅是由系统启动的矩形广告服务,可以是静态广告,也可以是动画广告,并在实时 app 内容周围的指定区域提供。
先决条件
- 确保已将 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];
横幅大小
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];
指定的横幅大小
此选项允许您专门设置横幅大小:横幅、大型、中等矩形。
LPMAdSize *bannerSize = [LPMAdSize createAdaptiveAdSize];[self.bannerAdView setAdSize: bannerSize];
广告位
我们支持在横幅广告中放置仅用于举报。应在 loadAd 之前设置广告位,以影响所有重新加载的广告服务。
// 设置放置/位置名称[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 { }// 可选。广告恢复为其原始大小}
LevelPlay 广告信息
LPMAdInfo 参数包含有关加载的广告的信息。在此处了解有关其实现和可用字段的更多信息。
加载横幅广告
要加载横幅广告,请使用 loadAd。
// 加载横幅广告[self.bannerAdView loadAdWithViewController:self]
暂停和恢复横幅刷新
如果在平台中定义了刷新值,则可以在代码中暂停横幅刷新。使用以下方法可停止横幅广告的自动刷新,或在暂停后重新启用。
- pauseAutoRefresh - 暂停横幅广告的自动刷新。
- resumeAutoRefresh - 暂停横幅广告后恢复自动刷新。
// 暂停新[self.bannerAdView pauseAutoRefresh]; // 继续刷新[self.bannerAdView resumeAutoRefresh];
销毁横幅广告
要销毁横幅,请调用 destroy 方法。
已销毁的横幅无法再次显示。要显示更多广告服务,请创建一个新的 LPMBannerAdView 对象。
[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
LevelPlay Mediation Demo app
Integration Demo 应用程序演示如何在 app 中集成横幅广告单元 API。
验证您与我们的集成测试套件的集成。
后续步骤
请遵循我们的集成指南来集成其他横幅广告网络或配置其他广告格式: