昨天我們了解了iOS商業(yè)模式的收費策略和使用蘋果iAd廣告,今天繼續(xù)跟隨南昌網(wǎng)絡公司小編學習如何使用谷歌AdMob廣告來獲取盈利。在一些無法顯示iAd廣告的國家,使用谷歌的AdMob廣告是一個非常不錯的選擇。
1.注冊 AdMob 賬號
要為我們的應用添加AdMob廣告,首先需要注冊AdMob賬號。AdMob的主頁是https://apps.admob. com/登錄時,需要使用谷歌賬戶。如果沒有谷歌賬戶的話,需要先注冊一個谷歌賬戶,然后再登錄。如果是第一次登錄,還需要為AdMob填寫完整的信息,如圖1所示。填寫必要而完整的信息后,提交信息就可以了。
圖1 AdMob注冊頁面
2.管理 AdMob 廣告
登錄成功之后,我們就可以管理應用。選擇“獲利”標簽,進入獲利管理頁面,如圖2所示,點擊“通過新應用獲利”按鈕可以添加應用,此時的界面如圖3所示。
圖2 添加應用
在圖3所示的頁面中,可以選擇的應用如下所示。
搜索您的應用:適合于已經(jīng)上線的應用,我們可以在Google Play和iTunes App Store應用商店中搜索。
手動添加您的應用:適合于新創(chuàng)建一個應用。
從您添加的應用中選擇:可以從現(xiàn)有的應用選擇添加。
這里我們選擇“手動添加您的應用”標簽,輸入應用名稱和選擇平臺,然后點擊“添加應用”按鈕,此時得到的界面如圖4所示。
圖3 手動添加應用
圖4 為應用添加廣告
在圖4所示的頁面中,可以點擊“橫幅廣告”或“插頁式廣告”按鈕。如果點擊“橫幅廣告”,則進入如圖5所示的新建廣告單元頁面,其中“自動刷新”和“文字廣告樣式”可以采用默認值,在“廣告單元名稱”中輸入一個具有唯一性的名稱,以便日后管理使用,然后點擊“保存”按鈕,則進入圖6所示的頁面,此時點擊“完成”按鈕就創(chuàng)建完廣告單元。
圖5 新建廣告單元
圖6 創(chuàng)建后廣告單元
創(chuàng)建完成后的頁面中會有廣告單元ID,這個ID是我們編程時需要的,谷歌會根據(jù)這個ID判斷是誰投放的廣告。
3.AdMob 廣告類型
AdMob廣告分為:橫幅廣告和插頁廣告。
橫幅廣告像“條幅”一樣掛在屏幕上,在屏幕中某一位置占有部分空間。當點擊橫幅廣告時,導航到另外的一個應用或者彈出窗口以呈現(xiàn)廣告的細節(jié)。點擊關(guān)閉廣告按鈕時,可以回到原始的屏幕。無論橫屏還是豎屏的情況,橫幅廣告在不同設備中的尺寸都是固定的,如圖7所示。
圖7 AdMob橫幅廣告
AdMob插頁廣告與橫幅廣告不同,插頁廣告可以占用屏幕的全部空間。在應用啟動、視頻前貼片或游戲關(guān)卡加載時顯示廣告,我們把這種場景稱為“啟動場景”AdMob插頁廣告(見圖8)。還有一種是在視頻播放結(jié)束或游戲結(jié)束時顯示的,我們稱之為“結(jié)束場景”AdMob插頁廣告(見圖9)。
圖8 啟動場景的AdMob插頁廣告
圖9 結(jié)束場景的AdMob插頁廣告
4.下載 AdMob Ads SDK
谷歌為開發(fā)人員提供了一個幫助網(wǎng)站https://developers.google.com/mobile-ads-sdk/,我們可以在這里下載AdMob Ads SDK。進入下載頁面(見圖10),其中顯示可以下載的SDK有4種。
Android (Google Play)。是使用Android系統(tǒng)需要的SDK,它使用了Google Play服務API,在Android系統(tǒng)中推薦使用這個SDK。
Android (6.4.1 and earlier SDKs)。是使用Android系統(tǒng)需要的SDK,它是給低版的Android系統(tǒng)使用的。
iOS。為iOS平臺提供SDK。
Windows Phone 8。為Windows Phone 8平臺提供SDK。
圖10 AdMob Ads SDK下載頁面
這里我們需要下載iOS SDK。
5.配置 AdMob 開發(fā)環(huán)境
我們首先將下載的AdMob iOS SDK壓縮件googlemobileadssdkios.zip解壓,內(nèi)容如下:
GoogleMobileAdsSdkiOS目錄
|____Add-ons
|____GADAdMobExtras.h
|____GADAdNetworkExtras.h
|____GADAdSize.h
|____GADBannerView.h
|____GADBannerViewDelegate.h
|____GADInAppPurchase.h
|____GADInAppPurchaseDelegate.h
|____GADInterstitial.h
|____GADInterstitialDelegate.h
|____GADModules.h
|____GADRequest.h
|____GADRequestError.h
|____libGoogleAdMobAds.a
|____README.txt
一般只需要.h文件和.a文件就可以了,而Add-ons目錄用于存放插件,例如廣告搜索定位等功能。我們需要將用到的.h文件和.a文件添加到Xcode工程中,我的習慣是將這些文件復制到工程目錄中,并為其創(chuàng)建一個文件夾,如圖11所示。然后會在Xcode中啟動該工程,并將該文件夾添加到工程中。
圖11 添加.h文件和.a文件
由于AdMob依賴于其他的一些框架,我們需要把這些框架添加到工程中,這些框架包括:
StoreKit.framework
CoreTelephony.framework
SystemConfiguration.framework
MessageUI.framework
MediaPlayer.framework
AdSupport.framework
AudioToolbox.framework
AVFoundation.framework
CoreGraphics.framework
QuartzCore.framework
EventKitUI.framework
EventKit.framework
引入框架后,還需要設置編譯參數(shù)Other Linker Flags,把它的Debug和Release參數(shù)都設置為-ObjC,如圖12所示。
圖12 設置編譯參數(shù)Other Linker Flags
配置好后我們就可以編譯了,如果前面的設置沒有問題,我們應該能夠編譯成功。
6.AdMob 橫幅廣告
AdMob橫幅廣告與iAd橫幅廣告的概念一樣,出現(xiàn)在屏幕中某一位置,占有部分空間,點擊廣告進入廣告詳細信息頁面。
AdMob也規(guī)定了不同的廣告尺寸,不同的尺寸是由如下常量定義的。
kGADAdSizeBanner。標準橫幅廣告,尺寸320×50,適應于iPhone、iPod touch和iPad。
kGADAdSizeLargeBanner。夸大的kGADAdSizeBanner,尺寸320×100。
kGADAdSizeMediumRectangle。矩形廣告(Medium Rectangle),可以在iPad設備上使用,廣告尺寸是320×250。
kGADAdSizeFullBanner。全欄廣告,適用于iPad ,廣告尺寸是468×60。
kGADAdSizeLeaderboard。排行榜廣告,適用于iPad ,廣告尺寸是728×90。
kGADAdSizeSmartBannerPortrait。豎屏智能廣告,iPhone和iPod設備豎屏情況下的高度是50,iPad設備豎屏情況下的高度是90。
kGADAdSizeSmartBannerLandscape。橫屏智能廣告,iPhone和iPod設備橫屏情況下的高度是32,iPad設備橫屏情況下的高度是90。
由于AdMob是Objective-C編寫的,我們需要在工程中添加橋接頭文件,并需要在編譯參數(shù)中設置。在SizeClassSample-Bridging-Header.h中添加如下內(nèi)容:
#import "GADBannerView.h"
#import "GADBannerViewDelegate.h"
#import "GADRequest.h"
下面的代碼是案例工程中ViewController的代碼:
上述代碼中,第①行定義ViewController中需要聲明遵守GADBannerViewDelegate協(xié)議。第②行代碼定義了GADBannerView類型的屬性adBannerView。第③行代碼定義常量AdUnitID,指定應用發(fā)布者ID。
第④行代碼用于創(chuàng)建并初始化廣告欄視圖,其中createBannerView方法是我們自定義的。在createBannerView方法中,第⑤行代碼用于在廣告欄視圖對象非空的情況下,設置委托對象為nil,第⑥行代碼用于將廣告欄視圖對象從父視圖中移除掉。第⑤和⑥行代碼對于再次創(chuàng)建并初始化廣告欄視圖非常重要。第⑦行代碼用于創(chuàng)建廣告欄視圖GADBannerView對象。第⑧行代碼用于設置應用發(fā)布者ID,第⑨行代碼用于設置廣告欄視圖的委托對象為self,第⑩行代碼用于將當前視圖控制器作為廣告欄根視圖控制器。第?行代碼用于請求廣告,其中self.request()語句(Objective-C中是self request)用于獲得請求對象GADRequest。
由于在橫屏和豎屏切換的時候,需要改變廣告欄的大小,因此需要捕獲屏幕旋轉(zhuǎn),這可以通過viewWillTransitionToSize:withTransitionCoordinator:方法實現(xiàn),見代碼第?行,該方法是iOS 8新的API。第?行代碼用于判斷橫屏情況,也就是寬大于高的情況下,相反如果寬小于高時則是豎屏情況。
第?行代碼用于定義request方法,其中第?行代碼用于創(chuàng)建請求對象GADRequest。第?行代碼用于設置測試設備標識,其中GAD_SIMULATOR_ID是模擬器標識,7740674c81cf31a50d2f92bcdb729f10是我們的iPod touch設備標識。
南昌網(wǎng)絡公司小編提示:設置測試設備非常重要,如果你的測試設備標識沒有添加到testDevices集合中,在應用運行的時候會在控制臺輸出該設備的標識,我們需要將這個設備標識復制并添加到testDevices集合中。如果你不添加測試設備標識,而去點擊廣告,這樣谷歌一旦檢測出來,你的AdMob廣告賬號會被封掉。
運行一下看看效果,廣告請求成功后會看到如圖13所示的廣告橫幅,點擊廣告欄即可啟動廣告詳細內(nèi)容畫面。
圖13 AdMob橫幅廣告畫面
7.添加 AdMob 插頁廣告
AdMob插頁廣告與蘋果iAd插頁廣告比較相似,都是全屏顯示,它的應用場景與iAd稍有不同。在應用啟動、視頻前貼片或游戲關(guān)卡加載時顯示廣告,我們把這種場景稱為“啟動場景”,這與iAd的“內(nèi)容顯示場景”類似。還有一種是在視頻播放結(jié)束或游戲結(jié)束時顯示的,我們稱之為“結(jié)束場景”。
(1)啟動場景
應用啟動、視頻前貼片或游戲關(guān)卡加載時,會彈出模態(tài)全屏廣告對話框,點擊全屏廣告左上角的關(guān)閉按鈕,可以關(guān)閉該對話框,如圖17-21所示。沒有廣告時,直接進入②界面(主屏幕界面),如果有廣告填充時先啟動①(廣告界面)進入,我們需要關(guān)閉它才能回到②界面(主屏幕界面)。
下面我們將圖7所示的插頁廣告實現(xiàn)一下。首先,參考添加AdMob設置環(huán)境。然后,添加橋接頭文件AdMobFullScreen1Demo-Bridging-Header.h,其代碼如下:
#import "GADInterstitial.h"
案例的主要代碼是在ViewController中編寫的,具體如下:
上述代碼中,第①行說明定義類時需要聲明遵守GADInterstitialDelegate委托協(xié)議,該協(xié)議規(guī)定了GADInterstitial 生命周期事件。第②行代碼是定義GADInterstitialAd 類型的屬性 splashInterstitial 。
GADInterstitialAd是AdMob插頁廣告視圖對象。第③行代碼用于創(chuàng)建并初始化插頁廣告視圖對象。第④行代碼用于請求廣告,其中self.createRequest()語句(Objective-C是self createRequest)用于獲得請求對象GADRequest。
第⑤行和第⑧行是GADInterstitialDelegate委托協(xié)議方法,其中第⑤行的方法是成功加載廣告的方法,第⑥行用于判斷廣告是否已經(jīng)加載完成,第⑦行用于呈現(xiàn)廣告界面,其中self是當前視圖控制器,它也是呈現(xiàn)廣告界面的視圖控制器。
(2)結(jié)束場景
該場景是在視頻播放結(jié)束或游戲結(jié)束時顯示廣告,它需要有一個觸發(fā)條件,滿足該條件時才彈出模態(tài)全屏廣告對話框,如圖8所示。下面我們將圖8所示的插頁廣告實現(xiàn)一下。首先,參考添加AdMob設置環(huán)境。然后,添加橋接頭文件AdMobFullScreen2Demo-Bridging-Header.h,相關(guān)代碼如下:
#import "GADInterstitial.h"
案例的主要代碼是在ViewController中編寫的。ViewController類定義、屬性等的相關(guān)代碼如下:
在onClick:方法中,第①行代碼通過NSTimer開始計劃任務,該計劃任務是每隔0.1秒調(diào)用一次update方法。在update方法中,第②行代碼用于判斷游戲是否結(jié)束(當然這是模擬),NSTimer使用完,就需要使用第③行代碼停止計劃執(zhí)行。第④行代碼用于實例化GADInterstitial對象。第⑦行代碼通過調(diào)用createRequest方法獲得請求對象發(fā)出廣告請求。
createRequest方法的代碼如下:
下面我們再看看ViewController中有關(guān)GADInterstitialDelegate委托的實現(xiàn)代碼:
在接收成功的interstitialDidReceiveAd:方法中,需要使用第①行代碼模態(tài)呈現(xiàn)廣告對話框,GADInterstitial對象的presentFromRootViewController:方法需要在成功請求回來后再調(diào)用。運行一下,看看是否能呈現(xiàn)廣告。
8.為廣告提交用戶和位置信息
如果廣告主能夠獲得用戶信息或位置信息,那么展示給用戶的廣告會更有針對性。出于對用戶隱私的尊重,谷歌要求只能指定以下信息:用戶性別、用戶生日和位置等。
修改第6節(jié)案例中ViewController的createRequest代碼,具體如下:
在上述代碼中,第①行代碼用于設定用戶的性別,其中GADGender.Male(Objective-C中是KGADGenderMale)是男性常量。類似地,還有.Female女性常量和.Unknown未知常量。第②行代碼用于設置用戶的出生信息。
第③行代碼用于設置用戶的位置信息,其中setLocationWithLatitude:部分用于設置緯度,如39.904667,longitude:部分是經(jīng)度,如116.408198,這個經(jīng)緯度是北京的地理坐標,accuracy:部分是水平精度。如果我們得不到經(jīng)緯度地理坐標,也可以采用地理信息描述方式查詢位置,第④行的setLocationWithDescription:方法就可以實現(xiàn)這個目的。
9.搜索廣告
AdMob還提供了一些插件來編寫更加準確的廣告應用,搜索廣告就是其中一個。搜索廣告用于訪問GoogleAdWords廣告資源,幫助用戶查找他們所需的內(nèi)容。
搜索廣告使用GADSearchBannerView替代GADBannerView。
使用搜索廣告時,首先導入Add-ons目錄中的Search、DoubleClick和Mediation子目錄。注意導入采用組,如圖14所示,在Folders中選中Create groups for any added folders單選按鈕,這可以使原來目錄中的子目錄變成工程中的“組”。
圖14 導入Add-ons目錄
下面我們修改第6節(jié)案例中ViewController的代碼,主要代碼如下:
上述代碼中,第①行用于實例化GADSearchBannerView對象,注意不是GADBannerView對象。在request方法中,第②行代碼用于實例化GADSearchRequest請求對象,第③行代碼用于設置搜索關(guān)鍵詞,第④行代碼用于獲得GADRequest對象,這是通過GADSearchRequest的類方法request返回的。
我們首先了解了iOS中的商業(yè)模式,其中收費策略值得廣大讀者借鑒。然后,我們重點學習了植入廣告,其中包括蘋果自己的iAd和谷歌的AdMob廣告。了解更多相關(guān)資訊,歡迎咨詢南昌網(wǎng)絡公司--百恒網(wǎng)絡。百恒網(wǎng)絡是一家專業(yè)從事南昌網(wǎng)站建設、微信開發(fā)、APP開發(fā)、網(wǎng)絡營銷等服務的南昌網(wǎng)絡公司,技術(shù)過硬,經(jīng)驗豐富。如有任何網(wǎng)站方面的問題,百恒網(wǎng)絡隨時歡迎大家來電咨詢,我們專業(yè)為您解答!