LARSAdController 3.1.0

LARSAdController 3.1.0

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

Lars Anderson 维护。



  • Lars Anderson

描述

LARSAdController 3.0 是一个单例广告管理类,用于管理符合 LARSAdAdapter 协议的广告类。通过为每个广告网络使用单个实例,以最贴近最佳实践的方式管理广告,从而为广告商提供最佳发布平台,以最大程度地利用特定需求下的广告库存。目前有两个适配器可供使用(iAd 和 Google Ads)。适配器可以通过任何所需的广告框架进行扩展。

链接

子组件

如果您只对 iAds GoogleAds 感兴趣,而不是两者都感兴趣,则可以在您的 Podfile 中指定您只想使用一个而不是另一个。

platform :ios, '5.0'

pod 'LARSAdController/iAds', '~> 3.0'
pod 'LARSAdController/GoogleAds', '~> 3.0'

如果您只需要核心文件而无需任何广告适配器,则您的 Podfile 可能如下所示:

platform :ios, '5.0'

pod 'LARSAdController/Core', '~> 3.0'

根据您希望使用的组件,将包含适当的文件和框架。

恭喜!您现在可以忽略下一节中手动完成所有这些内容的说明。

旧方法

如果您不使用 Cocoapods,则需要手动克隆此存储库,并将 Source/ 目录添加到项目中。此外,您还需要手动添加所需的框架。

...就像一个原始人一样

Git 子模块

您可以通过以下方式使用旧方法简单地克隆存储库,并将文件添加到项目中作为 git 子模块,如下所示:

git add submodule <third_party_folder> https://github.com/larsacus/LARSAdController.git --recursive

其中 <third_party_folder> 是您的项目文件结构中所有第三方代码所在的文件夹。

框架要求

为了编译,您需要包含以下 Apple 框架:

iAds

  1. iAd.framework
  2. AdSupport.framework (iOS 6 的弱连接)

Google Ads

  1. StoreKit.framework
  2. AudioToolbox.framework
  3. MessageUI.framework
  4. SystemConfiguration.framework
  5. CoreGraphics.framework
  6. AdSupport.framework (iOS 6 的弱连接)

您还需要安装由 Google 提供的 Google AdMob SDK

这就完成了。技术上,这可以添加到任何足够大的并由视图控制器管理的 UIView 中。

其他要求

  1. iOS 5.0+
  2. Xcode 4.3+ - 支持 LLVM 4.0。 objective-c 容器字面量被使用。

使用

Cocoapods 用户可以在这里继续阅读

在过去的日子里,LARSAdController 2.0 强迫你选择旋转处理。现在,由于广告管理类能够自动检测广告容器所处的视图控制器设置正确,因此不再需要这样做。

第一步是注册广告管理器将要使用的广告类。广告网络的优先级按照它们添加的顺序进行,因此首先注册的网络优先级最高,然后是次之,依此类推

在需要显示第一个横幅之前,在应用代理或其他方便的地方

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
    [[LARSAdController sharedManager] registerAdClass:[TOLAdAdapteriAds class]];
    [[LARSAdController sharedManager] registerAdClass:[TOLAdAdapterGoogleAds class] withPublisherId:publisherId];
}

然后在您的视图控制器中只需要一行代码,就是要使用以下之一将容器添加到视图中

- (void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];

    [[LARSAdController sharedManager] addAdContainerToView:self.view withViewController:self];
}

或者简单的版本

- (void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];

    [[LARSAdController sharedManager] addAdContainerToViewInViewController:self];
}

一旦当前最高优先级的广告网络无法获取广告,它将等待下一个最高优先级的广告网络分配和发送请求,直到获取到广告。一旦优先级更高的广告网络再次获取到广告,它将隐藏较低优先级的广告横幅,清理它并显示较高优先级的网络横幅。

超懒惰实现

为了让你的生活更容易,你只需要将所有你想让你的视图控制器顶部或底部显示广告的视图控制器子类继承自 TOLAdViewController。这样,当需要时,会自动将广告视图容器添加到视图控制器视图中。唯一的缺点是它在视图层次结构中的广告位置灵活性较差。

@interface MYBestViewController : TOLAdViewController
//BOOM - Ads
@end

条件显示广告

如果你只想在特定条件下显示广告(比如当用户购买了某个内购升级时),那么只需要在 TOLAdViewController 子类中覆盖 -shouldDisplayAds 即可。如果 shouldDisplayAds 返回 NO,则不会在 viewWillAppear: 上加载数据。

- (BOOL)shouldDisplayAds{
  return ([self.purchaseTracker hasPurchasedUpgrade] == NO);
}

广告位置

在过去,你只能将横幅视图添加到视图底部并从底部出现动画。现在,您不仅可以控制它位于视图的顶部或底部,还可以控制它是如何进入和退出屏幕的。

LARSAdController 上有两大新属性

@property (nonatomic) LARSAdControllerPresentationType presentationType;
@property (nonatomic) LARSAdControllerPinLocation pinningLocation;

以下为 presentationType 的选项。这些选项将根据枚举中指示的方向滑动广告横幅进入和退出

typedef NS_ENUM(NSInteger, LARSAdControllerPresentationType){
    LARSAdControllerPresentationTypeBottom = 0,
    LARSAdControllerPresentationTypeTop,
    LARSAdControllerPresentationTypeLeft,
    LARSAdControllerPresentationTypeRight
};

这些选项将广告视图容器固定在您指定的视图底部(默认)或顶部,并相应地布局横幅

typedef NS_ENUM(NSInteger, LARSAdControllerPinLocation){
    LARSAdControllerPinLocationBottom =  0,
    LARSAdControllerPinLocationTop
};

当前可用的广告网络适配器

  1. iAd - TOLAdAdapteriAds
  2. Google Ads - TOLAdAdapterGoogleAds

计划中的广告网络适配器(尚未实现)

  1. House Ads - 使用动作在横幅中显示您自己的图片
  2. TOLDeveloperAds - 通过一行代码显示所有应用的自动生成横幅广告

创建新的广告网络适配器

为了为一个尚未创建的广告供应商创建新的广告适配器,只需创建一个新的符合 LARSAdAdapter 协议的 NSObject 子类。适配器需要一些必须存在的方法和属性才能正常工作,还有一些可选的属性,可以提供额外控制和横幅的功能。更详细的文档可以在 LARSAdAdapter.h 的头文件中找到。

一个好的开始是简单遵循 LARSAdAdapter 协议,编译并让所有的警告、错误和运行时断言帮助您完成实现。

@interface LARSAdControllerHouseAdsAdapter : NSObject <LARSAdAdapter>
  //fill out the meaty part  
@end

安装文档

LARSAdController 3.0 的头文件使用 appledoc 完全文档化。要在 Xcode 中安装 docset,您需要安装 appledoc,然后在 LARSAdController 存储库的根目录中运行类似下面的命令来安装 docset。

appledoc -p "LARSAdController" -c "theonlylars" -d -n --company-id "com.theonlylars" --no-repeat-first-par -o ~/Docs Source

在上面的例子中,您需要在运行此命令之前在家目录中创建 Docs 目录。您同样可以将该路径改为任何方便的位置。appledoc 将在完成后将 docset 安装到 Xcode。

注意:如果您使用 cocoapods,文档将自动安装。

许可(MIT)

我喜欢在 GitHub 这里对页面进行引用和链接,但这不是必须的。

版权(c)2011 Lars Anderson,theonlylars

特此授予任何获得此软件及其相关文档文件(以下简称“软件”)副本的个人免费使用本软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、分包和/或销售软件复制品,并允许获得软件副本的个人执行上述操作,但有以下条件:

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

本软件按“原样”提供,不提供任何形式的保证,无论明确还是隐含,包括但不限于适销性、针对特定目的的适用性和非侵权性保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,不论源于合同、侵权或其他方式,是否因本软件、其使用或其他操作而产生的。

变更日志

3.0

  • 重新整理以添加模块化网络支持
  • 添加了模块化网络协议,供适配器符合
  • 添加了模块化广告网络处理
  • 删除了选择性启用方向处理的功能。现在自动查询视图控制器的方向。
  • 现在兼容 ARC!
  • 添加了 Google Ad 测试广告支持 - 现在在调试模式下(#ifdef DEBUG)将提供测试广告。

2.1

  • 添加了无需使用视图控制器代理回调的自动方向监听功能
  • 增加了广告尝试适合它们放置的任何视图的功能。现在的大小是基于父视图大小,而不仅仅是方向
  • 修复了问题3 - “从点击广告返回时容器框架错误”
  • 修复了从点击广告返回时广告不会再次显示的问题
  • 将某些方法签名从.h文件移动到.m文件中的私有接口
  • 更新了示例项目

2.0.1

  • 增加了一个示例项目来弥补我的不太详细的说明

2.0

  • 现在拥有更多旋转的支持!
  • 除了平板支持外,还支持所有支持需求

1.x

  • 仅支持pods
  • 仅支持纵向方向

使用LARSAdController的应用

如果你的应用使用LARSAdController,并且想被包含在这个列表中,请在Twitter上告诉我,或者通过提交包含你的应用的pull request来实现。

  • Droid Light
  • MasjidNow
  • 免费健康彩票结果

Bitdeli Badge