IOS开发广告接入iAD框架_InMobi框架
IOS開發(fā)植入廣告的話,常用廣告框架來實(shí)現(xiàn),一般常用的有蘋果官方的:iAd以及三方的像:InMobi等
以下分別介紹:
iAd框架
iOS 4.0引入了iAd框架(iAd.framework)支持程序中顯示banner廣告。廣告由標(biāo)準(zhǔn)的view構(gòu)成,你可以把它們插入到你的用戶界面中,恰當(dāng)?shù)臅r(shí)候顯示。View本身和蘋果的廣告服務(wù)通訊,處理一切載入和展現(xiàn)廣告內(nèi)容以及響應(yīng)點(diǎn)擊等工作。
更多關(guān)于在程序中使用iAd的信息,參見iAd編程指南以及iAd框架參考手冊(cè)。
一、iAD框架
簡(jiǎn)介
IAD是蘋果推出的廣告平臺(tái),它可以幫助開發(fā)者從應(yīng)用程序中獲取收入。
實(shí)例步驟
1. 創(chuàng)建一個(gè)簡(jiǎn)單的View based application
2. 選擇項(xiàng)目文件,然后選擇目標(biāo),然后選擇框架并添加 iAd.framework。
3. 更新 ViewController.h 如下所示
#import <UIKit/UIKit.h> #import <iAd/iAd.h> @interface ViewController : UIViewController<ADBannerViewDelegate> {ADBannerView *bannerView; } @end4. 更新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輸出
運(yùn)行該應(yīng)用程序,得到如下輸出結(jié)果:
二、InMobi框架
一、注冊(cè)InMobi賬號(hào),新建廣告單元,等待審核。
1)注冊(cè)賬號(hào),注冊(cè)地址是:http://www.inmobi.com/,注冊(cè)完成之后需要你填寫聯(lián)系信息以及收款信息,你就正常填寫就可以,inmobi支持paypal和電匯,筆者試過,使用工行儲(chǔ)蓄卡(雙幣卡,一般新辦的卡都支持)和paypal都可以正常收到款項(xiàng),美金哦,呵呵。
2)新建廣告單元,如下圖,如果你的APP已經(jīng)上線,直接輸入APP的url;反之如果app正在開發(fā),可以選擇“No”,輸入app名稱即可。
完成后會(huì)生成一個(gè)ID,如“4028cbff36f39ce201dfsdfsdfsdf2642”,這個(gè)ID在下面會(huì)用上。3)新建的廣告,當(dāng)你的APP通過蘋果審核后,要把APP的URL錄入進(jìn)來,讓inmobi審核,否則不能正常顯示廣告的。
二、接入InMobi廣告SDK到項(xiàng)目當(dāng)中
從下載的 SDK 捆綁包中,將以下標(biāo)題文件和二進(jìn)制文件復(fù)制到項(xiàng)目。
- 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 項(xiàng)目:
- 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標(biāo)記設(shè)置為"YES" ;
添加其他版本設(shè)置
將 標(biāo)記添加到其他鏈接器標(biāo)記,以在使用類別時(shí)加載所有類。要完成此操作,請(qǐng)完成下列步驟:
1. 在Xcode中打開項(xiàng)目。
2. 選擇應(yīng)用程序目標(biāo)>版本設(shè)置。
3. 在搜索字段中,搜索“其他鏈接器標(biāo)記”。
4. 添加-ObjC標(biāo)記。?
針對(duì)iOS應(yīng)用程序9應(yīng)用程序傳輸安全性(ATS)是一種新的iOS9默認(rèn)設(shè)置。它要求應(yīng)用使網(wǎng)絡(luò)連接只在TLS版本。1.2及以上。確保所有展示廣告正確顯示在您的應(yīng)用程序,我們目前正與我們所有的合作伙伴的需求,確保100%符合ATS的要求。重要:在這個(gè)過渡階段,然而,請(qǐng)禁用ATS為iOS 9確保展示廣告在構(gòu)建deisplay正確。這將減少美國(guó)胸科協(xié)會(huì)對(duì)應(yīng)用程序的影響的貨幣化。點(diǎn)擊這里了解更多信息。禁用ATS,請(qǐng)將下面的代碼片段添加到您的應(yīng)用程序的plist。
- <key>NSAppTransportSecurity</key>
- <dict>
- <key>NSAllowsArbitraryLoads</key>
- <true/>
- </dict>
- 開始接入到項(xiàng)目中初始化SDK
- 在AppDelegate.h中導(dǎo)入頭文件
#import "IMSdk.h"
#import "IMCommonConstants.h"?
在AppDelegate.m 中添加初始化方法。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {//Initialize InMobi SDK with your account ID
[IMSdk initWithAccountID:@"這里填入你申請(qǐng)的ID 注意是類似"sfhsjahs2fhsjkhfks2dfhkj3f2"這種的!不是那個(gè)數(shù)字ID"];
// Do your stuff.
return YES;
}
在這里要普及一個(gè)小知識(shí)點(diǎn)
IMBanner屬于一個(gè)橫幅廣告
IMInterstitial屬于一個(gè)插頁廣告
IMNative屬于原生廣告
每一個(gè)對(duì)應(yīng)的方法官方文檔中都會(huì)有相應(yīng)的方法去創(chuàng)建
我接入的是一個(gè)IMnative這個(gè)廣告方式。
- self.nativeAd=[[IMNative alloc] initWithPlacementId:@"Insert native Placement ID Here"];
- self.nativeAd.delegate= self;
- [self.nativeAd load];
- 里面有一個(gè)重要的屬性就是,adContent 這個(gè)代表著廣告的內(nèi)容,是一個(gè)JSON格式的字符串。里面的ImageURL是你要顯示的廣告內(nèi)容,loadURL是廣告的鏈接,這些對(duì)于你處理廣告的邏輯很重要哦
-
- [IMNative bindNative:self.nativeView toView:cell];
- 還有就是廣告跳轉(zhuǎn)的兩種方式、
- 1、[self.native reportAdClick:"這里傳入你加載到的廣告內(nèi)容self.native.adContent"];
- [[UIApplication sharedApplication] openURL:landingPageURL];
- 用于跳轉(zhuǎn)到safari脫離了你本身的app然后到app store 去下載廣告內(nèi)容。
- 2、[self.native reportAdClickAndOpenLandingURL:"這里傳入你加載到的廣告內(nèi)容self.native.adContent"];
- 用于自身app頁面上加載廣告內(nèi)容,直接在自己app頁面中顯示廣告內(nèi)容,有相應(yīng)的代理方法,顯示加載到的內(nèi)容。
- InMobi 強(qiáng)烈建議在 dealloc 方法中將代理設(shè)置為 nil,或者設(shè)置為原生廣告發(fā)布的任何其他時(shí)間。 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> 我覺得這個(gè)廣告平臺(tái)最好的地方就是,可以通過傳入不同的關(guān)鍵字進(jìn)行一系列的廣告加載,滿足各種用戶的期待
- 收入水平、國(guó)家、消費(fèi)水平等等一些信息的設(shè)置。
總結(jié)
以上是生活随笔為你收集整理的IOS开发广告接入iAD框架_InMobi框架的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js逆向爬虫入门-03.凡科网逆向分析模
- 下一篇: 深度学习的可解释性——Striving