Chartboost Videos

Boost your game with engaging, high-quality video ads!

The Chartboost SDK offers rich media support, custom advertiser experiences, and refreshed end cards to make your videos feel less like ads and more like crafted recommendations. Give your players the best in-game experience to enhance your ad performance and drive higher eCPM.

Chartboost offers two types of video ads:

  • Rewarded video lets players earn in-game items or virtual currency in exchange for a completed video view.

  • Interstitial video earns you revenue or helps you acquire users similarly to static creatives.

Before You Begin πŸ”—

Prefetched videos (in total) only take up 30-50MB, even when you are using mediation. Video prefetch might download videos from campaigns that hit budget, in which case a β€œNo Ad Found” error might occur.

Rewarded Video Integration πŸ”—

To create a rewarded ad you use the initializer initWithLocation:delegate: providing a Chartboost location and an optional delegate.

  • rewarded = CHBRewarded(location: "CBLocationMainMenu", delegate: self)
    
  • CHBRewarded *rewarded = [[CHBRewarded alloc] initWithLocation:CBLocationMainMenu delegate:self];
    

Rewarded ads need to be cached before they can be shown. To cache a rewarded ad, call the cache method.

  • rewarded.cache()
    
  • [rewarded cache];
    

To show a rewarded ad, call the show method.

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

Learn more about delegate methods

Interstitial Video Integration πŸ”—

To create an interstitial ad you use the initializer initWithLocation:delegate: providing a Chartboost location and an optional delegate.

  • interstitial = CHBInterstitial(location: "CBLocationMainMenu", delegate: self)
    
  • CHBInterstitial *interstitial = [[CHBInterstitial alloc] initWithLocation:CBLocationMainMenu delegate:self];
    

Interstitial video ads need to be cached before they can be shown. To cache an interstitial video ad just call the cache method.

  • interstitial.cache()
    
  • [interstitial cache];
    

To show an interstitial video ad just call the show method.

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

Custom Rewarded Video Behavior πŸ”—

To check if a video is available at either location, show the appropriate prompt before playing the video, and give the appropriate reward afterward, use the following:

  • ...
        // Attempt to preload a video at BOTH named locations 
        networkRewardedAd = [[CHBRewarded alloc] initWithLocation:@"NetworkVideo" delegate:self]; 
        crossPromoRewardedAd = [[CHBRewarded alloc] initWithLocation:@"CrossPromo" delegate:self]; 
        ...
    
        // Check which video is available first, or if no video is available
        if (networkRewardedAd.isCached) {
                // We prefer to use the monetizing video if available
                // Call custom game UI prompt to offer to show a video for the NetworkVideo reward
                // If the user accepts you will call [networkRewardedAd showWithViewController:self];
        }
        else if (crossPromoRewardedAd.isCached) {
                // Call custom Game UI prompt to offer to show a video for the CrossPromo reward
                // If the user accepts you will call [crossPromoRewardedAd showWithViewController:self];
        }
        else {
            // No video available
        }
    
  • ...
        // Attempt to preload a video at BOTH named locations 
        newtorkRewardedAd = CHBRewarded(location: "NetworkVideo", delegate: self) 
        crossPromoRewardedAd = CHBRewarded(location: "CrossPromo", delegate: self)
        ...
    
        // Check which video is available first, or if no video is available
        if networkRewardedAd.isCached {
                // We prefer to use the monetizing video if available
                // Call custom game UI prompt to offer to show a video for the NetworkVideo reward
                // If the user accepts you will call [networkRewardedAd showWithViewController:self];
        }
        else if crossPromoRewardedAd.isCached {
                // Call custom Game UI prompt to offer to show a video for the CrossPromo reward
                // If the user accepts you will call [crossPromoRewardedAd showWithViewController:self];
        }
        else {
            // No video available
        }
    

After the player watches the video, check the location where your game’s rewarded video delegate method is called:

  •     func didEarnReward(event: CHBRewardEvent) {
            // The event.reward value is what is set on the app's dashboard, which we are overriding
            if event.ad.location == "NetworkVideo" {
                // give your user the NetworkVideo reward
            } else {
                // give your user the CrossPromo reward
            }
        }
    
  • - (void)didEarnReward:(CHBRewardEvent *)event {
            // The event.reward value is what is set on the app's dashboard, which we are overriding
            if ([event.ad.location isEqual:@"NetworkVideo"]) {
                // give your user the NetworkVideo reward
            } else {
                // give your user the CrossPromo reward
            }
        }