`
bsr1983
  • 浏览: 1124138 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【转】Google AdMob 广告 iOS 高级指南

 
阅读更多
转自:[url]https://developers.google.com/mobile-ads-sdk/docs/ios/advanced?hl=zh-cn
[/url]
转载仅为防止被墙致无法查阅!
非页内广告概览

当用户轻触横幅广告这类小型广告时,通常会被引导至某种形式的应用内全屏浏览方式。

与之相对,非页内广告可以在应用的自然转换点(例如启动、视频前贴片或游戏关卡加载时)即刻呈现 HTML5 富媒体效果或“网络应用”。网络应用提供了应用内浏览体验,这类应用的特点是只有简单的关闭按钮,而没有任何导航栏:其内容有自己的内部导航架构。

从本质上说,这类广告效果更丰富、更吸引人,因此价格更昂贵,且展示机会有局限。

 
注意:所有发布商都可以在自己的应用中投放富媒体非页内自家广告,而付费非页内广告只向一部分发布商提供。如果您具备了发布资格,Google 一定会与您联系。

GADInterstitial

GADInterstitial 功能更丰富、也更重要,这反映在它的定义上:它不是 UIView,而是需要更明确的实例化、加载和显示步骤的 NSObject。

不过,它的用法与 GADBannerView 非常类似:

导入 GADInterstitial.h
在应用的 UIViewController 中声明 GADInterstitial 实例
加以创建
设置广告的单元 ID,也就是您的 AdMob 发布商 ID
同样,您最好在应用的 UIViewController 中执行上述步骤。

// InterstitialExampleViewController.h

// 从 SDK 导入 GADInterstitial 的定义
#import "GADInterstitial.h"

@interface InterstitialExampleViewController : UIViewController {
// 将其中一个声明为实例变量
GADInterstitial *interstitial_;
}

@end
以下代码会在视图控制器的 viewDidLoad 初始化挂钩 (Hook) 中设置非页内广告。

// InterstitialExampleViewController.m

#import "InterstitialExampleViewController.h"

@implementation MyInterstitialHostingViewController

- (void)viewDidLoad {
  [super viewDidLoad];
  interstitial_ = [[GADInterstitial alloc] init];
  interstitial_.adUnitID = MY_INTERSTITIAL_UNIT_ID;
}

@end
您随时可以调用 loadRequest:,但只有在调用 GADInterstitialDelegate 的 interstitialDidReceiveAd: 后才能展示广告。如果收到 GADInterstitialDelegate 的 interstitial:didFailToReceiveAdWithError: 错误,请妥善处理错误环境。

非页内广告请求的默认超时值是 5 秒,但您可以在服务器的 AdMob 帐户内进行调整。

一旦加载成功,即可展示全屏广告:

[interstitial_ presentFromRootViewController:self];
接着,非页内广告会占据整个屏幕,直到用户将其关闭;届时,控制权才会交还给应用,而视图控制器则会传递给这个方法。

初始网页非页内广告

非页内广告有一种特殊用法,就是在应用启动时以“初始”网页的方式出现。

在应用委托的 application:didFinishLaunchingWithOptions: 内调用 loadAndDisplayRequest:usingWindow:initialImage:,可有效地将非页内广告排入队列,以便在其 isReady 时加以展示。屏幕上会继续显示初始图片(通常是应用的默认图片),直到加载请求成功或失败为止。

- (BOOL)application:(UIApplication *)application
  didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

  GADInterstitial *splashInterstitial_ = [[GADInterstitial alloc] init];

  [splashInterstitial_ loadAndDisplayRequest:[GADRequest request]
                                 usingWindow:window_
                                initialImage:[UIImage imageNamed:@"Default.png"]];
}
GADInterstitialDelegate

就像使用 GADBannerViewDelegate 时一样,开发人员可以选择实施全部或部分的 GADInterstitialDelegate 来跟踪非页内广告的生命周期事件。

@protocol GADInterstitialDelegate
  @optional
    - (void)interstitialDidReceiveAd:(GADInterstitial *)interstitial;
    - (void)interstitial:(GADInterstitial *)interstitial
        didFailToReceiveAdWithError:(GADRequestError *)error;
    - (void)interstitialWillPresentScreen:(GADInterstitial *)interstitial;
    - (void)interstitialWillDismissScreen:(GADInterstitial *)interstitial;
    - (void)interstitialDidDismissScreen:(GADInterstitial *)interstitial;
    - (void)interstitialWillLeaveApplication:(GADInterstitial *)interstitial;
@end
- (void)interstitialDidReceiveAd:(GADInterstitial *)interstitial
在以下情况下发送:loadRequest: 已获得成功,且非页内广告处于 isReady 状态,随时可以适时展示。
- (void)interstitial:(GADInterstitial *)interstitial didFailToReceiveAdWithError:(GADRequestError *)error
当 loadRequest: 失败时发送。常见失败原因:网络故障、应用配置错误,或非页内广告资源不足(比在横幅广告中更常见)。您可以记下这些事件,以便进行调试。
- (void)interstitialWillPresentScreen:(GADInterstitial *)interstitial
发送后便立即向用户展示 interstitial。与使用 UIApplicationDidEnterBackgroundNotification 时类似,此时应该暂停所有动画、计时器或其他可能会与用户互动的活动,并保存应用状态。请注意,用户可能会在非页内广告内按下“首页”按钮或触摸到其他应用(例如 App Store 或 iTunes)的链接,并因此离开您的应用。
- (void)interstitialDidDismissScreen:(GADInterstitial *)interstitial
当用户关闭 interstitial 且广告已从屏幕中退出时发送。
- (void)interstitialWillDismissScreen:(GADInterstitial *)interstitial
用以恢复您的应用和根视图控制器(在非初始网页的情况下),在此语句发送后,interstitial 便会紧跟着从屏幕中退出。这时应该重新启动 interstitialWillPresentScreen: 执行期间暂停的任何前台活动。
- (void)interstitialWillLeaveApplication:(GADInterstitial *)interstitial
在应用因为用户触摸 interstitial 内指向其他应用的链接而转至后台或终止运行前发送。在此之前,先会有 applicationDidEnterBackground: 等常规 UIApplicationDelegate 通知显示。
在这些方法中,您可以通过查看 GADBannerView.hasAutoRefreshed 来判断是否有刷新操作触发了事件。

同样,如果您将委托作为独特的对象来实施,则在发布非页内广告前,请务必将委托设为 nil。
分享到:
评论

相关推荐

    iOS中加入iAD和ADMOB广告

    本教程将详细介绍如何在iOS应用中集成两种常见的广告网络:Apple的iAD和Google的ADMOB。 首先,我们来了解这两个广告平台的基础知识: 1. **iAD**:由Apple提供,是专门为iOS和OS X设备设计的内置广告解决方案。...

    AdMob广告接入教程.rar

    AdMob是Google提供的一款强大的移动广告平台,它允许开发者在Android和iOS应用中展示各种类型的广告,如横幅广告、插屏广告、激励视频广告等,从而实现盈利。本教程将详细讲解如何将AdMob广告接入到您的应用程序中,...

    Admob for iOS Android Amazon.rar

    AdMob是Google提供的一款强大的移动广告平台,它允许开发者在iOS、Android以及Amazon设备上展示广告,从而为应用创造收入。本指南将详细介绍如何在Unity引擎中集成AdMob,以便在各个平台上顺利发布并实现广告功能。 ...

    ios admob demo

    iOS AdMob SDK是Google提供的一个广告平台,专为iOS开发者设计,用于在他们的应用程序中集成广告。AdMob提供了一个简单、高效的方法来展示各种类型的广告,包括横幅广告、插屏广告和激励视频广告,帮助开发者实现...

    admob ane android ios 稳定附例子详细教程

    【标题】"admob ane android ios 稳定附例子详细教程"涉及的主要知识点是Adobe Air应用开发中集成Google AdMob广告网络的过程,适用于Android和iOS平台。AdMob ANE(Adobe Native Extension)是一种扩展,它允许Air...

    admob sdk for ios6.0

    AdMob是Google的一款移动广告平台,允许开发者在他们的iOS应用中集成广告,从而实现盈利。这个SDK确保了对两种主要的iOS设备架构,即armv7和armv7s的支持,这涵盖了当时大部分的iOS设备。 1. **AdMob SDK**:AdMob ...

    Google AdMob 集成文档.

    根据提供的文件信息,我们可以从中提取出关于Google AdMob集成和ADBannerView类的相关知识点,这些知识点主要围绕在如何在移动应用中集成AdMob广告以及如何使用ADBannerView来展示横幅广告。以下是对这些知识点的...

    IPhone弹出基于Phonegap的工程的Admob广告

    Admob是Google提供的一款广告服务,它可以帮助开发者在应用中插入广告,从而实现盈利。现在我们将深入探讨如何在基于PhoneGap的iOS工程中集成并展示Admob广告。 首先,你需要确保已经安装了PhoneGap和Cordova。这两...

    admob新手指南

    AdMob是Google提供的一款强大的移动广告平台,它允许开发者在他们的应用程序中展示各种类型的广告,从而获得收入。本指南将详细解释如何集成AdMob,包括添加横幅广告和插屏广告。 ### 一、AdMob账户创建与应用集成 ...

    unity-googleAdMob

    Unity谷歌AdMob集成指南 Unity是一款广泛应用于游戏开发的跨平台引擎,而Google AdMob是全球领先的移动广告网络,能够帮助开发者在他们的应用中插入广告,实现盈利。本指南将详细介绍如何在Unity项目中集成Google ...

    ios-iAd广告.zip

    虽然iAd已不再可用,但开发者可以考虑使用其他广告服务,如Google的AdMob或Facebook Audience Network。这些服务提供了类似的功能,并且在全球范围内有更广泛的广告网络。 **四、最佳实践和注意事项** 1. **用户...

    googlemobileadssdkios_7.42.1

    11. **遵守政策**:确保你的应用符合Google AdMob的所有政策,包括但不限于用户隐私、内容适龄性和广告实施指南。 总之,Google Mobile Ads SDK for iOS是开发人员在iOS应用中集成广告的关键工具,它提供了丰富的...

    IOS应用源码之admobandiad.zip

    AdMob是Google提供的一个移动广告平台,它允许开发者在其iOS应用中插入横幅广告、插屏广告和激励视频广告。AdMob的优点在于其广泛的广告网络和详细的广告性能报告。在iOS应用中集成AdMob,你需要首先在Google AdMob...

    ios-模仿今日头条 启动页广告 一句代码集成。点击广告,广告播放结束。.zip

    实现这种功能,我们需要集成广告SDK,例如Facebook Audience Network、Google AdMob等,这些SDK提供了便捷的API来创建和管理启动页广告。 "一句代码集成"可能指的是使用第三方库或框架,如WZXLaunch,这个开源项目...

    GoogleMobileAdsSdkiOS-7.1.0

    这个SDK是Google AdMob服务的一部分,AdMob是一个强大的移动广告平台,允许开发者在他们的iOS应用中嵌入广告,从而赚取收入。 描述中提到,“iOS移动开发admob,并支持swift”,这意味着这个SDK不仅适用于Objective...

    swift-两行代码添加iOS应用启动广告的功能

    这里我们以AdMob为例进行讲解,因为它是Google提供的广泛使用的广告平台,且与Swift和iOS开发兼容性良好。 1. **集成AdMob SDK** 在Xcode项目中,你需要通过CocoaPods或Carthage管理依赖。创建Podfile文件,然后...

    ios-ADDemo.zip

    首先,iOS平台上的广告主要由Apple的Ad Frameworks提供,这包括iAd(已弃用)和现在的Apple Search Ads以及第三方广告网络如Google AdMob、Facebook Audience Network等。在这个"ios-ADDemo.zip"中,我们可能看到的...

    ti.admob:在iOS和Android上通过Titanium使用Google AdMob SDK

    在Appcelerator Titanium中使用Google Admob模块。 贡献者 贾斯珀·肯尼斯(Jasper Kennis) 乔恩·阿尔特 杰夫·英语 穆罕默德·大度 加里·马修斯 道森·托斯 汉斯·克诺歇尔 有兴趣贡献吗? 阅读指南。 问题 向...

    Dayo-google-admob

    AdMob是Google提供的一个移动应用广告平台,它允许开发者在Android和iOS应用中展示广告,从而赚取收入。这个项目可能是为HTML5游戏或Web应用提供的一个集成指南,因为HTML标签通常用于构建Web内容。 【集成Google ...

Global site tag (gtag.js) - Google Analytics