我們寫App是為了什麼, 對筆者來說, 其一是自己有興趣, 可以說是自己的理想. 其二當然就是賺錢啦. 雖然錢不是萬能, 但是沒錢卻是萬萬不能. 因此, 在App裡面放些廣告, 賺點溫口費, 總是不為過的. 但是筆者建議, 若你的App是要收費的, 哪麼還是不要再放入廣告, 畢竟使用者已經付費了, 還要賺取廣告費, 未免不夠厚道, 而且也降低了App的品質.
本篇文章是介紹如何使用Google的AdMob服務, 因此你必須先有AdMob的帳號, 沒有的人可以到此處申請. 並下載它的SDK. 申請跟下載流程都在中文語系, 相信各位都不會有什麼問題的. 都準備好之後, 就可以開始以下的流程了.
在專案中加入AdMob的SDK
首先開啟一個專案, 筆者這裡使用"SingleView Application".
建立專案名稱, 選擇使用 Storyboard及 ARC(Auto Reference Counting)
在專案點右鍵選擇"Add file to "你的專案名稱"
在AdMob資料夾中選取加入Addon及Readme.txt以外的檔案.
到專案的 TARGETS的"Build Phases"頁面, 裡面的"Link Binary with Library"添加以下framework:
- StoreKit
- AudioToolbox
- MessageUI
- SystemConfiguration
- CoreGraphics
- AdSupport
之後到"Build settings"中找到"Other Linker flags"加入"-ObjC".
到此就完這階段的工作了, 現在你已經建設好使用AdMob的配置了, 下一步就是在你的App中加入廣告了.
在App中加入廣告畫面
首先在你的.h檔中, 加入如下的程式碼
#import#import "GADBannerView.h"//import AdMob所要用的bannerView @interface AdMobTestViewController : UIViewController { //建立一個BannerView的物件 GADBannerView *bannerView_; }
在你的.m中加入
- (void)viewDidLoad { [super viewDidLoad]; // 在畫面下方建立標準廣告大小的畫面。 //GAD_SIZE_320x50 就是你的bannerView的size 其中320就是寬度(width), 50就是高度(height) bannerView_ = [[GADBannerView alloc] initWithFrame:CGRectMake(0.0, self.view.frame.size.height - GAD_SIZE_320x50.height, GAD_SIZE_320x50.width, GAD_SIZE_320x50.height)]; // 指定廣告的「單元識別碼」,也就是您的 AdMob 發佈商編號。 bannerView_.adUnitID = @"發佈商ID"; // 指定要復原的 UIViewController,讓執行階段在每次擷取 // 點擊廣告的使用者後加以復原,並加進檢視階層。 bannerView_.rootViewController = self; [self.view addSubview:bannerView_]; // 啟用泛用請求,並隨廣告一起載入。 [bannerView_ loadRequest:[GADRequest request]]; // Do any additional setup after loading the view, typically from a nib. }
到此你已完成了在App中加入廣告的動作了, 但是必須注意的是, 當你的App還在進行測試的時候, 是千萬不能執行以上這些程式碼的, 因為上述的程式碼是能為你帶來獲利的, 但是在進行測試時, 基本上就變成是你自己去點廣告來賺取收入, 會因此而遭到停權.因此, 要進行測試, 還得繼續進行以下作業.
將你的AdMobBanner設定為測試模式
首先在你的 .h中加入以下程式碼
- (GADRequest *)createTestRequest;在 .m中加入
- (GADRequest *)createTestRequest{ GADRequest *request = [GADRequest request]; request.testDevices = [NSArray arrayWithObjects:GAD_SIMULATOR_ID, @"你用來測試的設備ID", nil]; return request; }
最後, 把上個步驟中的泛用請求改為
[bannerView_ loadRequest:[self createTestRequest]];
到此就只剩下最後一個問題, 如何知道測試設備的ID了, 若是使用實機測試的話, 打開 Xcode的 Organizer左側的設備, 點右鍵選"Copy Device Identifier"然後貼到上述程式碼相應的地方就行了. 若是使用simulator的話, 可以使用以下程式碼獲得
NSLog(@"我的模擬器ID: %@" , [[UIDevice currentDevice] uniqueIdentifier]);
這些方法, 在AdMob的developer's guide中都有提到, 值得一提的是, 請看英文版的, 中文版本不知道是還沒更新還是怎樣, 照著做的話, 大概會出現以下這些錯誤訊息.
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.0.sdk -L/Users/twoyears44/Library/Developer/Xcode/DerivedData/AdMobTest-asgmbgeicmqqdwfllqxylfmvjxcf/Build/Products/Debug-iphonesimulator "-L/Users/twoyears44/Projects of ObjectC/01 Test/AdMobTest" -F/Users/twoyears44/Library/Developer/Xcode/DerivedData/AdMobTest-asgmbgeicmqqdwfllqxylfmvjxcf/Build/Products/Debug-iphonesimulator -filelist /Users/twoyears44/Library/Developer/Xcode/DerivedData/AdMobTest-asgmbgeicmqqdwfllqxylfmvjxcf/Build/Intermediates/AdMobTest.build/Debug-iphonesimulator/AdMobTest.build/Objects-normal/i386/AdMobTest.LinkFileList -Xlinker -objc_abi_version -Xlinker 2 -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=6.0 -framework AudioToolbox -framework MessageUI -framework SystemConfiguration -framework UIKit -framework Foundation -framework CoreGraphics -lGoogleAdMobAds -o /Users/twoyears44/Library/Developer/Xcode/DerivedData/AdMobTest-asgmbgeicmqqdwfllqxylfmvjxcf/Build/Products/Debug-iphonesimulator/AdMobTest.app/AdMobTest Undefined symbols for architecture i386: "_OBJC_CLASS_$_ASIdentifierManager", referenced from: objc-class-ref in libGoogleAdMobAds.a(GADIdentifierUtilities.o) "_OBJC_CLASS_$_SKStoreProductViewController", referenced from: objc-class-ref in libGoogleAdMobAds.a(GADOpener.o) "_SKStoreProductParameterITunesItemIdentifier", referenced from: -[GADOpener openInAppStore:fallbackURLString:] in libGoogleAdMobAds.a(GADOpener.o) ld: symbol(s) not found for architecture i386 clang: error: linker command failed with exit code 1 (use -v to see invocation)
以下是此文章的Reference, 裡面有許多有趣實用的東西, 文法也使用的很簡單, 建議一定要去看看:
https://developers.google.com/mobile-ads-sdk/download
沒有留言:
張貼留言