Tweet
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
- Newer: IB不使用&オープンソースなiPadアプリ(テキストエディタ)を作る 第8回:内蔵ブラウザとメール送信
- Older: IB不使用&オープンソースなiPadアプリ(テキストエディタ)を作る 第6回:AccessoryView、カーソル移動
Home > > IB不使用&オープンソースなiPadアプリ(テキストエディタ)を作る 第7回:AdMob
Tweet
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
Home > > IB不使用&オープンソースなiPadアプリ(テキストエディタ)を作る 第7回:AdMob
Home > Edhita > IB不使用&オープンソースなiPadアプリ(テキストエディタ)を作る 第7回:AdMob
Tweet
第7回。
今回は無料アプリの宿命(?)である
お金の問題を解決してくれるかもしれない広告についてです。
まぁお金が欲しければ有料化すればいい話なのですが、
そんな勇気もない僕のような開発者には強い味方ですね。
それでは始めます。
なお、AppleのiAdはまだ日本では表示されないので、
GoogleのAdMobを使います。
参考文献は第1回参照。
引き続き、Soft * Accessory様の素材をお借りしています。
まずはAdMobに登録しないと始まりません。
AdMobのサイトにアクセスし、
今すぐスタートから新規登録を行ないます。
ちなみに必要な情報は以下のとおり。
僕はオプションの電話・会社以外ちゃんと入力しました。
必要な情報を入力し「submit」すると、「AdMobアカウントの登録」メールが来ます。
その中のリンクをクリックすると「お客様のアカウントが有効になりました」画面が表示され、
登録は完了です。
次にAdMobのSDKをダウンロードします。
ログインするか、ログイン後画面右上のメールアドレスをクリックして、
アカウント画面に行きます。
「サイト及びアプリケーション」内の「サイト/アプリケーションの追加」を
クリックすると、サイト情報の入力画面になります。
「iPadアプリケーション」を選択し、必要な情報を入力します。
※ アプリURLは入力しなくても大丈夫です。
次に進むと「サイト コードを取得」画面が出てくるので、
「AdMob iPad/iPhone SDKをダウンロード」からSDK(admob_iphone_sdk_20100818.tar.gz)を、
「SDK の説明書をPDF 文書でダウンロードしてください。」からPDF(AdMob_iPad_SDK_Instructions.pdf)を
ダウンロードします。
ダウンロードしたSDKをプロジェクトに組み込みます。
PDFファイルに沿ってやればOKですが、英語なので一応流れを書いておきます。
SDK内の以下のファイルをAdMobフォルダごと、
プロジェクト直下にコピーします。
「Frameworksを右クリック→追加→既存のフレームワーク」から、
以下を追加します。
SDK内のTouchJSONフォルダをまるごとプロジェクト直下にコピーします。
publisher IDはSDK内に記載されているので問題なしです。
実装です。次節で説明します。
やっとコーディングです。
お金がからむと前作業が長いですね^^
ここもPDF内のStep5に従うだけですが、量もそんなに多く無いので、
今回コードに加えた変更を全部載せておきます。
といっても、
「admob_iphone_sdk/sample_projects/AdMobSampleAdsiPad/Classes」内の
「EarthquakeListViewController.h, m」にPublisher ID含め全部書いてあるので、
コピーするだけなんですが。
AdMobからのdelegateを受けるクラスを実装します。
今回はRootViewControllerにその機能を持たせています。
// RootViewController.h
#import "AdMobDelegateProtocol.h"
#import "AdMobView.h"
@interface RootViewController : UITableViewController <AdMobDelegate> {
// RootViewController.m
#pragma mark -
#pragma mark AdMobDelegate methods
- (NSString *)publisherIdForAd:(AdMobView *)adView {
return @"publisher ID"; // this should be prefilled; if not, get it from www.admob.com
}
- (UIViewController *)currentViewControllerForAd:(AdMobView *)adView {
// Return the top level view controller if possible. In this case, it is
// the split view controller
return self.splitViewController;
// return self.navigationController.parentViewController;
}
- (void)willPresentFullScreenModalFromAd:(AdMobView *)adView {
// IMPORTANT!!! IMPORTANT!!!
// If we are about to get a full screen modal and we have a popover controller, dimiss it.
// Otherwise, you may see the popover on top of the landing page.
if (detailViewController.popoverController && detailViewController.popoverController.popoverVisible) {
[detailViewController.popoverController dismissPopoverAnimated:YES];
}
}
- (NSArray *)testDevices {
return [NSArray arrayWithObjects: ADMOB_SIMULATOR_ID, nil];
}
delegate内から使うDetailViewControllerのプロパティがプライペート化されちゃってるので、それを解除します。
// DetailViewController.h
@property (nonatomic, retain) UIPopoverController *popoverController;
// DetailViewController.m
@interface DetailViewController ()
//プライベートメソッドの解除(AdMobから使うので)
//@property (nonatomic, retain) UIPopoverController *popoverController;
- (void)configureView;
@end
最後に広告Viewを表示します。
今回はTableViewのFooterに表示するので、
RootViewControllerのinitWithPath内で行います。
AdMobView *adMobView = [AdMobView requestAdOfSize:ADMOB_SIZE_320x270 withDelegate:self];
// AdMobView *adMobView = [AdMobView requestAdOfSize:ADMOB_SIZE_320x48 withDelegate:self];
self.tableView.tableFooterView = adMobView;
広告とはいえ、画像が入ると見た目が良くなっていいですね。
AdMobは現状審査もないらしく、
非常に簡単な印象を受けました。
あとはどれくらいのお小遣いになるかですが、
もうちょっとでEdhitaをリリースしてみる予定なので、
そこで試してみようと思います。
それでは。
今回のコードは「Edhita7.zip」に入っています。
GitHubのdownloadページからダウンロードして下さい。
Downloads for tnantoka's Edhita - GitHub
今までgitのリポジトリにほとんどのファイルがコミットできていませんでした。
(git add .等をしていなかったので、新規ファイルが管理されていなかったのです。)
たまたま毎回ダウンロード用のファイルを用意していなので、少しは救われましたが、
試行錯誤の痕跡がなくなってしまってかなりショックです。
リポジトリをチェックアウトされた方々にもご迷惑をお掛けしました。
凹んでてもしょうがないので気を取り直して頑張ります。
Home > Edhita > IB不使用&オープンソースなiPadアプリ(テキストエディタ)を作る 第7回:AdMob