Admob6.2.1をアプリ画面の下に配置する


自作アプリにも入れてるAdmobのバージョンが、6.2.1にアップデートされていました。

自作アプリ自体もアップデート作業をしていたので、Admobも更新することにしました。

SDKは公式サイトのiOS用6.2.1をダウンロードしました。
今回のアップデートで、AdmobはiOS6に対応したようです。

自作アプリを初リリースした際、いきなりAdmobを組み込もうとしてプロジェクトがグチャグチャになった覚えがあったので、まずはAdmobだけを入れたテストのプロジェクトを作って試すことにしました。
最初は、公式サイトの親切な設定方法に従ってみたのですが、やっぱり上手く行きません。

ググッたところ、こちらのサイト(「devlog [naru design]」)に書かれていた注意書きをヒントにさせていただいて、無事に解決することができました。
ちなみに、一番参考になったのは「Admobのクラスを読み込む際に、Add-onsフォルダとReadMe.txtは外す」という部分です。
画面キャプチャも掲載されていて、もちろん日本語だし、とても分かり易い設定方法の解説でした。

あとは、いくつかのFrameworkを追加したり、TARGETS>Build Settings>Linking>Other Linker Flagsに「-ObjC」を追加するのは、前回と同じです。
ここを注意すれば、公式サイトの設定方法の通りで問題なくバナーが表示できました。
参考にしたサイトに書かれている通り、request.testing = YES;を加えると、シミュレータではデモ用のバナーを試すことができます。


で、ここまでなら比較的スムーズに出来たのですが、現在リリースしている自作アプリではAdmobを画面の下に表示しています。
それは、前回のAdmob組み込みの際に、神的なサンプルコードをダウンロードしたら画面下にできるコードが書かれていたからなのですが、今回の6.2.1で同じコードを使ってもエラーが出てしまいました。。。

何とかAdmobバナーを下に表示できないものかとググったのですが、6.2.1でそのまま使えるサンプルコードがありませんでした。
何かオプションは無いものかと、試しに「initWithAdSize:kGADAdSizeBanner」の後をワザとスペースで空けてみました。すると、コードヒントがプルダウンで表示され、その中にoriginというものがありました。
そこで、「bannerView_ = [[GADBannerView alloc] initWithAdSize:kGADAdSizeBanner origin:」でググったところ、stackoverflowにQ&Aのやり取りが載ってました。英文ですが、欲しい物が目の前にぶら下がっているので死に物狂いで脳内翻訳しました。
要は、バナーの位置をoriginにCGPointとして格納すれば良いようです。「self.view.frame.size.height」はview全体の高さで、そこからバナーの高さの分「GAD_SIZE_320x50.height」を差し引けば、バナーは画面の下に表示されるということですね。
結果、Admobを呼び出すコードは、以下のようになりました。

最後に躓いたのは、これをAdmonbの公式サイトの言う通り、viewDidLoadに入れるとバナーがStatusBarの分だけズレた位置に表示されてしまうのです。
ここで、また計算式をいじったりとか悩んだのですが、、、

ふと、思い出しました。前回、Admobを設置した際に、自分でブログに「viewWillAppearに書け」と書いてあるではありませんか。。。

これで無事にアプリの画面の下にAdmobバナーが表示されるようになりました。
ブログのタイトルにも書かれた「おぼえがき」の意味が無いですね。。。精進します。