我們寫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





沒有留言:
張貼留言