# 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

- [Download and integrate](/en/monetization/get-started/#sdk-integration) the latest Chartboost SDK.
- [Start a campaign](/en/monetization/publishing/adding-your-first-app-and-campaign/) in your dashboard. 

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

These instructions apply to games on both the Amazon and Android platforms. Amazon integration uses the same SDK as Android.

We recommend that you cache the video ad and then show it. Additional condition checks have been added to `cache()` and `show()` calls, so you can call them directly:

<ul class="tab" data-tab="a1d29b60-a643-4ab7-aadf-0ad7046f09ef" data-name="rewardedIsCached">
  
      <li class="active">
          <a href="#">Kotlin </a>
      </li>
  
      <li>
          <a href="#">Java </a>
      </li>
  
</ul>
<ul class="tab-content" id="a1d29b60-a643-4ab7-aadf-0ad7046f09ef" data-name="rewardedIsCached">
  
      <li class="active">
<div class="language-kotlin highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">// Cache a rewarded ad</span>
<span class="n">rewarded</span><span class="p">.</span><span class="nf">cache</span><span class="p">()</span>

<span class="c1">// Show the rewarded ad when ready (in the onAdLoaded callback)</span>
<span class="n">rewarded</span><span class="p">.</span><span class="nf">show</span><span class="p">()</span>
</code></pre></div></div>
</li>
  
      <li>
<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">// Cache a rewarded ad</span>
<span class="n">rewarded</span><span class="o">.</span><span class="na">cache</span><span class="o">();</span>

<span class="c1">// Show the rewarded ad when ready (in the onAdLoaded callback)</span>
<span class="n">rewarded</span><span class="o">.</span><span class="na">show</span><span class="o">();</span>
</code></pre></div></div>
</li>
  
</ul>


<div class="alert alert-warning" role="alert">
  <b>Note:</b> The <code>isCached()</code> API is deprecated and will be removed in a future SDK release. Additional condition checks have been added to <code>cache()</code> and <code>show()</code> calls making this API redundant.
</div>

_The maximum number of rewarded video impressions that a user can receive per day, per publishing app is 20._

To see when a reward is ready to be delivered, use the following delegate method:

<ul class="tab" data-tab="d52a9ab3-f795-4422-a743-35797ed8e014" data-name="onRewardEarned">
  
      <li class="active">
          <a href="#">Kotlin </a>
      </li>
  
      <li>
          <a href="#">Java </a>
      </li>
  
</ul>
<ul class="tab-content" id="d52a9ab3-f795-4422-a743-35797ed8e014" data-name="onRewardEarned">
  
      <li class="active">
<div class="language-kotlin highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">override</span> <span class="k">fun</span> <span class="nf">onRewardEarned</span><span class="p">(</span><span class="n">rewardEvent</span><span class="p">:</span> <span class="nc">RewardEvent</span><span class="p">)</span>
</code></pre></div></div>
</li>
  
      <li>
<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">public</span> <span class="kt">void</span> <span class="nf">onRewardEarned</span><span class="o">(</span><span class="nc">RewardEvent</span> <span class="n">rewardEvent</span><span class="o">)</span>
</code></pre></div></div>
</li>
  
</ul>


