# Show Ads

## Showing a Fullscreen Ad

The fullscreen APIs combine the existing Rewarded and Interstitial ad formats into a single integration experience.

Once you receive the fullscreen ad from the ad load request, you are ready to show it at your convenience.

<ul class="tab" data-tab="e9309f4a-71ae-4a2d-8a4f-ef1dac7f48b4" data-name="iosShowFullscreenAd">
  
      <li class="active">
          <a href="#">swift </a>
      </li>
  
      <li>
          <a href="#">objective-c </a>
      </li>
  
</ul>
<ul class="tab-content" id="e9309f4a-71ae-4a2d-8a4f-ef1dac7f48b4" data-name="iosShowFullscreenAd">
  
      <li class="active">
<div class="language-swift highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">// Set the delegate before showing the ad</span>
<span class="n">ad</span><span class="o">.</span><span class="n">delegate</span> <span class="o">=</span> <span class="k">self</span>
<span class="n">ad</span><span class="o">.</span><span class="nf">show</span><span class="p">(</span><span class="nv">with</span><span class="p">:</span> <span class="o">&lt;</span><span class="n">view</span> <span class="n">controller</span><span class="o">&gt;</span><span class="p">)</span> <span class="p">{</span> <span class="n">result</span> <span class="k">in</span>
    <span class="k">if</span> <span class="k">let</span> <span class="nv">error</span> <span class="o">=</span> <span class="n">result</span><span class="o">.</span><span class="n">error</span> <span class="p">{</span>
        <span class="c1">// Handle the error</span>
    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
        <span class="c1">// The ad was shown</span>
    <span class="p">}</span>
<span class="p">}</span>

<span class="err">—</span><span class="o">--------------</span>
<span class="kt">Delegate</span> <span class="kt">Usage</span>
<span class="err">—</span><span class="o">--------------</span>

<span class="kd">func</span> <span class="nf">didRecordImpression</span><span class="p">(</span><span class="nv">ad</span><span class="p">:</span> <span class="kt">FullscreenAd</span><span class="p">)</span> <span class="p">{</span>
    <span class="c1">// Handle ad impression</span>
<span class="p">}</span>

<span class="kd">func</span> <span class="nf">didClick</span><span class="p">(</span><span class="nv">ad</span><span class="p">:</span> <span class="kt">FullscreenAd</span><span class="p">)</span> <span class="p">{</span>
    <span class="c1">// Handle ad clicked</span>
<span class="p">}</span>

<span class="kd">func</span> <span class="nf">didReward</span><span class="p">(</span><span class="nv">ad</span><span class="p">:</span> <span class="kt">FullscreenAd</span><span class="p">)</span> <span class="p">{</span>
    <span class="c1">// Handle ad reward</span>
<span class="p">}</span>

<span class="kd">func</span> <span class="nf">didClose</span><span class="p">(</span><span class="nv">ad</span><span class="p">:</span> <span class="kt">FullscreenAd</span><span class="p">,</span> <span class="nv">error</span><span class="p">:</span> <span class="kt">ChartboostMediationError</span><span class="p">?)</span> <span class="p">{</span>
    <span class="k">if</span> <span class="k">let</span> <span class="nv">error</span> <span class="o">=</span> <span class="n">error</span> <span class="p">{</span>
        <span class="c1">// Handle error</span>
    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
        <span class="c1">// Handle ad closed</span>
    <span class="p">}</span>
<span class="p">}</span>

<span class="kd">func</span> <span class="nf">didExpire</span><span class="p">(</span><span class="nv">ad</span><span class="p">:</span> <span class="kt">FullscreenAd</span><span class="p">)</span> <span class="p">{</span>
    <span class="c1">// Handle ad expired</span>
<span class="p">}</span>
</code></pre></div></div>
</li>
  
      <li>
<div class="language-objectivec highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">// Set the delegate before showing the ad</span>
<span class="n">ad</span><span class="p">.</span><span class="n">delegate</span> <span class="o">=</span> <span class="n">self</span><span class="p">;</span>
<span class="p">[</span><span class="n">ad</span> <span class="nf">showWith</span><span class="p">:</span><span class="o">&lt;</span><span class="n">view</span> <span class="n">controller</span><span class="o">&gt;</span> <span class="nf">completion</span><span class="p">:</span><span class="o">^</span><span class="p">(</span><span class="n">CBMAdShowResult</span> <span class="o">*</span><span class="n">result</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">if</span> <span class="p">(</span><span class="n">result</span><span class="p">.</span><span class="n">error</span> <span class="o">!=</span> <span class="nb">nil</span><span class="p">)</span> <span class="p">{</span>
        <span class="c1">// Handle the error</span>
    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
        <span class="c1">// The ad was shown</span>
    <span class="p">}</span>
<span class="p">}];</span>

<span class="err">—</span><span class="o">-------------</span><span class="k">-</span>
<span class="n">Delegate</span> <span class="n">Usage</span>
<span class="err">—</span><span class="o">--------------</span>

<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">didRecordImpressionWithAd</span><span class="p">:(</span><span class="n">CBMFullscreenAd</span> <span class="o">*</span><span class="p">)</span><span class="nv">ad</span> <span class="p">{</span>
    <span class="c1">// Handle ad impression</span>
<span class="p">}</span>

<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">didClickWithAd</span><span class="p">:(</span><span class="n">CBMFullscreenAd</span> <span class="o">*</span><span class="p">)</span><span class="nv">ad</span> <span class="p">{</span>
    <span class="c1">// Handle ad clicked</span>
<span class="p">}</span>

<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">didRewardWithAd</span><span class="p">:(</span><span class="n">CBMFullscreenAd</span> <span class="o">*</span><span class="p">)</span><span class="nv">ad</span> <span class="p">{</span>
    <span class="c1">// Handle ad reward</span>
<span class="p">}</span>

<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">didCloseWithAd</span><span class="p">:(</span><span class="n">CBMFullscreenAd</span> <span class="o">*</span><span class="p">)</span><span class="nv">ad</span> <span class="nf">error</span><span class="p">:(</span><span class="n">CBMError</span> <span class="o">*</span><span class="p">)</span><span class="nv">error</span> <span class="p">{</span>
    <span class="k">if</span> <span class="p">(</span><span class="n">error</span> <span class="o">!=</span> <span class="nb">nil</span><span class="p">)</span> <span class="p">{</span>
        <span class="c1">// Handle error</span>
    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
        <span class="c1">// Handle ad closed</span>
    <span class="p">}</span>

<span class="p">}</span>

<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">didExpireWithAd</span><span class="p">:(</span><span class="n">CBMFullscreenAd</span> <span class="o">*</span><span class="p">)</span><span class="nv">ad</span> <span class="p">{</span>
    <span class="c1">// Handle ad expired</span>
<span class="p">}</span>
</code></pre></div></div>
</li>
  
</ul>




## Showing Banner Ads

When you’re ready to show a banner ad, you can check that it’s ready to show and then display it like so:

<ul class="tab" data-tab="0ef5b69b-739f-45c5-bb32-c411fd09ee30" data-name="iosshowBannerAds">
  
      <li class="active">
          <a href="#">swift </a>
      </li>
  
      <li>
          <a href="#">objective-c </a>
      </li>
  
</ul>
<ul class="tab-content" id="0ef5b69b-739f-45c5-bb32-c411fd09ee30" data-name="iosshowBannerAds">
  
      <li class="active">
<div class="language-swift highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">if</span> <span class="k">let</span> <span class="nv">bannerAd</span> <span class="o">=</span> <span class="n">bannerAd</span> <span class="p">{</span>
    <span class="n">view</span><span class="o">.</span><span class="nf">addSubview</span><span class="p">(</span><span class="n">bannerAd</span><span class="p">)</span>
<span class="p">}</span>
</code></pre></div></div>
</li>
  
      <li>
<div class="language-objectivec highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">/// Banner ads are now automatically shown. All that you need to do</span>
<span class="c1">/// is add it to the view hierarchy.</span>
<span class="p">[</span><span class="n">self</span><span class="p">.</span><span class="n">view</span> <span class="nf">addSubview</span><span class="p">:</span><span class="n">self</span><span class="p">.</span><span class="n">bannerAd</span><span class="p">];</span>
</code></pre></div></div>
</li>
  
</ul>


If you enable auto-refresh for banner placement in the dashboard, then the Mediation SDK will apply that setting when the placement is shown.

Any auto-refresh changes made on the dashboard will take approximately one hour to take effect and the SDK must be rebooted in order to pick up the changes once they're available.



## Releasing Mediation Ads

To clear resources used by Mediation Ads, call `reset()` on a `BannerAdView` to clear the loaded ad and stop auto-refresh, or call `invalidate()` on a `FullscreenAd` to discard it from Chartboost Mediation's internal cache.

<ul class="tab" data-tab="87fe0aa9-d094-498a-84e6-1adcfb18e0b4" data-name="releaseMediationAds">
  
      <li class="active">
          <a href="#">swift </a>
      </li>
  
      <li>
          <a href="#">objective-c </a>
      </li>
  
</ul>
<ul class="tab-content" id="87fe0aa9-d094-498a-84e6-1adcfb18e0b4" data-name="releaseMediationAds">
  
      <li class="active">
<div class="language-swift highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">// Example of Releasing Banner Ads</span>
<span class="k">if</span> <span class="k">let</span> <span class="nv">bannerAd</span> <span class="o">=</span> <span class="n">bannerAd</span> <span class="p">{</span>
    <span class="n">bannerAd</span><span class="o">.</span><span class="nf">removeFromSuperview</span><span class="p">()</span>
    <span class="k">self</span><span class="o">.</span><span class="n">bannerAd</span> <span class="o">=</span> <span class="kc">nil</span>
    <span class="k">self</span><span class="o">.</span><span class="n">bannerConstraints</span> <span class="o">=</span> <span class="kc">nil</span>
<span class="p">}</span>
</code></pre></div></div>
</li>
  
      <li>
<div class="language-objectivec highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">// Example of Releasing Banner Ads</span>
<span class="k">if</span> <span class="p">(</span><span class="n">self</span><span class="p">.</span><span class="n">bannerAd</span><span class="p">)</span> <span class="p">{</span>
      <span class="p">[</span><span class="n">self</span><span class="p">.</span><span class="n">bannerAd</span> <span class="nf">removeFromSuperview</span><span class="p">];</span>
      <span class="n">self</span><span class="p">.</span><span class="n">bannerAd</span> <span class="o">=</span> <span class="nb">nil</span><span class="p">;</span>
      <span class="n">self</span><span class="p">.</span><span class="n">bannerConstraints</span> <span class="o">=</span> <span class="nb">nil</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div>
</li>
  
</ul>


