您的位置:首页 > 移动开发

AdMob(app内嵌广告)横幅广告

2016-11-12 21:57 337 查看


Demo in GitHub:点击打开链接


横幅广告

使用入门指南中,您已了解如何部署 SDK 和显示测试横幅广告。 本指南将介绍如何进一步自定义横幅广告。

要查看这些横幅广告自定义化的实现,请下载采用 Objective-C 或 Swift 的 iOS API 演示应用。

下载
API 演示


横幅尺寸

Google 移动广告支持下列横幅尺寸:

尺寸 (WxH)说明可用性AdSize 常量
320x50标准横幅手机和平板电脑
kGADAdSizeBanner
320x100大型横幅手机和平板电脑
kGADAdSizeLargeBanner
300x250IAB 中等矩形手机和平板电脑
kGADAdSizeMediumRectangle
468x60IAB 全尺寸横幅平板电脑
kGADAdSizeFullBanner
728x90IAB 排行榜平板电脑
kGADAdSizeLeaderboard
屏幕宽度 x 32|50|90智能横幅手机和平板电脑
kGADAdSizeSmartBannerPortrait

kGADAdSizeSmartBannerLandscape


Smart Banners

Smart Banners 是在不同设备的任何屏幕尺寸中沿任何屏幕方向呈现完整屏幕宽度横幅广告的广告单元。 通过"智能"检测手机当前屏幕方向的宽度并将广告视图设置为该尺寸,

Smart Banners 有助于解决不同设备之间日益加的屏幕片段。

智能横幅中已实现三种广告高度(以密度无关的像素[dp])。
32
: 设备屏幕高度 <=
400
50
: 400
< 设备屏幕高度 <= 720
90
: 设备屏幕高度 >
720

对于某些设备(如手机),设备高度将因其屏幕方向而异。 通常,手机上的智能横幅广告为纵向全宽度 x 50dp 和横向全宽度 x 32dp,但平板电脑上的广告在两种屏幕方向都是全宽度 x 90dp。

当图像广告不足以占据分配的整个空间时,图像将放置在中心且将填充任一侧的空间。



若要使用智能横幅,您需要使用常量 
kGADAdSizeSmartBannerPortrait
 或 
kGADAdSizeSmartBannerLandscape
,如下所示:


OBJECTIVE-C


SWIFT

// Use kGADAdSizeSmartBannerLandscape if your app is running in landscape.
GADBannerView *bannerView = [[GADBannerView alloc] initWithAdSize:kGADAdSizeSmartBannerPortrait];


有关智能横幅在 iOS API 演示应用中的实现,请参阅"AdMob 横幅尺寸"示例。

OBJECTIVE-C SWIFT

注:一些中介广告网络尚未支持智能横幅 — 使用特定网络验证。


广告生命周期事件回调

通过实现所有或部分 
GADBannerViewDelegate
,您可以选择跟踪广告生命周期事件,如请求失败或"点击率"。


OBJECTIVE-C


SWIFT

@protocol GADBannerViewDelegate <NSObject>
  @optional
  - (void)adViewDidReceiveAd:(GADBannerView *)bannerView;
  - (void)adView:(GADBannerView *)bannerView
      didFailToReceiveAdWithError:(GADRequestError *)error;
  - (void)adViewWillPresentScreen:(GADBannerView *)bannerView;
  - (void)adViewDidDismissScreen:(GADBannerView *)bannerView;
  - (void)adViewWillDismissScreen:(GADBannerView *)bannerView;
  - (void)adViewWillLeaveApplication:(GADBannerView *)bannerView;
@end


可以在一个单独的对象(如视图控制器)中实现这些方法:


OBJECTIVE-C


SWIFT

@import GoogleMobileAds;

@interface ViewController : UIViewController <GADBannerViewDelegate> {
}

@end


或作为 
GADBannerView
 子类的一部分:


OBJECTIVE-C


SWIFT

@import GoogleMobileAds;

@interface MyBannerView : GADBannerView <GADBannerViewDelegate> {
}

@end


请谨记,在请求广告之前先设置代理:


OBJECTIVE-C


SWIFT

self.bannerView.delegate = self;



adViewDidReceiveAd:

:在 loadRequest 时发送:已成功。这是将发送者添加到视图层次的好机会(如果到目前为止已隐藏视图层次),例如:


OBJECTIVE-C


SWIFT

- (void)adViewDidReceiveAd:(GADBannerView *)bannerView {
  bannerView.hidden = NO;
}



adView:didFailToReceiveAdWithError:

:当 
loadRequest:
 失败时发送,通常是网络故障、应用配置错误或缺少广告库存导致的。您可能希望记录这些事件以进行调试:


OBJECTIVE-C


SWIFT

- (void)adView:(GADBannerView *)adView didFailToReceiveAdWithError:(GADRequestError *)error {
  NSLog(@"adView:didFailToReceiveAdWithError: %@", error.localizedDescription);
}



adViewWillPresentScreen:

:在向用户显示全屏广告 UI 以响应他们触摸发件人之前立即发送。 此时,您应暂停所有动画演示、定时器或假定用户交互和保存应用状态的其他活动,与在 
UIApplicationDidEnterBackgroundNotification
 上相似。通常情况下,用户只浏览全屏广告并清除它,从而生成 
adViewDidDismissScreen:
 并恢复对您的应用的控制。

如果此横幅的操作为"Click-to-App-Store"或"Click-to-iTunes",或用户在广告中按"Home",那么,您的应用将在后台运行或可能被终止。

如果是在 iOS 4.0+ 下使用,调用的下一个方法将是您的根视图控制器的 
applicationWillResignActive:
,然后是 
adViewWillLeaveApplication:


adViewDidDismissScreen:

:在用户已退出发送者的全屏 UI 后发送。


adViewWillDismissScreen:

:在清除发送者的全屏 UI 之前立即发送,恢复您的应用和根视图控制器。 此时,您应重启作为 
adViewWillPresentScreen:
 的一部分暂停的所有前台活动。


adViewWillLeaveApplication:

:就在应用处于后台运行或因用户触摸"Click-to-App-Store"或"Click-to-iTunes"横幅而终止之前发送。 正常情况下,
UIApplicationDelegate
 通知(如 
applicationDidEnterBackground:
)将在这之前立即送达。

请勿在 
applicationWillEnterForeground:
 中请求广告,因为该请求将被忽略。 而应在 
applicationDidBecomeActive:
 中进行请求。

不保留 Objective-C 代理,并且可能在最终解除委托对象之前异步发送消息。

有关广告生命周期事件回调在 iOS API 演示应用中的实现,请参阅"AdMob 广告代理"示例。

OBJECTIVE-C SWIFT


后续操作

要了解如何以兼容的方式最好地实现横幅广告,请查看横幅广告指南
要了解全屏插页式广告,请查看插页式广告指南
要了解如何有针对性地投放广告,请查看目标指南
要探索横幅广告的更多功能,请查看广告事件指南
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: