@Override
  public void requestAd(
      MediatedInterstitialAdViewController mIC, Activity activity, String parameter, String uid) {
    if (mIC == null) {
      Clog.e(
          Clog.mediationLogTag,
          "MillennialMediaInterstitial - requestAd called with null controller");
      return;
    }

    if (activity == null) {
      Clog.e(
          Clog.mediationLogTag,
          "MillennialMediaInterstitial - requestAd called with null activity");
      return;
    }
    Clog.d(
        Clog.mediationLogTag,
        String.format(
            "MillennialMediaInterstitial - requesting an interstitial ad: [%s, %s]",
            parameter, uid));

    MMSDK.initialize(activity);

    iad = new MMInterstitial(activity);
    iad.setApid(uid);
    iad.setListener(new MillennialMediaListener(mIC, getClass().getSimpleName()));

    if (!iad.isAdAvailable()) {
      iad.fetch();
    } else {
      Clog.w(
          Clog.mediationLogTag,
          "MillennialMediaInterstitial - ad was available from cache. show it instead of fetching");
      mIC.onAdLoaded();
    }
  }