CJPAdMobHelper是一个单例类,可在您的iOS应用程序中方便地实现Google AdMob横幅广告。
有关预期使用的假设/限制,包括以下内容
UINavigationController
中使用。其他类可能也可以工作,但 neither 支持也未经测试。将CJPAdMobHelper
文件夹放入您的项目中,下载并安装最新的AdMob SDK,按照readme中的任何说明操作。
CJPAdMobHelper会自动在视图的顶部或底部显示广告。它设计为与UINavigationController
一起使用。
1. 在您的AppDelegate.m
中导入#import "CJPAdMobHelper.h"
。
2. 在application didFinishLaunchingWithOptions
中,使用实例使用sharedInstance配置CJPAdMobHelper,您至少需要提供要显示的AdMob横幅的单位ID
[CJPAdMobHelper sharedInstance].adMobUnitID = @"ca-app-pub-1234567890987654/1234567890";
3. 按照常规设置您的导航控制器,然后告诉CJPAdMobHelper在该导航控制器中开始提供广告
[[CJPAdMobHelper sharedInstance] startWithViewController:_yourNavController];
4. 有一点要小心...您需要将窗口的rootViewController设置为CJPAdMobHelper的sharedInstance
self.window.rootViewController = [CJPAdMobHelper sharedInstance];
initialDelay
接受一个 NSTimeInterval
。默认情况下,将在应用启动时立即请求广告。您可以按如下方式延迟初始广告请求
[CJPAdMobHelper sharedInstance].initialDelay = 5.0;
useAdMobSmartSize
接受一个 BOOL
。默认情况下,这设置为 YES
,这是推荐的做法。AdMob 的 "智能横幅尺寸" 将在屏幕全宽上显示标准横幅,并自动根据 iPhone 设备的旋转进行调整。如果您不想启用此功能,可以将其设置为 NO
。在这种情况下,iPhone 设备在两种方向上都将在中心显示 320x50 的横幅,而 iPad 设备将在两种方向上都显示中心 728x90 的横幅。更多信息请参阅 AdMob 文档:https://firebase.google.com/docs/admob/ios/banner#banner_size
[CJPAdMobHelper sharedInstance].useAdMobSmartSize = NO;
某些参数可以设置为更精确地针对您的用户,包括年龄、性别和位置。请注意,AdMob 强烈建议您仅在应用已从用户处收集此类数据(合法目的,例如非广告目的)的情况下使用定向。
adMobGender
接受 AdMob 的性别常量之一。有 kGADGenderMale
、kGADGenderFemale
或 kGADGenderUnknown
可用,默认假设为未知,因此只有在使用男性或女性值时才会发送性别。
[CJPAdMobHelper sharedInstance].adMobGender = kGADGenderMale;
adMobBirthday
接受一个包含用户出生日期的 NSDate
对象。如果您存储的是日期/月份/年份组件而不是 NSDate
对象,则可以使用如下代码:
NSDateComponents *components = [[NSDateComponents alloc] init];
components.year = 1985;
components.month = 1;
components.day = 1;
[CJPAdMobHelper sharedInstance].adMobBirthday = [[NSCalendar currentCalendar] dateFromComponents:components];
adMobUserLocation
接受一个包含 CoreLocation 中的纬度、经度精度的字典对象。您可以使用方法 setLocationWithLatitude:(CGFloat)latitude longitude:(CGFloat)longitude accuracy:(CGFloat)accuracyInMeters
容易地设置它。假设您使用 CoreLocation,您的代码可能如下所示:
CLLocation *currentLocation = locationManager.location;
if (currentLocation) {
[[CJPAdMobHelper sharedInstance] setLocationWithLatitude:currentLocation.coordinate.latitude
longitude:currentLocation.coordinate.longitude
accuracy:currentLocation.horizontalAccuracy];
}
tagForChildDirectedTreatment
接受一个使用 numberWithBool:
方法创建的 NSNumber
对象(你不能只传递一个 BOOL,因为它需要检查 nil,以及仅仅 YES/NO)。在设置此选项之前,请阅读有关 AdMob 文档。
如果您将 tagForChildDirectedTreatment 设置为 YES,则表示您的内容应该被认为是 COPPA 下的儿童导向。
如果您将 tagForChildDirectedTreatment 设置为 NO,则表示您的内容不应被视为 COPPA 下的儿童导向。
如果您没有设置 tagForChildDirectedTreatment,则广告请求将不包含有关如何处理您的内容的任何指示。
通过设置此标签,您证实此通知是准确的,并且您有权代表应用所有者行事。您理解滥用此设置可能导致您 Google 账户终止。
[CJPAdMobHelper sharedInstance].tagForChildDirectedTreatment = [NSNumber numberWithBool:YES];
如果你心存善意,可以提供归属和指向这个GitHub项目的链接。
版权所有(c)2016 克里斯·菲利普斯
在此特此许可,免费地向任何获得此软件和相关文档文件的副本(以下简称“软件”)的人,在不受任何限制的情况下处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件的副本,以及允许向软件提供的人这样做,但受以下条件约束
上述版权声明和本许可声明应包含在软件的所有副本或大部分副本中。
软件按“原样”提供,不提供任何形式的保证,明示或暗示,包括但不限于适销性、针对特定目的的适用性和非侵权性。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论这些责任是基于合同、侵权还是其他原因,以及软件或其使用或任何其他方式相关的实际情况。