Banners

Creating A Banner Ad πŸ”—

To create a banner, use the initializer initWithSize:location:delegate: and provide a size, Chartboost location, and an optional delegate. A banner ad has a CHBBannerSize which corresponds to the view’s intrinsicContentSize.

There are currently 3 banner sizes:

Name Field Size
Standard CHBBannerSizeStandard 320 x 50
Medium CHBBannerSizeMedium 300 x 250
Leaderboard CHBBannerSizeLeaderboard 728 x 90

Automatic Sizing: If AutoLayout is being used, give the banner an X and Y position constraint and it will be automatically sized.

Manual Sizing: Assign frame sizes manually and make sure the banner frame size is equal to its CHBBannerSize property.

Example:

  • func createBanner() {
      banner = CHBBanner(size: CHBBannerSizeStandard, location: "MainMenu", delegate: self)
      banner.translatesAutoresizingMaskIntoConstraints = false
      self.view.addSubview(banner)
      NSLayoutConstraint.activate([
          banner.bottomAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.bottomAnchor),
          banner.centerXAnchor.constraint(equalTo: self.view.centerXAnchor)
      ])
    }
    
  • - (void)createBanner {
       CHBBanner *banner = [[CHBBanner alloc] initWithSize:CHBBannerSizeStandard location:@"MainMenu" delegate:self];
       banner.translatesAutoresizingMaskIntoConstraints = NO;
       [self.view addSubview:banner];
       [NSLayoutConstraint activateConstraints:@[[banner.bottomAnchor constraintEqualToAnchor:self.view.safeAreaLayoutGuide.bottomAnchor],
                                                [banner.centerXAnchor constraintEqualToAnchor:self.view.centerXAnchor]]];
    }
    
  • We do not serve banner ads to apps that are opted-out of behavioral targeting.
  • You do not need to create a Banner Publishing Campaign on the Chartboost Dashboard. The banner ads are delivered through our Exchange. You only need to call on them via the SDK.
  • Your banner analytics are available in the App Analytics section of your Chartboost Dashboard.
  • Multiple banners can be displayed at once if desired.

Showing Banner Ads πŸ”—

After creating your banner ad, show it by calling this method:

  • banner.show(from:self)
    
  • [banner showFromViewController:self];
    

Every banner has an optional delegate which can be provided when initialized or assigned afterward. Get notified and respond to events related to the banner life-cycle by implementing delegate methods:

didCacheAd πŸ”—

(void)didCacheAd:(CHBCacheEvent _)event error:(nullable CHBCacheError _)error

  • Description: Called after a cache call if
    • an ad has been loaded from the Chartboost servers and cached.
    • an ad has failed to be loaded from the Chartboost servers.
  • Parameter Event: A cache event with info related to the cached ad.
  • Parameter Error: An error specifying the failure reason, or nil if the operation was successful.
  • ** Discussion:** Get notified of when an ad is ready to be shown after the cache method has been called.

willShowAd πŸ”—

- (void)willShowAd:(CHBShowEvent \*)event;

  • Description: Called after a showFromViewController: call, right before an ad is presented.
  • Parameter Event: A show event with info related to the ad to be shown.
  • Discussion: Get notified of when an ad is about to be presented.

Example:

  • func willShowAd(_ event: CHBShowEvent) {
    // Make any necessary UI updates
    }
    
  • - (void)willShowAd:(CHBShowEvent *)event {
    // Make any necessary UI updates
    }
    

didShowAd πŸ”—

(void)didShowAd:(CHBShowEvent _)event error:(nullable CHBShowError _)error;

  • Description: Called after a showFromViewController: call, either if the ad has been presented and an ad impression logged, or if the operation failed.
  • Parameter Event: A show event with info related to the ad shown.
  • Parameter Error: An error specifying the failure reason, or nil if the operation was successful.
  • Discussion: Get notified of when the ad presentation process has finished.

Example:

  • func didShowAd(_ event: CHBShowEvent, error: CHBShowError?) {
      if let error = error {
          // Handle error
      } else {
          event.ad.cache();
      }
    }
    
  • - (void)didShowAd:(CHBShowEvent *)event error:(nullable CHBShowError *)error {
      if (error) {
          // Handle error
      } else {
          [event.ad cache];
      }
    }
    

didClickAd πŸ”—

- (void)didClickAd:(CHBClickEvent _)event error:(nullable CHBClickError _)error;

  • Description: Called after an ad has been clicked.
  • Parameter Event: A click event with info related to the ad clicked.
  • Parameter Error: An error specifying the failure reason, or nil if the operation was successful.
  • Discussion: Get notified when an ad has been clicked. If the click does not result in the opening of a link an error will be provided explaining why.

Example:

  • func didClickAd(_ event: CHBClickEvent, error: CHBClickError?){
      if let error = error {
        // Handle error
      } else {
        // Maybe pause ongoing processes like video or gameplay when a banner ad is clicked
      }
    }
    
  • - (void)didClickAd:(CHBClickEvent *)event error:(nullable CHBClickError *)error {
      if (error) {
        // Handle error
      } else {
        // Maybe pause ongoing processes like video or gameplay when a banner ad is clicked
      }
    }
    

didFinishHandlingClick (Deprecated) πŸ”—

- (void)didFinishHandlingClick:(CHBClickEvent *)event error:(nullable CHBClickError *)error;

  • Description: Called when the link viewer presented as a result of an ad click has been dismissed.
  • Parameter Event: A click event with info related to the ad clicked.
  • Parameter Error: An error specifying the failure reason, or nil if the operation was successful.
  • Discussion: Get notified of when an ad click has been handled. This can mean an in-app web browser or StoreKit rendered ad has been dismissed, or that the user came back to the app after the link was opened on an external application.

Example:

  • func didFinishHandlingClick(_ event: CHBClickEvent, error: CHBClickError?){
      // Resume processes previously paused on didClickAd:error: implementation.
    }
    
  • - (void)didFinishHandlingClick:(CHBClickEvent *)event error:(nullable CHBClickError *)error {
      // Resume processes previously paused on didClickAd:error: implementation.
    }
    

didRecordImpression πŸ”—

- (void)didRecordImpression:(CHBImpressionEvent *)event;

  • Description: Called after an ad has recorded an impression.
  • Parameter Event: An impression event with info related to the visible ad.
  • Discussion: Implement to be notified of when an ad has recorded an impression. This method will be called once a valid impression is recorded after the ad is shown.

Example:

  • func didRecordImpression(_ event: CHBImpressionEvent) {
      // Track the impression
    }
    
  • - (void)didRecordImpression:(CHBImpressionEvent *)event {
      // Track the impression
    }
    

didExpireAd πŸ”—

- (void)didExpireAd:(CHBExpirationEvent *)event;

  • Description: Called when a loaded ad has expired.
  • Parameter Event: An expiration event with info related to the expired ad.
  • Discussion: Implement to be notified of when an ad has expired. This method will be called if a loaded ad is not shown before a predetermined expiration interval. After expiration a new ad may be loaded.

Example:

  • func didExpireAd(_ event: CHBExpirationEvent) {
      // The cached ad has expired, cache a new one
    }
    
  • - (void)didExpireAd:(CHBExpirationEvent *)event {
      // The cached ad has expired, cache a new one
    }