IOS开发植入广告的话,常用广告框架来实现,一般常用的有苹果官方的:iAd以及三方的像:InMobi等

以下分别介绍:

iAd框架

iOS 4.0引入了iAd框架(iAd.framework)支持程序中显示banner广告。广告由标准的view构成,你可以把它们插入到你的用户界面中,恰当的时候显示。View本身和苹果的广告服务通讯,处理一切载入和展现广告内容以及响应点击等工作。

更多关于在程序中使用iAd的信息,参见iAd编程指南以及iAd框架参考手册。

一、iAD框架


简介

IAD是苹果推出的广告平台,它可以帮助开发者从应用程序中获取收入。

实例步骤

1. 创建一个简单的View based application

2. 选择项目文件,然后选择目标,然后选择框架并添加 iAd.framework。

3. 更新 ViewController.h 如下所示

#import <UIKit/UIKit.h>
#import <iAd/iAd.h>
@interface ViewController : UIViewController<ADBannerViewDelegate>
{ADBannerView *bannerView;
}
@end

4. 更新ViewController.m ,如下所示

#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad
{[super viewDidLoad];bannerView = [[ADBannerView alloc]initWithFrame:CGRectMake(0, 0, 320, 50)];// Optional to set background color to clear color[bannerView setBackgroundColor:[UIColor clearColor]];[self.view addSubview: bannerView];
}- (void)didReceiveMemoryWarning
{[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated.
}#pragma mark - AdViewDelegates-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error{NSLog(@"Error loading");
}-(void)bannerViewDidLoadAd:(ADBannerView *)banner{NSLog(@"Ad loaded");
}
-(void)bannerViewWillLoadAd:(ADBannerView *)banner{NSLog(@"Ad will load");
}
-(void)bannerViewActionDidFinish:(ADBannerView *)banner{NSLog(@"Ad did finish");}
@end

输出

运行该应用程序,得到如下输出结果:

二、InMobi框架


一、注册InMobi账号,新建广告单元,等待审核。

1)注册账号,注册地址是:http://www.inmobi.com/,注册完成之后需要你填写联系信息以及收款信息,你就正常填写就可以,inmobi支持paypal和电汇,笔者试过,使用工行储蓄卡(双币卡,一般新办的卡都支持)和paypal都可以正常收到款项,美金哦,呵呵。

2)新建广告单元,如下图,如果你的APP已经上线,直接输入APP的url;反之如果app正在开发,可以选择“No”,输入app名称即可。

完成后会生成一个ID,如“4028cbff36f39ce201dfsdfsdfsdf2642”,这个ID在下面会用上。

3)新建的广告,当你的APP通过苹果审核后,要把APP的URL录入进来,让inmobi审核,否则不能正常显示广告的。

二、接入InMobi广告SDK到项目当中

从下载的 SDK 捆绑包中,将以下标题文件和二进制文件复制到项目。

  • libInMobi-5.x.x.a
  • IMSdk.h
  • IMBanner.h
  • IMBannerDelegate.h
  • IMInterstitial.h
  • IMInterstitialDelegate.h
  • IMNative.h
  • IMNativeDelegate.h
  • IMCustomNative.h
  • IMRequestStatus.h
  • IMCommonConstants.h

添加框架

将下列框架添加到您的 Xcode 项目:

  • AdSupport.framework
  • AudioToolbox.framework
  • AVFoundation.framework
  • CoreLocation.framework
  • CoreTelephony.framework
  • EventKit.framework
  • EventKitUI.framework
  • MediaPlayer.framework
  • MessageUI.framework
  • Security.framework
  • Social.framework
  • StoreKit.framework
  • SystemConfiguration.framework
  • UIKit.framework
  • UIKit.framework
  • libsqlite3.0.dylib
  • libc++.dylib

注:将info.plist文件中的   NSLocationWhenInUseUsageDescription标记设置为"YES" ;

添加其他版本设置
将 标记添加到其他链接器标记,以在使用类别时加载所有类。要完成此操作,请完成下列步骤:

1. 在Xcode中打开项目。
2. 选择应用程序目标>版本设置。
3. 在搜索字段中,搜索“其他链接器标记”。

4. 添加-ObjC标记。

针对iOS应用程序9应用程序传输安全性(ATS)是一种新的iOS9默认设置。它要求应用使网络连接只在TLS版本。1.2及以上。确保所有展示广告正确显示在您的应用程序,我们目前正与我们所有的合作伙伴的需求,确保100%符合ATS的要求。重要:在这个过渡阶段,然而,请禁用ATS为iOS 9确保展示广告在构建deisplay正确。这将减少美国胸科协会对应用程序的影响的货币化。点击这里了解更多信息。禁用ATS,请将下面的代码片段添加到您的应用程序的plist。

  • <key>NSAppTransportSecurity</key>
  • <dict>
  • <key>NSAllowsArbitraryLoads</key>
  • <true/>
  • </dict>
  • 开始接入到项目中初始化SDK
  • AppDelegate.h中导入头文件

#import "IMSdk.h"
#import "IMCommonConstants.h"

在AppDelegate.m 中添加初始化方法。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {//Initialize InMobi SDK with your account ID
[IMSdk initWithAccountID:@"这里填入你申请的ID 注意是类似"sfhsjahs2fhsjkhfks2dfhkj3f2"这种的!不是那个数字ID"];

// Do your stuff.

return YES;

}

在这里要普及一个小知识点

IMBanner属于一个横幅广告

IMInterstitial属于一个插页广告

IMNative属于原生广告

每一个对应的方法官方文档中都会有相应的方法去创建

我接入的是一个IMnative这个广告方式。

  • self.nativeAd=[[IMNative alloc] initWithPlacementId:@"Insert native Placement ID Here"];
  • self.nativeAd.delegate= self;
  • [self.nativeAd load];
  • 里面有一个重要的属性就是,adContent 这个代表着广告的内容,是一个JSON格式的字符串。里面的ImageURL是你要显示的广告内容,loadURL是广告的链接,这些对于你处理广告的逻辑很重要哦
    • [IMNative bindNative:self.nativeView toView:cell];

    这个方法是用来绑定你的广告和对应的视图的 一定要在广告完全显示之后再运行这个方法,这样才不会有错误的曝光。

  • 还有就是广告跳转的两种方式、
  • 1、[self.native reportAdClick:"这里传入你加载到的广告内容self.native.adContent"];
    • [[UIApplication sharedApplication] openURL:landingPageURL];
    • 用于跳转到safari脱离了你本身的app然后到app store 去下载广告内容。
    • 2、[self.native reportAdClickAndOpenLandingURL:"这里传入你加载到的广告内容self.native.adContent"];
    • 用于自身app页面上加载广告内容,直接在自己app页面中显示广告内容,有相应的代理方法,显示加载到的内容。
    • InMobi 强烈建议在 dealloc 方法中将代理设置为 nil,或者设置为原生广告发布的任何其他时间。
      textpop-up

      <ul class="snippet-no-num" style="margin:0px; padding:0.6em 1em; list-style:none"><li style="margin:5px 0px; padding:0px; line-height:20px; list-style:none"><span class="sh_symbol" style="color:#ff080;margin:0px; padding:0px; font-weight:bold">-(</span>void<span class="sh_symbol" style="color:#ff080;margin:0px; padding:0px; font-weight:bold">)</span>dealloc <span class="sh_cbracket" style="color:#ff080;margin:0px; padding:0px; font-weight:bold">{</span></li><li style="margin:5px 0px; padding:0px; line-height:20px; list-style:none">nativeAd<span class="sh_symbol" style="color:#ff080;margin:0px; padding:0px; font-weight:bold">.</span>delegate <span class="sh_symbol" style="color:#ff080;margin:0px; padding:0px; font-weight:bold">=</span> nil<span class="sh_symbol" style="color:#ff080;margin:0px; padding:0px; font-weight:bold">;</span></li><li style="margin:5px 0px; padding:0px; line-height:20px; list-style:none"><span class="sh_cbracket" style="color:#ff080;margin:0px; padding:0px; font-weight:bold">}</span></li></ul>

      我觉得这个广告平台最好的地方就是,可以通过传入不同的关键字进行一系列的广告加载,满足各种用户的期待

    • 收入水平、国家、消费水平等等一些信息的设置。

官方InMobi广告的SDK文档链接:https://support.inmobi.com/monetize/integration/ios/ios-sdk-integration-guide/

IOS开发广告接入iAD框架_InMobi框架相关推荐

  1. ios开发怎么接入面容id_Flutter混合开发

    来源 | https://segmentfault.com/a/1190000021634067 混合开发简介 使用Flutter从零开始开发App是一件轻松惬意的事情,但对于某些成熟的产品而言,完全 ...

  2. iOS开发 --- AlipaySDK接入(version:15.6.4 motify:2019.06.11)

    客户端 iOS 集成流程 App支付客户端DEMO&SDK 支付相关接口说明 支付接口 1.1 方法名称:pay方法 方法原型:(void)payOrder:(NSString )orderS ...

  3. ios开发怎么接入面容id_经常被老婆翻看手机怎么办?教你几招,手机直接给她都不怕了...

    [微创WEC科技]对于安卓用户来说,想隐藏自己的隐私其实很简单,害怕被女朋友或者老婆"查岗"的话,提前在设置中,设置隐藏式指纹,通过这个指纹识别后,才能在手机中看到你隐藏的文件.视 ...

  4. ios开发怎么接入面容id_谈谈数盟可信ID的技术原理

    目前市场上的APK,对于数盟可信ID的认可度已经变的很高了.从数盟的官网,96%的识别率已经在业内是很高的了.依靠如此单一的业务能够存活6年之久的公司,说明了这个技术的厉害之处. 处于对于此技术的好奇 ...

  5. iOS开发之接入微博三方登录时遇到的问题

    1.你所访问的站点在微博认证四百,错误号:21322 重定向地址不匹配 原因:微博开放平台中的授权回调页地址与工程中不一致,需要改为一致的. WBAuthorizeRequest *request = ...

  6. 文顶顶iOS开发博客链接整理及部分项目源代码下载

    网上的iOS开发的教程很多,但是像cnblogs博主文顶顶的博客这样内容图文并茂,代码齐全,示例经典,原理也有阐述,覆盖面宽广,自成系统的系列教程却很难找.如果你是初学者,在学习了斯坦福iOS7公开课 ...

  7. 对于iOS开发人工智能意味着什么

    对于iOS开发人工智能意味着什么? 前言 近几年来人工智能的话题那是炙手可热.在国内很多大佬言必谈机器学习和大数据:在美国刚毕业的人工智能 PHD 也是众人追捧,工资直逼 NFL 四分卫.人工智能甚至 ...

  8. 【硅谷问道】对于 iOS 开发,人工智能意味着什么?

    前言 近几年来人工智能的话题那是炙手可热.在国内很多大佬言必谈机器学习和大数据:在美国刚毕业的人工智能 PHD 也是众人追捧,工资直逼 NFL 四分卫.人工智能甚至成为了互联网领域茶余饭后的话题 -- ...

  9. 对于 iOS 开发,人工智能意味着什么?

    前言 近几年来人工智能的话题那是炙手可热.在国内很多大佬言必谈机器学习和大数据:在美国刚毕业的人工智能 PHD 也是众人追捧,工资直逼 NFL 四分卫.人工智能甚至成为了互联网领域茶余饭后的话题 -- ...

最新文章

  1. 从运维域看 Serverless 真的就是万能银弹吗?
  2. 预训练模型参数量越来越大?这里有你需要的BERT推理加速技术指南
  3. linux oracle流复制,oracle 流复制
  4. jq查找字段忽略html标签,jQuery过滤HTML标签并高亮显示关键字的方法
  5. mysql 查看表v空间自增涨_MySQL InnoDB表空间加密
  6. 计算机原理中的cps,信息物理融合系统(CPS)原理
  7. python3-pwntools教程_记一次five熬夜重装pwntools
  8. mysql bundle 安装_阿里云服务器下安装MySQL (Bundle压缩包 安装)
  9. 微软请你学Linux第三季: 6月最后的约会,再次诚意邀请!
  10. ORACLE数据库常见问题诊断方法 ---(常见错误篇)
  11. 一些mootools的资源
  12. Ubuntu安装与Xshell的配置
  13. mysql省市县表设计_表设计(省市县)
  14. 我的网站防盗链和屏蔽蜘蛛的iis8.5 web.config功能
  15. T229470 A. 小智的疑惑(暴力)
  16. 『原创』用C++开发WM应用系列(2)——拨打电话
  17. 自从用了这款黑科技工具,妈妈再也不用担心我的c盘文件爆满了
  18. 关于液晶刷新速度优化方法
  19. 数据库——《对数据进行排序》
  20. 前端项目中package.json到底是什么,又充当着什么作用呢?一文来带你了解package.json!

热门文章

  1. Borland Delphi 2005对Delphi语言的支持
  2. 万物悦享推广方案范文
  3. CULane评价指标
  4. 移动阅读:用户的刚需在哪里?
  5. android+无线传输+电脑,安卓手机变u盘软件AirDroid无线传输到电脑1.0.3.2安卓版
  6. 全局变量和局部变量的理解及注意事项 超详细 简单易懂
  7. 各种“店”的英语表达方式
  8. 无法识别U盘的解决办法
  9. 小米将搭载华为鸿蒙系统,确定了:6月2日!华为正式发出邀请,小米:暂不考虑...
  10. Flume多source,多sink组合框架搭建