CJPAdController 是一个单例类,允许在您的 iOS 应用中轻松实现 iAd 和 Google AdMob 广告。它支持所有设备和方向,并在 iOS 6.0+ 上运行。在 CJPAdController 上分叉。
NSUserDefaults
中存储了该布尔值)的用户广告1. 将 CJPAdController
和 GoogleMobileAdsSdk
文件夹拖到您的项目中。注意:您可能希望检查是否有更新的 AdMob SDK 可用,您需要至少版本 7.0.0。
2. 如果您正在创建一个新项目,您不需要执行任何其他操作。如果它是一个旧项目,那么根据其设置,您可能需要手动链接所有必需的框架,如果是这样,请确保以下框架链接到您的项目:
对于 iAd
iAd.framework
AdSupport.framework
对于 AdMob
AudioToolbox.framework
AVFoundation.framework
CoreGraphics.framework
CoreTelephony.framework
MessageUI.framework
StoreKit.framework
SystemConfiguration.framework
EventKit.framework
EventKitUI.framework
CJPAdController 会自动在您视图的顶部或底部显示广告。它旨在与 UINavigationController 或 UITabBarController 一起使用。
1. 在您的 AppDelegate.m
文件中导入 #import "CJPAdController.h"
。
2. 在 application didFinishLaunchingWithOptions
中,使用 sharedInstance 配置 CJPAdController。
[CJPAdController sharedInstance].adNetworks = @[@(CJPAdNetworkiAd), @(CJPAdNetworkAdMob)];
[CJPAdController sharedInstance].adPosition = CJPAdPositionBottom;
[CJPAdController sharedInstance].initialDelay = 2.0;
// AdMob specific
[CJPAdController sharedInstance].adMobUnitID = @"ca-app-pub-1234567890987654/1234567890";
3. 按照常规设置您的导航/标签栏控制器,然后通知 CJPAdController 开始在该控制器中展示广告。
[[CJPAdController sharedInstance] startWithViewController:_yourNavController];
4. 还有一点需要注意...您需要将窗口的 rootViewController 设置为 CJPAdController 的 sharedInstance。
self.window.rootViewController = [CJPAdController sharedInstance];
CJPAdController 假设您将使用 iAd 和 AdMob,因为这个类就是为了实现这个目的而编写的。默认情况下,两者都将被使用,且 iAd 是首选。您可以改变数组的顺序来覆盖这个默认设置(数组中的第一个值将设置为首选广告),如果您愿意,甚至可以排除其中的一个网络。
[CJPAdController sharedInstance].adNetworks = @[@(CJPAdNetworkAdMob), @(CJPAdNetworkiAd)];
默认情况下,广告将从视图底部滑入并被固定。或者,您也可以选择相反的方向,让它们从顶部滑入并停留在顶部。
[CJPAdController sharedInstance].adPosition = CJPAdPositionTop;
默认情况下,启动应用后将立即请求广告。您可以通过提供 NSTimeInterval 来延迟这个过程,下面的代码示例将在应用启动后延迟 2 秒请求广告。
[CJPAdController sharedInstance].initialDelay = 2.0;
如果您尝试在一个不是 UINavigationController 或 UITabBarController 子类的自定义视图中实现 CJPAdController,可能会遇到广告显示错误或根本不显示的问题。在这种情况下,可以通过覆盖 isNavController
属性来解决,一些用户已经成功的做到了这一点。
[CJPAdController sharedInstance].overrideIsNavController = YES;
AdMob 还有一些特定的选项可以配置,以及许多用于隐藏、移除、恢复广告的一般方法。AdMob 广告还可以基于用户的年龄、性别和位置进行定位。在使用这些功能前,请仔细阅读头文件中的注释。您可以在示例项目中看到这些例子的应用,此外,头文件中也有良好的注释,提供了关于每个方法的功能及如何使用的说明,无论是在测试还是生产环境中。
如果您愿意,可以提供归属和指向 这个GitHub项目 的链接。
版权所有 (c) 2011-2015 Chris Phillips
在此特此授予任何获得本软件及其相关文档(“软件”)副本的任何人免费处理该软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许软件的提供方进行这样的操作,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要内容部分中。
本软件按“现况”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途的适用性和非侵权性保证。在任何情况下,作者或版权所有者不应对任何索赔、损害或其他责任承担责任,无论是在合同行为、侵权或其他行为中, arise from, out of 或 in connection with 软件或软件的使用或其他交易。