CJPAdMobHelper 1.0.1

CJPAdMobHelper 1.0.1

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
Released最后发布2016年10月

Chris Phillips维护。




CJPAdMobHelper 1.0.1

CJPAdMobHelper是一个单例类,可在您的iOS应用程序中方便地实现Google AdMob横幅广告。

有关预期使用的假设/限制,包括以下内容

  • 此类设计用于在显示每个视图底部的横幅的UINavigationController中使用。其他类可能也可以工作,但 neither 支持也未经测试。
  • AdMob是您的主要广告网络。
  • 此类本身不处理任何中介,假定您将(可选)使用AdMob前端与其他广告网络进行中介。
  • 显示插页式/视频或其他类型的广告目前不受支持,但如果有时间,将来可能会添加(如果您有时间添加这一点,请随意提交一个拉取请求)。

功能

  • 无需在现有的故事板中添加任何视图或约束。
  • 指定在应用程序启动后何时开始展示广告的时间延迟
  • 适用于iPhone和iPad的所有方向(自动处理旋转)(iOS 8.x及以后版本)。
  • 如果没有广告要显示,则将其从视图中隐藏
  • 如果您有一个允许用户禁用广告的IAP,有一个您可以通过它来永久隐藏这些广告的方法

屏幕截图

CJPAdMobHelper screenshot CJPAdMobHelper screenshot

添加到您的项目

方法2 -老式方法

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;

使用 AdMob "智能" 横幅尺寸

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 的性别常量之一。有 kGADGenderMalekGADGenderFemalekGADGenderUnknown 可用,默认假设为未知,因此只有在使用男性或女性值时才会发送性别。

[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];
}

COPPA 合规性

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 克里斯·菲利普斯

在此特此许可,免费地向任何获得此软件和相关文档文件的副本(以下简称“软件”)的人,在不受任何限制的情况下处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件的副本,以及允许向软件提供的人这样做,但受以下条件约束

上述版权声明和本许可声明应包含在软件的所有副本或大部分副本中。

软件按“原样”提供,不提供任何形式的保证,明示或暗示,包括但不限于适销性、针对特定目的的适用性和非侵权性。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论这些责任是基于合同、侵权还是其他原因,以及软件或其使用或任何其他方式相关的实际情况。

变更

1.0.1

  • 改进了针对COPPA设置的更优处理
  • 确保在模拟器中运行时显示测试广告
  • 更新了README,其中包括所有可选配置和目标设置的信息

1.0.0

  • 初始发布