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