Smart Banners

Select platform: Android iOS Unity

Smart Banners are ad units that render screen-width banner ads on any screen size across different devices in either orientation. Smart Banners detect the width of the device in its current orientation and create the ad view that size.

Smart Banners on iPhones have a height of 50 points in portrait and 32 points in landscape. On iPads, height is 90 points in both portrait and landscape.

When an image ad isn't large enough to take up the entire allotted space, the image will be centered, and the space on either side will be filled in.

To use Smart Banners, just specify kGADAdSizeSmartBannerPortrait (for portait orientation) or kGADAdSizeSmartBannerLandscape (for landscape orientation) for the ad size:

Swift

 let 
  
 bannerView 
  
 = 
  
 GADBannerView 
 ( 
 adSize 
 : 
  
 kGADAdSizeSmartBannerPortrait 
 ) 

Objective-C

 GADBannerView 
  
 * 
 bannerView 
  
 = 
  
 [[ 
 GADBannerView 
  
 alloc 
 ] 
  
 initWithAdSize 
 : 
 kGADAdSizeSmartBannerPortrait 
 ]; 

Since the addition of the safe area for iOS 11, for full-width banners you should also add constraints for the edges of the banner to the edges of the safe area. Here is a code snippet showing how to do this:

Swift

 func 
  
 addBannerViewToView 
 ( 
 _ 
  
 bannerView 
 : 
  
 GADBannerView 
 ) 
  
 { 
  
 bannerView 
 . 
 translatesAutoresizingMaskIntoConstraints 
  
 = 
  
 false 
  
 view 
 . 
 addSubview 
 ( 
 bannerView 
 ) 
  
 if 
  
 #available 
 ( 
 iOS 
  
 11.0 
 , 
  
 * 
 ) 
  
 { 
  
 // In iOS 11, we need to constrain the view to the safe area. 
  
 positionBannerViewFullWidthAtBottomOfSafeArea 
 ( 
 bannerView 
 ) 
  
 } 
  
 else 
  
 { 
  
 // In lower iOS versions, safe area is not available so we use 
  
 // bottom layout guide and view edges. 
  
 positionBannerViewFullWidthAtBottomOfView 
 ( 
 bannerView 
 ) 
  
 } 
 } 
 // MARK: - view positioning 
 @ 
 available 
  
 ( 
 iOS 
  
 11 
 , 
  
 * 
 ) 
 func 
  
 positionBannerViewFullWidthAtBottomOfSafeArea 
 ( 
 _ 
  
 bannerView 
 : 
  
 UIView 
 ) 
  
 { 
  
 // Position the banner. Stick it to the bottom of the Safe Area. 
  
 // Make it constrained to the edges of the safe area. 
  
 let 
  
 guide 
  
 = 
  
 view 
 . 
 safeAreaLayoutGuide 
  
 NSLayoutConstraint 
 . 
 activate 
 ([ 
  
 guide 
 . 
 leftAnchor 
 . 
 constraint 
 ( 
 equalTo 
 : 
  
 bannerView 
 . 
 leftAnchor 
 ), 
  
 guide 
 . 
 rightAnchor 
 . 
 constraint 
 ( 
 equalTo 
 : 
  
 bannerView 
 . 
 rightAnchor 
 ), 
  
 guide 
 . 
 bottomAnchor 
 . 
 constraint 
 ( 
 equalTo 
 : 
  
 bannerView 
 . 
 bottomAnchor 
 ) 
  
 ]) 
 } 
 func 
  
 positionBannerViewFullWidthAtBottomOfView 
 ( 
 _ 
  
 bannerView 
 : 
  
 UIView 
 ) 
  
 { 
  
 view 
 . 
 addConstraint 
 ( 
 NSLayoutConstraint 
 ( 
 item 
 : 
  
 bannerView 
 , 
  
 attribute 
 : 
  
 . 
 leading 
 , 
  
 relatedBy 
 : 
  
 . 
 equal 
 , 
  
 toItem 
 : 
  
 view 
 , 
  
 attribute 
 : 
  
 . 
 leading 
 , 
  
 multiplier 
 : 
  
 1 
 , 
  
 constant 
 : 
  
 0 
 )) 
  
 view 
 . 
 addConstraint 
 ( 
 NSLayoutConstraint 
 ( 
 item 
 : 
  
 bannerView 
 , 
  
 attribute 
 : 
  
 . 
 trailing 
 , 
  
 relatedBy 
 : 
  
 . 
 equal 
 , 
  
 toItem 
 : 
  
 view 
 , 
  
 attribute 
 : 
  
 . 
 trailing 
 , 
  
 multiplier 
 : 
  
 1 
 , 
  
 constant 
 : 
  
 0 
 )) 
  
 view 
 . 
 addConstraint 
 ( 
 NSLayoutConstraint 
 ( 
 item 
 : 
  
 bannerView 
 , 
  
 attribute 
 : 
  
 . 
 bottom 
 , 
  
 relatedBy 
 : 
  
 . 
 equal 
 , 
  
 toItem 
 : 
  
 bottomLayoutGuide 
 , 
  
 attribute 
 : 
  
 . 
 top 
 , 
  
 multiplier 
 : 
  
 1 
 , 
  
 constant 
 : 
  
 0 
 )) 
 } 

Objective-C

 - 
 ( 
 void 
 ) 
 addBannerViewToView: 
 ( 
 UIView 
  
 * 
 ) 
 bannerView 
  
 { 
  
 bannerView 
 . 
 translatesAutoresizingMaskIntoConstraints 
  
 = 
  
 NO 
 ; 
  
 [ 
 self 
 . 
 view 
  
 addSubview 
 : 
 bannerView 
 ]; 
  
 if 
  
 (@ 
 available 
 ( 
 ios 
  
 11.0 
 , 
  
 * 
 )) 
  
 { 
  
 // In iOS 11, we need to constrain the view to the safe area. 
  
 [ 
 self 
  
 positionBannerViewFullWidthAtBottomOfSafeArea 
 : 
 bannerView 
 ]; 
  
 } 
  
 else 
  
 { 
  
 // In lower iOS versions, safe area is not available so we use 
  
 // bottom layout guide and view edges. 
  
 [ 
 self 
  
 positionBannerViewFullWidthAtBottomOfView 
 : 
 bannerView 
 ]; 
  
 } 
 } 
 #pragma mark - view positioning 
 - 
 ( 
 void 
 ) 
 positionBannerViewFullWidthAtBottomOfSafeArea: 
 ( 
 UIView 
  
 * 
 _Nonnull 
 ) 
 bannerView 
  
 NS_AVAILABLE_IOS 
 ( 
 11.0 
 ) 
  
 { 
  
 // Position the banner. Stick it to the bottom of the Safe Area. 
  
 // Make it constrained to the edges of the safe area. 
  
 UILayoutGuide 
  
 * 
 guide 
  
 = 
  
 self 
 . 
 view 
 . 
 safeAreaLayoutGuide 
 ; 
  
 [ 
 NSLayoutConstraint 
  
 activateConstraints 
 : 
 @[ 
  
 [ 
 guide 
 . 
 leftAnchor 
  
 constraintEqualToAnchor 
 : 
 bannerView 
 . 
 leftAnchor 
 ], 
  
 [ 
 guide 
 . 
 rightAnchor 
  
 constraintEqualToAnchor 
 : 
 bannerView 
 . 
 rightAnchor 
 ], 
  
 [ 
 guide 
 . 
 bottomAnchor 
  
 constraintEqualToAnchor 
 : 
 bannerView 
 . 
 bottomAnchor 
 ] 
  
 ] 
 ]; 
 } 
 - 
  
 ( 
 void 
 ) 
 positionBannerViewFullWidthAtBottomOfView 
 : 
 ( 
 UIView 
  
 * 
 _Nonnull 
 ) 
 bannerView 
  
 { 
  
 [ 
 self 
 . 
 view 
  
 addConstraint 
 : 
 [ 
 NSLayoutConstraint 
  
 constraintWithItem 
 : 
 bannerView 
  
 attribute 
 : 
 NSLayoutAttributeLeading 
  
 relatedBy 
 : 
 NSLayoutRelationEqual 
  
 toItem 
 : 
 self 
 . 
 view 
  
 attribute 
 : 
 NSLayoutAttributeLeading 
  
 multiplier 
 : 
 1 
  
 constant 
 : 
 0 
 ]]; 
  
 [ 
 self 
 . 
 view 
  
 addConstraint 
 : 
 [ 
 NSLayoutConstraint 
  
 constraintWithItem 
 : 
 bannerView 
  
 attribute 
 : 
 NSLayoutAttributeTrailing 
  
 relatedBy 
 : 
 NSLayoutRelationEqual 
  
 toItem 
 : 
 self 
 . 
 view 
  
 attribute 
 : 
 NSLayoutAttributeTrailing 
  
 multiplier 
 : 
 1 
  
 constant 
 : 
 0 
 ]]; 
  
 [ 
 self 
 . 
 view 
  
 addConstraint 
 : 
 [ 
 NSLayoutConstraint 
  
 constraintWithItem 
 : 
 bannerView 
  
 attribute 
 : 
 NSLayoutAttributeBottom 
  
 relatedBy 
 : 
 NSLayoutRelationEqual 
  
 toItem 
 : 
 self 
 . 
 bottomLayoutGuide 
  
 attribute 
 : 
 NSLayoutAttributeTop 
  
 multiplier 
 : 
 1 
  
 constant 
 : 
 0 
 ]]; 
 } 
Create a Mobile Website
View Site in Mobile | Classic
Share by: