AAAなブログ

あなたの求めているものは、ここにはない!

Admob Adaptive Banner をiOS向けに実装する

 

 

バナーのレイアウト制約は?

 

公式のサンプルでは Instrinsic Size で最低サイズをStoryboard指定し、

実行時にいい感じにサイズを算出してgadBannerViewに広告をセットする。

やってみたけど、いまいちちゃんと動かない。

 

 

気にいらなかったので自分はこうした。

コンテナの制約は下記5つ。

 

1. Aspect Ratio → multiplier=320:50 で。 

2. bottom → SafeAreaに constant=0

3. horizontally center → SuperViewに対して constant=0

4. leading → SafeAreaに対して constant=0, priority=high

5. width → constant<=414

 

leadingの優先度を下げているのがポイント

幅を414以下にすることでlandscape時やiPadで大きくなりすぎるのを防いでる

 

 

これだけじゃダメ

 

公式をよく読むとheightについてこんなこと書いてある

バイスの高さの 15% 以下、50 ポイント以上になります。

なるほど。

じゃあこんな制約もつけておくか・・・

 

6. height → RootViewに対して multiplier=0.15 & constant <= 0

 

ちなみにiPhone SEのLandscapeの時、320 * 0.15 = 48ポイント

48以下50以上

崩壊しとるやん。

これで gadAdView#loadした時に読み込みエラーになって広告が出ないだろう。きっと。テストはしないめんどいから。

なんだか制約が複雑になりすぎて後で絶対混乱する自信があるwww

まあでもSEのlandscape以外はiPadも含めてこの制約でいける。

こだわりたい方はSizeClassesでゴニョゴニョしてね。

 

 

 

 

公式はこちら

 https://developers.google.com/admob/ios/banner/adaptive

 

公式のsampleはこちら

https://github.com/googleads/googleads-mobile-ios-examples