最近项目中有使用到印度公司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
- -(void)dealloc {
- nativeAd.delegate = nil;
- }
- 收入水平、国家、消费水平等等一些信息的设置。
官方InMobi广告的SDK文档链接:https://support.inmobi.com/monetize/integration/ios/ios-sdk-integration-guide/
如果你希望我的帮助,请在下方留言,我会及时回复的!~~毕竟我辣么帅!!!
O(∩_∩)O哈哈哈~