GAD_SIZE_300x250
GAD_SIZE_320x50
GAD_SIZE_468x60
GAD_SIZE_728x90
このうち,320x50がiPhoneの縦画面(Portrait)用のサイズで,あとはiPad用だったり,よくわからないものになる。
そして,「横画面(LandScape)用がないじゃないか!」となるわけで,実際ネットでさがしても皆さんどうしているのかよくわかりませんでした。
ところが昨日,Smart Bannersというものがあることを知りました。
画面サイズに合わせてバナーのサイズを設定できる優れものとのことです。
Smart Bannersについてはこちら。
さっそく実装してみました。
// Admobの広告を開始する
- (void) startAdMobAd {
NSLog(@"startAdMobAdd");
if (!self.bannerIsVisible2) {
NSLog(@"startAdMobAdd in");
CGPoint origin;
if( self.view.frame.size.height < self.view.frame.size.width){
origin = CGPointMake(0.0,
self.view.frame.size.height -
CGSizeFromGADAdSize(
kGADAdSizeSmartBannerLandscape).height);
}else{
origin = CGPointMake(0.0,
self.view.frame.size.width -
CGSizeFromGADAdSize(
kGADAdSizeSmartBannerLandscape).height - self.navigationController.navigationBar.frame.size.height);
}
self.gAdBannerView = [[GADBannerView alloc]
initWithAdSize:kGADAdSizeSmartBannerLandscape
origin:origin];
self.gAdBannerView.adUnitID = MY_BANNER_UNIT_ID;
self.gAdBannerView.delegate = self;
self.gAdBannerView.rootViewController = self;
[self.view addSubview:self.gAdBannerView];
[self.gAdBannerView loadRequest:[GADRequest request]];
self.bannerIsVisible2 = YES;
}
}
※よくわからないですが,状況によって,viewのheightとwidthが入れ替わっていることがあるので,if文で分岐しています。
※NavigationControllerを使用しているので,originの高さから引いたりしています。(これもなぜか縦横逆転時は引くとおかしくなりました)
やっつけでなんとなくできた感があり,よくわからないこともありますが,動いたからいいかなと。
重要なのは,
initWithAdSize:kGADAdSizeSmartBannerLandscape
のようにしてサイズを指定するところです。
ちなみに縦長だと,
kGADAdSizeSmartBannerPortrait
のようになります。
同じ悩みを持っている方の助けになればと思います。
(他の方法があったりして・・・)

0 件のコメント:
コメントを投稿