iOS開發 接入InMobi廣告平臺的一些個人經驗
最近專案中有使用到印度公司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,或者設定為原生廣告發布的任何其他時間。
- -(void)dealloc {
- nativeAd.delegate = nil;
- }
- 收入水平、國家、消費水平等等一些資訊的設定。
如果你希望我的幫助,請在下方留言,我會及時回覆的!~~畢竟我辣麼帥!!! O(∩_∩)O哈哈哈~