# Delegate Usage

By implementing Mediation delegate protocols you can get notifications about the success, failure, or lifecycle events of the Mediation SDK and its ad objects.

## Mediation Start Delegate

Implement the `HeliumSdkDelegate` protocol to receive notifications about the Mediation SDK’s initialization process.

<ul class="tab" data-tab="0429af5b-da61-4873-8702-aeca3ec495ec" data-name="HeliumSdkDelegate">
  
      <li class="active">
          <a href="#">swift </a>
      </li>
  
      <li>
          <a href="#">objective-c </a>
      </li>
  
</ul>
<ul class="tab-content" id="0429af5b-da61-4873-8702-aeca3ec495ec" data-name="HeliumSdkDelegate">
  
      <li class="active">
<div class="language-swift highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">extension</span> <span class="kt">AppDelegate</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="k">@interface</span> <span class="nc">AppDelegate</span> <span class="p">()</span> <span class="o">&lt;</span><span class="n">HeliumSdkDelegate</span><span class="o">&gt;</span>
</code></pre></div></div>
</li>
  
</ul>


This will allow you to implement the following method:

<ul class="tab" data-tab="fa8b426c-6a9b-4025-96a5-2c20f2c7d949" data-name="heliumDidStartWithError">
  
      <li class="active">
          <a href="#">swift </a>
      </li>
  
      <li>
          <a href="#">objective-c </a>
      </li>
  
</ul>
<ul class="tab-content" id="fa8b426c-6a9b-4025-96a5-2c20f2c7d949" data-name="heliumDidStartWithError">
  
      <li class="active">
<div class="language-swift highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">func</span> <span class="nf">heliumDidStartWithError</span><span class="p">(</span><span class="n">_</span> <span class="nv">error</span><span class="p">:</span> <span class="kt">ChartboostMediationSDK</span><span class="o">.</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="nf">print</span><span class="p">(</span><span class="s">"Chartboost Mediation did not start due to error: </span><span class="se">\(</span><span class="n">error</span><span class="se">)</span><span class="s">"</span><span class="p">)</span>
    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
        <span class="nf">print</span><span class="p">(</span><span class="s">"Chartboost Mediation Started Successfully"</span><span class="p">)</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="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">heliumDidStartWithError</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">ChartboostMediationError</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="p">)</span>
        <span class="n">NSLog</span><span class="p">(</span><span class="s">@"Mediation did not start due to error: %@"</span><span class="p">,</span> <span class="n">error</span><span class="p">);</span>
    <span class="k">else</span>
        <span class="n">NSLog</span><span class="p">(</span><span class="s">@"Mediation Started Successfully"</span><span class="p">);</span>
<span class="p">}</span>
</code></pre></div></div>
</li>
  
</ul>




## Interstitial Ad Delegates

Implement the `CHBHeliumInterstitialAdDelegate` protocol to receive notifications about interstitial ads loading, displaying, and closing.

<ul class="tab" data-tab="2369f568-f940-4e85-8338-ac752d6ecbc9" data-name="CHBHeliumInterstitialAdDelegate">
  
      <li class="active">
          <a href="#">swift </a>
      </li>
  
      <li>
          <a href="#">objective-c </a>
      </li>
  
</ul>
<ul class="tab-content" id="2369f568-f940-4e85-8338-ac752d6ecbc9" data-name="CHBHeliumInterstitialAdDelegate">
  
      <li class="active">
<div class="language-swift highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">extension</span> <span class="kt">ViewController</span><span class="p">:</span> <span class="kt">CHBHeliumInterstitialAdDelegate</span>
</code></pre></div></div>
</li>
  
      <li>
<div class="language-objectivec highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">@interface</span> <span class="nc">ViewController</span> <span class="p">()</span> <span class="o">&lt;</span><span class="n">CHBHeliumInterstitialAdDelegate</span><span class="o">&gt;</span>
</code></pre></div></div>
</li>
  
</ul>


This will allow you to implement the following methods:

<ul class="tab" data-tab="2817d0c3-2c37-40c3-8bb8-8233590c7143" data-name="heliumInterstitialAd">
  
      <li class="active">
          <a href="#">swift </a>
      </li>
  
      <li>
          <a href="#">objective-c </a>
      </li>
  
</ul>
<ul class="tab-content" id="2817d0c3-2c37-40c3-8bb8-8233590c7143" data-name="heliumInterstitialAd">
  
      <li class="active">
<div class="language-swift highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">func</span> <span class="nf">heliumInterstitialAd</span><span class="p">(</span>
    <span class="n">withPlacementName</span> <span class="nv">placementName</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span>
    <span class="nv">requestIdentifier</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span>
    <span class="nv">winningBidInfo</span><span class="p">:</span> <span class="p">[</span><span class="kt">String</span> <span class="p">:</span> <span class="kt">Any</span><span class="p">]?,</span>
    <span class="n">didLoadWithError</span> <span class="nv">error</span><span class="p">:</span> <span class="kt">ChartboostMediationSDK</span><span class="o">.</span><span class="kt">ChartboostMediationError</span><span class="p">?</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="nf">print</span><span class="p">(</span><span class="s">"Interstitial with Placement Name:</span><span class="se">\(</span><span class="n">placementName</span><span class="se">)</span><span class="s"> failed to load with error:</span><span class="se">\(</span><span class="n">error</span><span class="o">.</span><span class="n">localizedDescription</span><span class="se">)</span><span class="s">"</span><span class="p">)</span>
    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
        <span class="nf">print</span><span class="p">(</span><span class="s">"Interstitial with Placement Name:</span><span class="se">\(</span><span class="n">placementName</span><span class="se">)</span><span class="s"> didLoad"</span><span class="p">)</span>
    <span class="p">}</span>
<span class="p">}</span>

<span class="kd">func</span> <span class="nf">heliumInterstitialAd</span><span class="p">(</span>
    <span class="n">withPlacementName</span> <span class="nv">placementName</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span>
    <span class="n">didShowWithError</span> <span class="nv">error</span><span class="p">:</span> <span class="kt">ChartboostMediationSDK</span><span class="o">.</span><span class="kt">ChartboostMediationError</span><span class="p">?</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="nf">print</span><span class="p">(</span><span class="s">"Interstitial with Placement Name:</span><span class="se">\(</span><span class="n">placementName</span><span class="se">)</span><span class="s"> failed to show with error:</span><span class="se">\(</span><span class="n">error</span><span class="o">.</span><span class="n">localizedDescription</span><span class="se">)</span><span class="s">"</span><span class="p">)</span>
    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
        <span class="nf">print</span><span class="p">(</span><span class="s">"Interstitial with Placement Name:</span><span class="se">\(</span><span class="n">placementName</span><span class="se">)</span><span class="s"> didShow"</span><span class="p">)</span>
    <span class="p">}</span>
<span class="p">}</span>

<span class="kd">func</span> <span class="nf">heliumInterstitialAd</span><span class="p">(</span>
    <span class="n">withPlacementName</span> <span class="nv">placementName</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span>
    <span class="n">didCloseWithError</span> <span class="nv">error</span><span class="p">:</span> <span class="kt">ChartboostMediationSDK</span><span class="o">.</span><span class="kt">ChartboostMediationError</span><span class="p">?</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="nf">print</span><span class="p">(</span><span class="s">"Interstitial with Placement Name:</span><span class="se">\(</span><span class="n">placementName</span><span class="se">)</span><span class="s"> failed to close with error:</span><span class="se">\(</span><span class="n">error</span><span class="o">.</span><span class="n">localizedDescription</span><span class="se">)</span><span class="s">"</span><span class="p">)</span>
    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
        <span class="nf">print</span><span class="p">(</span><span class="s">"Interstitial with Placement Name:</span><span class="se">\(</span><span class="n">placementName</span><span class="se">)</span><span class="s"> didClose"</span><span class="p">)</span>
    <span class="p">}</span>
<span class="p">}</span>

<span class="kd">func</span> <span class="nf">heliumInterstitialAdDidRecordImpression</span><span class="p">(</span><span class="n">withPlacementName</span> <span class="nv">placementName</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span> <span class="p">{</span>
    <span class="nf">print</span><span class="p">(</span><span class="s">"Impression recorded"</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="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">heliumInterstitialAdWithPlacementName</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span> <span class="n">_Nonnull</span><span class="p">)</span><span class="nv">placementName</span>
                            <span class="nf">requestIdentifier</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span> <span class="n">_Nonnull</span><span class="p">)</span><span class="nv">requestIdentifier</span>
                               <span class="nf">winningBidInfo</span><span class="p">:(</span><span class="n">NSDictionary</span><span class="o">&lt;</span><span class="n">NSString</span> <span class="o">*</span><span class="p">,</span><span class="n">id</span><span class="o">&gt;</span> <span class="o">*</span> <span class="n">_Nullable</span><span class="p">)</span><span class="nv">winningBidInfo</span>
                             <span class="nf">didLoadWithError</span><span class="p">:(</span><span class="n">ChartboostMediationError</span> <span class="o">*</span> <span class="n">_Nullable</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="p">)</span>
    <span class="p">{</span>
        <span class="n">NSLog</span><span class="p">(</span><span class="s">@"Interstitial with Placement Name:%@ failed to load with error:%@"</span><span class="p">,</span> <span class="n">placementName</span><span class="p">,</span> <span class="n">error</span><span class="p">.</span><span class="n">description</span><span class="p">);</span>
    <span class="p">}</span>
    <span class="k">else</span>
    <span class="p">{</span>
        <span class="n">NSLog</span><span class="p">(</span><span class="s">@"Interstitial with Placement Name:%@ didLoad"</span><span class="p">,</span> <span class="n">placementName</span><span class="p">);</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">heliumInterstitialAdWithPlacementName</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span> <span class="n">_Nonnull</span><span class="p">)</span><span class="nv">placementName</span>
                             <span class="nf">didShowWithError</span><span class="p">:(</span><span class="n">ChartboostMediationError</span> <span class="o">*</span> <span class="n">_Nullable</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="p">)</span>
    <span class="p">{</span>
        <span class="n">NSLog</span><span class="p">(</span><span class="s">@"Interstitial with Placement Name:%@ failed to show with error:%@"</span><span class="p">,</span> <span class="n">placementName</span><span class="p">,</span> <span class="n">error</span><span class="p">.</span><span class="n">description</span><span class="p">);</span>
    <span class="p">}</span>
    <span class="k">else</span>
    <span class="p">{</span>
        <span class="n">NSLog</span><span class="p">(</span><span class="s">@"Interstitial with Placement Name:%@ didShow"</span><span class="p">,</span> <span class="n">placementName</span><span class="p">);</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">heliumInterstitialAdWithPlacementName</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span> <span class="n">_Nonnull</span><span class="p">)</span><span class="nv">placementName</span>
                            <span class="nf">didCloseWithError</span><span class="p">:(</span><span class="n">ChartboostMediationError</span> <span class="o">*</span> <span class="n">_Nullable</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="p">)</span>
    <span class="p">{</span>
        <span class="n">NSLog</span><span class="p">(</span><span class="s">@"Interstitial with Placement Name:%@ failed to close with error:%@"</span><span class="p">,</span> <span class="n">placementName</span><span class="p">,</span> <span class="n">error</span><span class="p">.</span><span class="n">description</span><span class="p">);</span>
    <span class="p">}</span>
    <span class="k">else</span>
    <span class="p">{</span>
        <span class="n">NSLog</span><span class="p">(</span><span class="s">@"Interstitial with Placement Name:%@ didClose"</span><span class="p">,</span> <span class="n">placementName</span><span class="p">);</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">heliumInterstitialAdDidRecordImpressionWithPlacementName</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">placementName</span>
<span class="p">{</span>
    <span class="n">NSLog</span><span class="p">(</span><span class="s">@"Impression recorded"</span><span class="p">);</span>
<span class="p">}</span>


</code></pre></div></div>
</li>
  
</ul>




## Rewarded Ad Delegates

Implement the `CHBHeliumRewardedAdDelegate` protocol to receive notifications about rewarded ads loading, displaying, and closing.


<ul class="tab" data-tab="a1300bbc-e9df-4aa7-8f03-129ab35efd5f" data-name="CHBHeliumRewardedAdDelegate">
  
      <li class="active">
          <a href="#">swift </a>
      </li>
  
      <li>
          <a href="#">objective-c </a>
      </li>
  
</ul>
<ul class="tab-content" id="a1300bbc-e9df-4aa7-8f03-129ab35efd5f" data-name="CHBHeliumRewardedAdDelegate">
  
      <li class="active">
<div class="language-swift highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">@interface</span> <span class="kt">ViewController</span> <span class="p">()</span> <span class="o">&lt;</span><span class="kt">CHBHeliumRewardedAdDelegate</span><span class="o">&gt;</span>
</code></pre></div></div>
</li>
  
      <li>
<div class="language-objectivec highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">extension</span> <span class="n">ViewController</span><span class="o">:</span> <span class="n">CHBHeliumRewardedAdDelegate</span>
</code></pre></div></div>
</li>
  
</ul>


This will allow you to implement the following methods:

<ul class="tab" data-tab="8850902d-d289-4527-80a1-026b1d3b3a0f" data-name="heliumRewardedAd">
  
      <li class="active">
          <a href="#">swift </a>
      </li>
  
      <li>
          <a href="#">objective-c </a>
      </li>
  
</ul>
<ul class="tab-content" id="8850902d-d289-4527-80a1-026b1d3b3a0f" data-name="heliumRewardedAd">
  
      <li class="active">
<div class="language-swift highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">func</span> <span class="nf">heliumRewardedAd</span><span class="p">(</span>
        <span class="n">withPlacementName</span> <span class="nv">placementName</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span>
        <span class="nv">requestIdentifier</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span>
        <span class="nv">winningBidInfo</span><span class="p">:</span> <span class="p">[</span><span class="kt">String</span> <span class="p">:</span> <span class="kt">Any</span><span class="p">]?,</span>
        <span class="n">didLoadWithError</span> <span class="nv">error</span><span class="p">:</span> <span class="kt">ChartboostMediationSDK</span><span class="o">.</span><span class="kt">ChartboostMediationError</span><span class="p">?</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="nf">print</span><span class="p">(</span><span class="s">"Rewarded with Placement Name:</span><span class="se">\(</span><span class="n">placementName</span><span class="se">)</span><span class="s"> failed to load with error:</span><span class="se">\(</span><span class="n">error</span><span class="o">.</span><span class="n">localizedDescription</span><span class="se">)</span><span class="s">"</span><span class="p">)</span>
        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
            <span class="nf">print</span><span class="p">(</span><span class="s">"Rewarded with Placement Name:</span><span class="se">\(</span><span class="n">placementName</span><span class="se">)</span><span class="s"> didLoad"</span><span class="p">)</span>
        <span class="p">}</span>
    <span class="p">}</span>

    <span class="kd">func</span> <span class="nf">heliumRewardedAd</span><span class="p">(</span>
        <span class="n">withPlacementName</span> <span class="nv">placementName</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span>
        <span class="n">didShowWithError</span> <span class="nv">error</span><span class="p">:</span> <span class="kt">ChartboostMediationSDK</span><span class="o">.</span><span class="kt">ChartboostMediationError</span><span class="p">?</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="nf">print</span><span class="p">(</span><span class="s">"Rewarded with Placement Name:</span><span class="se">\(</span><span class="n">placementName</span><span class="se">)</span><span class="s"> failed to show with error:</span><span class="se">\(</span><span class="n">error</span><span class="o">.</span><span class="n">localizedDescription</span><span class="se">)</span><span class="s">"</span><span class="p">)</span>
        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
            <span class="nf">print</span><span class="p">(</span><span class="s">"Rewarded with Placement Name:</span><span class="se">\(</span><span class="n">placementName</span><span class="se">)</span><span class="s"> didShow"</span><span class="p">)</span>
        <span class="p">}</span>
    <span class="p">}</span>

    <span class="kd">func</span> <span class="nf">heliumRewardedAd</span><span class="p">(</span>
        <span class="n">withPlacementName</span> <span class="nv">placementName</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span>
        <span class="n">didCloseWithError</span> <span class="nv">error</span><span class="p">:</span> <span class="kt">ChartboostMediationSDK</span><span class="o">.</span><span class="kt">ChartboostMediationError</span><span class="p">?</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="nf">print</span><span class="p">(</span><span class="s">"Rewarded with Placement Name:</span><span class="se">\(</span><span class="n">placementName</span><span class="se">)</span><span class="s"> failed to close with error:</span><span class="se">\(</span><span class="n">error</span><span class="o">.</span><span class="n">localizedDescription</span><span class="se">)</span><span class="s">"</span><span class="p">)</span>
        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
            <span class="nf">print</span><span class="p">(</span><span class="s">"Rewarded with Placement Name:</span><span class="se">\(</span><span class="n">placementName</span><span class="se">)</span><span class="s"> didClose"</span><span class="p">)</span>
        <span class="p">}</span>
    <span class="p">}</span>

    <span class="kd">func</span> <span class="nf">heliumRewardedAdDidGetReward</span><span class="p">(</span><span class="n">withPlacementName</span> <span class="nv">placementName</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span> <span class="p">{</span>
        <span class="nf">print</span><span class="p">(</span><span class="s">"Got Reward for RV with placementName:</span><span class="se">\(</span><span class="n">placementName</span><span class="se">)</span><span class="s">"</span><span class="p">)</span>
    <span class="p">}</span>

    <span class="kd">func</span> <span class="nf">heliumRewardedAdDidRecordImpression</span><span class="p">(</span><span class="n">withPlacementName</span> <span class="nv">placementName</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span> <span class="p">{</span>
        <span class="nf">print</span><span class="p">(</span><span class="s">"Impression recorded"</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="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">heliumRewardedAdWithPlacementName</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span> <span class="n">_Nonnull</span><span class="p">)</span><span class="nv">placementName</span>
                        <span class="nf">requestIdentifier</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span> <span class="n">_Nonnull</span><span class="p">)</span><span class="nv">requestIdentifier</span>
                           <span class="nf">winningBidInfo</span><span class="p">:(</span><span class="n">NSDictionary</span><span class="o">&lt;</span><span class="n">NSString</span> <span class="o">*</span><span class="p">,</span><span class="n">id</span><span class="o">&gt;</span> <span class="o">*</span> <span class="n">_Nullable</span><span class="p">)</span><span class="nv">winningBidInfo</span>
                         <span class="nf">didLoadWithError</span><span class="p">:(</span><span class="n">ChartboostMediationError</span> <span class="o">*</span> <span class="n">_Nullable</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="p">)</span>
    <span class="p">{</span>
        <span class="n">NSLog</span><span class="p">(</span><span class="s">@"Rewarded with Placement Name:%@ failed to load with error:%@"</span><span class="p">,</span> <span class="n">placementName</span><span class="p">,</span> <span class="n">error</span><span class="p">.</span><span class="n">description</span><span class="p">);</span>
    <span class="p">}</span>
    <span class="k">else</span>
    <span class="p">{</span>
        <span class="n">NSLog</span><span class="p">(</span><span class="s">@"Rewarded with Placement Name:%@ didLoad"</span><span class="p">,</span> <span class="n">placementName</span><span class="p">);</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">heliumRewardedAdWithPlacementName</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span> <span class="n">_Nonnull</span><span class="p">)</span><span class="nv">placementName</span>
                         <span class="nf">didShowWithError</span><span class="p">:(</span><span class="n">ChartboostMediationError</span> <span class="o">*</span> <span class="n">_Nullable</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="p">)</span>
    <span class="p">{</span>
        <span class="n">NSLog</span><span class="p">(</span><span class="s">@"Rewarded with Placement Name:%@ failed to show with error:%@"</span><span class="p">,</span> <span class="n">placementName</span><span class="p">,</span> <span class="n">error</span><span class="p">.</span><span class="n">description</span><span class="p">);</span>
    <span class="p">}</span>
    <span class="k">else</span>
    <span class="p">{</span>
        <span class="n">NSLog</span><span class="p">(</span><span class="s">@"Rewarded with Placement Name:%@ didShow"</span><span class="p">,</span> <span class="n">placementName</span><span class="p">);</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">heliumRewardedAdWithPlacementName</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span> <span class="n">_Nonnull</span><span class="p">)</span><span class="nv">placementName</span>
                        <span class="nf">didCloseWithError</span><span class="p">:(</span><span class="n">ChartboostMediationError</span> <span class="o">*</span> <span class="n">_Nullable</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="p">)</span>
    <span class="p">{</span>
        <span class="n">NSLog</span><span class="p">(</span><span class="s">@"Rewarded with Placement Name:%@ failed to close with error:%@"</span><span class="p">,</span> <span class="n">placementName</span><span class="p">,</span> <span class="n">error</span><span class="p">.</span><span class="n">description</span><span class="p">);</span>
    <span class="p">}</span>
    <span class="k">else</span>
    <span class="p">{</span>
        <span class="n">NSLog</span><span class="p">(</span><span class="s">@"Rewarded with Placement Name:%@ didClose"</span><span class="p">,</span> <span class="n">placementName</span><span class="p">);</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">heliumRewardedAdDidGetRewardWithPlacementName</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span> <span class="n">_Nonnull</span><span class="p">)</span><span class="nv">placementName</span>
<span class="p">{</span>
    <span class="n">NSLog</span><span class="p">(</span><span class="s">@"Got Reward for RV with placementName:%@"</span><span class="p">,</span> <span class="n">placementName</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">heliumRewardedAdDidRecordImpressionWithPlacementName</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">placementName</span>
<span class="p">{</span>
    <span class="n">NSLog</span><span class="p">(</span><span class="s">@"Impression recorded"</span><span class="p">);</span>
<span class="p">}</span>
</code></pre></div></div>
</li>
  
</ul>




## Banner Ad Delegates

Implement the `CHBHeliumBannerAdDelegate` protocol to receive notifications about banner ads loading, displaying, and closing.

<ul class="tab" data-tab="8b1d39b1-8cc6-4030-bfae-b7ce130faf20" data-name="CHBHeliumBannerAdDelegate">
  
      <li class="active">
          <a href="#">swift </a>
      </li>
  
      <li>
          <a href="#">objective-c </a>
      </li>
  
</ul>
<ul class="tab-content" id="8b1d39b1-8cc6-4030-bfae-b7ce130faf20" data-name="CHBHeliumBannerAdDelegate">
  
      <li class="active">
<div class="language-swift highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">extension</span> <span class="kt">ViewController</span><span class="p">:</span> <span class="kt">HeliumBannerAdDelegate</span>
</code></pre></div></div>
</li>
  
      <li>
<div class="language-objectivec highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">@interface</span> <span class="nc">ViewController</span> <span class="p">()</span> <span class="o">&lt;</span><span class="n">CHBHeliumBannerAdDelegate</span><span class="o">&gt;</span>
</code></pre></div></div>
</li>
  
</ul>


This will allow you to implement the following methods:

<ul class="tab" data-tab="b8c8e525-bf24-46a5-a724-6f2f8041b240" data-name="heliumBannerAd">
  
      <li class="active">
          <a href="#">swift </a>
      </li>
  
      <li>
          <a href="#">objective-c </a>
      </li>
  
</ul>
<ul class="tab-content" id="b8c8e525-bf24-46a5-a724-6f2f8041b240" data-name="heliumBannerAd">
  
      <li class="active">
<div class="language-swift highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">func</span> <span class="nf">heliumBannerAd</span><span class="p">(</span>
        <span class="nv">placementName</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span>
        <span class="nv">requestIdentifier</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span>
        <span class="nv">winningBidInfo</span><span class="p">:</span> <span class="p">[</span><span class="kt">String</span> <span class="p">:</span> <span class="kt">Any</span><span class="p">]?,</span>
        <span class="n">didLoadWithError</span> <span class="nv">error</span><span class="p">:</span> <span class="kt">ChartboostMediationSDK</span><span class="o">.</span><span class="kt">ChartboostMediationError</span><span class="p">?</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="nf">print</span><span class="p">(</span><span class="s">"Banner with Placement Name:</span><span class="se">\(</span><span class="n">placementName</span><span class="se">)</span><span class="s"> failed to load with error:</span><span class="se">\(</span><span class="n">error</span><span class="o">.</span><span class="n">localizedDescription</span><span class="se">)</span><span class="s">"</span><span class="p">)</span>
        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
            <span class="nf">print</span><span class="p">(</span><span class="s">"Banner with Placement Name:</span><span class="se">\(</span><span class="n">placementName</span><span class="se">)</span><span class="s"> didLoad"</span><span class="p">)</span>
        <span class="p">}</span>
    <span class="p">}</span>

    <span class="kd">func</span> <span class="nf">heliumBannerAd</span><span class="p">(</span>
        <span class="nv">placementName</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span>
        <span class="n">didClickWithError</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="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="nf">print</span><span class="p">(</span><span class="s">"Banner with Placement Name:</span><span class="se">\(</span><span class="n">placementName</span><span class="se">)</span><span class="s"> didClick with error:</span><span class="se">\(</span><span class="n">error</span><span class="o">.</span><span class="n">localizedDescription</span><span class="se">)</span><span class="s">"</span><span class="p">)</span>
        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
            <span class="nf">print</span><span class="p">(</span><span class="s">"Banner with Placement Name:</span><span class="se">\(</span><span class="n">placementName</span><span class="se">)</span><span class="s"> didClick"</span><span class="p">)</span>
        <span class="p">}</span>
    <span class="p">}</span>

    <span class="kd">func</span> <span class="nf">heliumBannerAdDidRecordImpression</span><span class="p">(</span><span class="nv">placementName</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span> <span class="p">{</span>
        <span class="nf">print</span><span class="p">(</span><span class="s">"Impression recorded"</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="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">heliumBannerAdWithPlacementName</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span> <span class="n">_Nonnull</span><span class="p">)</span><span class="nv">placementName</span>
                      <span class="nf">requestIdentifier</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span> <span class="n">_Nonnull</span><span class="p">)</span><span class="nv">requestIdentifier</span>
                         <span class="nf">winningBidInfo</span><span class="p">:(</span><span class="n">NSDictionary</span><span class="o">&lt;</span><span class="n">NSString</span> <span class="o">*</span><span class="p">,</span><span class="n">id</span><span class="o">&gt;</span> <span class="o">*</span> <span class="n">_Nullable</span><span class="p">)</span><span class="nv">winningBidInfo</span>
                       <span class="nf">didLoadWithError</span><span class="p">:(</span><span class="n">ChartboostMediationError</span> <span class="o">*</span> <span class="n">_Nullable</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="p">)</span>
    <span class="p">{</span>
        <span class="n">NSLog</span><span class="p">(</span><span class="s">@"Banner with Placement Name:%@ failed to load with error:%@"</span><span class="p">,</span> <span class="n">placementName</span><span class="p">,</span> <span class="n">error</span><span class="p">.</span><span class="n">description</span><span class="p">);</span>
    <span class="p">}</span>
    <span class="k">else</span>
    <span class="p">{</span>
        <span class="n">NSLog</span><span class="p">(</span><span class="s">@"Banner with Placement Name:%@ didLoad"</span><span class="p">,</span> <span class="n">placementName</span><span class="p">);</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">heliumBannerAdWithPlacementName</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">placementName</span>
                      <span class="nf">didClickWithError</span><span class="p">:(</span><span class="n">ChartboostMediationError</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="p">)</span>
    <span class="p">{</span>
        <span class="n">NSLog</span><span class="p">(</span><span class="s">@"Banner with Placement Name:%@ didClick with error:%@"</span><span class="p">,</span> <span class="n">placementName</span><span class="p">,</span> <span class="n">error</span><span class="p">.</span><span class="n">description</span><span class="p">);</span>
    <span class="p">}</span>
    <span class="k">else</span>
    <span class="p">{</span>
        <span class="n">NSLog</span><span class="p">(</span><span class="s">@"Banner with Placement Name:%@ didClick"</span><span class="p">,</span> <span class="n">placementName</span><span class="p">);</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">heliumBannerAdDidRecordImpressionWithPlacementName</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">placementName</span>
<span class="p">{</span>
    <span class="n">NSLog</span><span class="p">(</span><span class="s">@"Impression recorded"</span><span class="p">);</span>
<span class="p">}</span>

</code></pre></div></div>
</li>
  
</ul>



<div class="alert alert-info" role="alert">
  <b>Note:</b> <code>- (void)heliumBannerAdWithPlacementName:(NSString _)placementName didLoadWinningBidWithInfo:(NSDictionary<NSString _, id> _)bidInfo</code> will only return information for non-refresh banner configurations.
</div>

