# Listener Usage

By implementing and providing  `ChartboostMediationFullscreenAdListener`  and  `ChartboostMediationBannerAdViewListener`  interfaces to the Chartboost Mediation objects, you can get notifications about the success, failure, and other lifecycle events of Mediation Ads.




## ChartboostMediationFullscreenAdListener

You can implement the `ChartboostMediationFullscreenAdListener` interface to receive notifications about interstitial and rewarded ads loading, displaying, and closing.

<ul class="tab" data-tab="258e2ce2-b30c-4196-bca8-6d00e3944081" data-name="ChartboostMediationFullscreenAdListener">
  
      <li class="active">
          <a href="#">Kotlin </a>
      </li>
  
      <li>
          <a href="#">Java </a>
      </li>
  
</ul>
<ul class="tab-content" id="258e2ce2-b30c-4196-bca8-6d00e3944081" data-name="ChartboostMediationFullscreenAdListener">
  
      <li class="active">
<div class="language-kotlin highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">val</span> <span class="py">chartboostMediationFullscreenAdListener</span> <span class="p">=</span> <span class="kd">object</span> <span class="err">: </span><span class="nc">ChartboostMediationFullscreenAdListener</span> <span class="p">{</span>
    <span class="k">override</span> <span class="k">fun</span> <span class="nf">onAdClicked</span><span class="p">(</span><span class="n">ad</span><span class="p">:</span> <span class="nc">ChartboostMediationFullscreenAd</span><span class="p">)</span> <span class="p">{</span>
        <span class="nc">Log</span><span class="p">.</span><span class="nf">d</span><span class="p">(</span><span class="nc">TAG</span><span class="p">,</span> <span class="s">"Ad clicked for placement: ${ad.request.placement}"</span><span class="p">)</span>
    <span class="p">}</span>

    <span class="k">override</span> <span class="k">fun</span> <span class="nf">onAdClosed</span><span class="p">(</span><span class="n">ad</span><span class="p">:</span> <span class="nc">ChartboostMediationFullscreenAd</span><span class="p">,</span> <span class="n">error</span><span class="p">:</span> <span class="nc">ChartboostMediationAdException</span><span class="p">?)</span> <span class="p">{</span>
        <span class="n">error</span><span class="o">?.</span><span class="nf">let</span> <span class="p">{</span>
            <span class="nc">Log</span><span class="p">.</span><span class="nf">d</span><span class="p">(</span><span class="nc">TAG</span><span class="p">,</span> <span class="s">"Ad closed with error for placement: ${ad.request.placement} "</span> <span class="p">+</span>
            <span class="s">"reason: ${it.message}"</span><span class="p">)</span>
        <span class="p">}</span> <span class="o">?:</span> <span class="nf">run</span> <span class="p">{</span>
            <span class="nc">Log</span><span class="p">.</span><span class="nf">d</span><span class="p">(</span><span class="nc">TAG</span><span class="p">,</span> <span class="s">"Ad closed for placement: ${ad.request.placement}"</span><span class="p">)</span>
        <span class="p">}</span>
    <span class="p">}</span>

    <span class="k">override</span> <span class="k">fun</span> <span class="nf">onAdRewarded</span><span class="p">(</span><span class="n">ad</span><span class="p">:</span> <span class="nc">ChartboostMediationFullscreenAd</span><span class="p">)</span> <span class="p">{</span>
        <span class="nc">Log</span><span class="p">.</span><span class="nf">d</span><span class="p">(</span><span class="nc">TAG</span><span class="p">,</span> <span class="s">"Ad rewarded user for placement: ${ad.request.placement}"</span><span class="p">)</span>
    <span class="p">}</span>

    <span class="k">override</span> <span class="k">fun</span> <span class="nf">onAdImpressionRecorded</span><span class="p">(</span><span class="n">ad</span><span class="p">:</span> <span class="nc">ChartboostMediationFullscreenAd</span><span class="p">)</span> <span class="p">{</span>
        <span class="nc">Log</span><span class="p">.</span><span class="nf">d</span><span class="p">(</span><span class="nc">TAG</span><span class="p">,</span> <span class="s">"Ad recorded impression for placement: ${ad.request.placement}"</span><span class="p">)</span>
    <span class="p">}</span>

    <span class="k">override</span> <span class="k">fun</span> <span class="nf">onAdExpired</span><span class="p">(</span><span class="n">ad</span><span class="p">:</span> <span class="nc">ChartboostMediationFullscreenAd</span><span class="p">)</span> <span class="p">{</span>
        <span class="nc">Log</span><span class="p">.</span><span class="nf">d</span><span class="p">(</span><span class="nc">TAG</span><span class="p">,</span> <span class="s">"Ad expired for placement: ${ad.request.placement}"</span><span class="p">)</span>
    <span class="p">}</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="nc">ChartboostMediationFullscreenAdListener</span> <span class="n">chartboostMediationFullscreenAdListener</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">ChartboostMediationFullscreenAdListener</span><span class="o">()</span> <span class="o">{</span>
    <span class="nd">@Override</span>
    <span class="kd">public</span> <span class="kt">void</span> <span class="nf">onAdClicked</span><span class="o">(</span><span class="nd">@NonNull</span> <span class="nc">ChartboostMediationFullscreenAd</span> <span class="n">ad</span><span class="o">)</span> <span class="o">{</span>
        <span class="nc">Log</span><span class="o">.</span><span class="na">d</span><span class="o">(</span><span class="no">TAG</span><span class="o">,</span> <span class="s">"Ad clicked for placement: "</span> <span class="o">+</span> <span class="n">ad</span><span class="o">.</span><span class="na">getRequest</span><span class="o">().</span><span class="na">getPlacement</span><span class="o">());</span>
    <span class="o">}</span>

    <span class="nd">@Override</span>
    <span class="kd">public</span> <span class="kt">void</span> <span class="nf">onAdClosed</span><span class="o">(</span><span class="nd">@NonNull</span> <span class="nc">ChartboostMediationFullscreenAd</span> <span class="n">ad</span><span class="o">,</span> <span class="nd">@Nullable</span> <span class="nc">ChartboostMediationAdException</span> <span class="n">error</span><span class="o">)</span> <span class="o">{</span>
        <span class="k">if</span> <span class="o">(</span><span class="n">error</span> <span class="o">!=</span> <span class="kc">null</span><span class="o">)</span> <span class="o">{</span>
            <span class="nc">Log</span><span class="o">.</span><span class="na">d</span><span class="o">(</span><span class="no">TAG</span><span class="o">,</span> <span class="s">"Ad closed with error for placement: "</span> <span class="o">+</span> <span class="n">ad</span><span class="o">.</span><span class="na">getRequest</span><span class="o">().</span><span class="na">getPlacement</span><span class="o">()</span> <span class="o">+</span> <span class="s">" reason: "</span> <span class="o">+</span> <span class="n">error</span><span class="o">.</span><span class="na">getMessage</span><span class="o">());</span>
        <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
            <span class="nc">Log</span><span class="o">.</span><span class="na">d</span><span class="o">(</span><span class="no">TAG</span><span class="o">,</span> <span class="s">"Ad closed for placement: "</span> <span class="o">+</span> <span class="n">ad</span><span class="o">.</span><span class="na">getRequest</span><span class="o">().</span><span class="na">getPlacement</span><span class="o">());</span>
        <span class="o">}</span>
    <span class="o">}</span>

    <span class="nd">@Override</span>
    <span class="kd">public</span> <span class="kt">void</span> <span class="nf">onAdRewarded</span><span class="o">(</span><span class="nd">@NonNull</span> <span class="nc">ChartboostMediationFullscreenAd</span> <span class="n">ad</span><span class="o">)</span> <span class="o">{</span>
        <span class="nc">Log</span><span class="o">.</span><span class="na">d</span><span class="o">(</span><span class="no">TAG</span><span class="o">,</span> <span class="s">"Ad rewarded user for placement: "</span> <span class="o">+</span> <span class="n">ad</span><span class="o">.</span><span class="na">getRequest</span><span class="o">().</span><span class="na">getPlacement</span><span class="o">());</span>
    <span class="o">}</span>

    <span class="nd">@Override</span>
    <span class="kd">public</span> <span class="kt">void</span> <span class="nf">onAdImpressionRecorded</span><span class="o">(</span><span class="nd">@NonNull</span> <span class="nc">ChartboostMediationFullscreenAd</span> <span class="n">ad</span><span class="o">)</span> <span class="o">{</span>
        <span class="nc">Log</span><span class="o">.</span><span class="na">d</span><span class="o">(</span><span class="no">TAG</span><span class="o">,</span> <span class="s">"Ad recorded impression for placement: "</span> <span class="o">+</span> <span class="n">ad</span><span class="o">.</span><span class="na">getRequest</span><span class="o">().</span><span class="na">getPlacement</span><span class="o">());</span>
    <span class="o">}</span>

    <span class="nd">@Override</span>
    <span class="kd">public</span> <span class="kt">void</span> <span class="nf">onAdExpired</span><span class="o">(</span><span class="nd">@NonNull</span> <span class="nc">ChartboostMediationFullscreenAd</span> <span class="n">ad</span><span class="o">)</span> <span class="o">{</span>
        <span class="nc">Log</span><span class="o">.</span><span class="na">d</span><span class="o">(</span><span class="no">TAG</span><span class="o">,</span> <span class="s">"Ad expired for placement: "</span> <span class="o">+</span> <span class="n">ad</span><span class="o">.</span><span class="na">getRequest</span><span class="o">().</span><span class="na">getPlacement</span><span class="o">());</span>
    <span class="o">}</span>
<span class="o">};</span>
</code></pre></div></div>

</li>
  
</ul>




## ChartboostMediationBannerAdViewListener

You can implement the `ChartboostMediationBannerAdViewListener` interface to receive notifications about banner ad events.


<ul class="tab" data-tab="653cc941-93aa-4c3c-b50f-6ac1f26d46b2" data-name="ChartboostMediationBannerAdViewListener">
  
      <li class="active">
          <a href="#">Kotlin </a>
      </li>
  
      <li>
          <a href="#">Java </a>
      </li>
  
</ul>
<ul class="tab-content" id="653cc941-93aa-4c3c-b50f-6ac1f26d46b2" data-name="ChartboostMediationBannerAdViewListener">
  
      <li class="active">
<div class="language-kotlin highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">val</span> <span class="py">chartboostMediationBannerAdViewListener</span> <span class="p">=</span> <span class="kd">object</span> <span class="err">: </span><span class="nc">ChartboostMediationBannerAdViewListener</span> <span class="p">{</span>
    <span class="k">override</span> <span class="k">fun</span> <span class="nf">onAdClicked</span><span class="p">(</span><span class="n">placement</span><span class="p">:</span> <span class="nc">String</span><span class="p">)</span> <span class="p">{</span>
        <span class="nc">Log</span><span class="p">.</span><span class="nf">d</span><span class="p">(</span><span class="nc">TAG</span><span class="p">,</span> <span class="s">"Ad clicked for placement: $placement"</span><span class="p">)</span>
    <span class="p">}</span>

    <span class="k">override</span> <span class="k">fun</span> <span class="nf">onAdImpressionRecorded</span><span class="p">(</span><span class="n">placement</span><span class="p">:</span> <span class="nc">String</span><span class="p">)</span> <span class="p">{</span>
        <span class="nc">Log</span><span class="p">.</span><span class="nf">d</span><span class="p">(</span><span class="nc">TAG</span><span class="p">,</span> <span class="s">"Ad impression recorded for placement: $placement"</span><span class="p">)</span>
    <span class="p">}</span>

    <span class="k">override</span> <span class="k">fun</span> <span class="nf">onAdViewAdded</span><span class="p">(</span><span class="n">placement</span><span class="p">:</span> <span class="nc">String</span><span class="p">,</span> <span class="n">child</span><span class="p">:</span> <span class="nc">View</span><span class="p">?)</span> <span class="p">{</span>
        <span class="nc">Log</span><span class="p">.</span><span class="nf">d</span><span class="p">(</span><span class="nc">TAG</span><span class="p">,</span> <span class="s">"Ad view added for placement: $placement"</span><span class="p">)</span>
    <span class="p">}</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="nc">ChartboostMediationBannerAdViewListener</span> <span class="n">chartboostMediationBannerAdViewListener</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">ChartboostMediationBannerAdViewListener</span><span class="o">()</span> <span class="o">{</span>
    <span class="nd">@Override</span>
    <span class="kd">public</span> <span class="kt">void</span> <span class="nf">onAdClicked</span><span class="o">(</span><span class="nd">@NonNull</span> <span class="nc">String</span> <span class="n">placement</span><span class="o">)</span> <span class="o">{</span>
        <span class="nc">Log</span><span class="o">.</span><span class="na">d</span><span class="o">(</span><span class="no">TAG</span><span class="o">,</span> <span class="s">"Ad clicked for placement: "</span> <span class="o">+</span> <span class="n">placement</span><span class="o">);</span>
    <span class="o">}</span>

    <span class="nd">@Override</span>
    <span class="kd">public</span> <span class="kt">void</span> <span class="nf">onAdImpressionRecorded</span><span class="o">(</span><span class="nd">@NonNull</span> <span class="nc">String</span> <span class="n">placement</span><span class="o">)</span> <span class="o">{</span>
        <span class="nc">Log</span><span class="o">.</span><span class="na">d</span><span class="o">(</span><span class="no">TAG</span><span class="o">,</span> <span class="s">"Ad impression recorded for placement: "</span> <span class="o">+</span> <span class="n">placement</span><span class="o">);</span>
    <span class="o">}</span>

    <span class="nd">@Override</span>
    <span class="kd">public</span> <span class="kt">void</span> <span class="nf">onAdViewAdded</span><span class="o">(</span><span class="nd">@NonNull</span> <span class="nc">String</span> <span class="n">placement</span><span class="o">,</span> <span class="nd">@Nullable</span> <span class="nc">View</span> <span class="n">child</span><span class="o">)</span> <span class="o">{</span>
        <span class="nc">Log</span><span class="o">.</span><span class="na">d</span><span class="o">(</span><span class="no">TAG</span><span class="o">,</span> <span class="s">"Ad view added for placement: "</span> <span class="o">+</span> <span class="n">placement</span><span class="o">);</span>
    <span class="o">}</span>
<span class="o">};</span>
</code></pre></div></div>

</li>
  
</ul>



> **Note**
> Not all partner SDKs support the `onAdClicked` and `onAdRewarded` callbacks.


