Migrating from Google AdMob (ex. AdMob) to Yandex mediation on Android (Java)

To replace Google AdMob (ex. AdMob) ads with Yandex Ads mediation on Android, make the following changes to your code.

Integrating the SDK

Add dependencies for the Yandex Mobile Ads SDK to your module's Gradle file at the app level, usually app/build.gradle.

dependencies {
    implementation 'com.google.android.gms:play-services-ads:22.5.0'
}
dependencies {
    implementation 'com.yandex.android:mobileads:6.2.0'
    implementation 'com.yandex.ads.mediation:mobileads-admob:22.5.0.0'
    implementation 'com.google.android.gms:play-services-ads:22.5.0'
}

Before loading ads, initialize the library using the initialize() method:

public class MainActivity extends AppCompatActivity {
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MobileAds.initialize(this, new OnInitializationCompleteListener() {
            @Override
            public void onInitializationComplete(InitializationStatus initializationStatus) {
            }
        });
    }
}
public class MainActivity extends AppCompatActivity {
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MobileAds.initialize(this, new InitializationListener() {
            @Override
            public void onInitializationCompleted() {
            }
        });
    }
}

Ad formats

Interstitial

Loading ads

// ...
import com.google.android.gms.ads.interstitial.InterstitialAd;
import com.google.android.gms.ads.interstitial.InterstitialAdLoadCallback;

public class MainActivity extends Activity {

    private InterstitialAd mInterstitialAd;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

      MobileAds.initialize(this, new OnInitializationCompleteListener() {
        @Override
        public void onInitializationComplete(InitializationStatus initializationStatus) {}
      });
      AdRequest adRequest = new AdRequest.Builder().build();

      InterstitialAd.load(this,"ca-app-pub-3940256099942544/1033173712", adRequest,
        new InterstitialAdLoadCallback() {
      @Override
      public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
        // The mInterstitialAd reference will be null until
        // an ad is loaded.
        mInterstitialAd = interstitialAd;
        Log.i(TAG, "onAdLoaded");
      }

      @Override
      public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
        // Handle the error
        Log.i(TAG, loadAdError.getMessage());
        mInterstitialAd = null;
      }
    });
  }
}
// ...
import com.yandex.mobile.ads.interstitial.InterstitialAd;
import com.yandex.mobile.ads.interstitial.InterstitialAdEventListener;

public class MainActivity extends Activity {

    private InterstitialAd mInterstitialAd;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MobileAds.initialize(this, new InitializationListener() {
            @Override
            public void onInitializationCompleted() {
            }
        });
        final AdRequest adRequest = new AdRequest.Builder().build();

        mInterstitialAd = new InterstitialAd(this);
        mInterstitialAd.setAdUnitId("demo-interstitial-yandex");
        mInterstitialAd.loadAd(adRequest);
    }
}

Setting ad callbacks

Before displaying an ad, set callbacks to track events related to your ad.

mInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback(){
  @Override
  public void onAdDismissedFullScreenContent() {
    // Called when fullscreen content is dismissed.
    Log.d("TAG", "The ad was dismissed.");
  }

  @Override
  public void onAdFailedToShowFullScreenContent(AdError adError) {
    // Called when fullscreen content failed to show.
    Log.d("TAG", "The ad failed to show.");
  }

  @Override
  public void onAdShowedFullScreenContent() {
    // Called when fullscreen content is shown.
    // Make sure to set your reference to null so you don't
    // show it a second time.
    mInterstitialAd = null;
    Log.d("TAG", "The ad was shown.");
  }
});
mInterstitialAd.setInterstitialAdEventListener(new InterstitialAdEventListener() {
    @Override
    public void onAdLoaded() {
        Log.i(TAG, "onAdLoaded");
    }

    @Override
    public void onAdFailedToLoad(@NonNull AdRequestError error) {
        // Handle the error
        Log.i(TAG, error.getDescription());
    }

    @Override
    public void onAdDismissed() {
       // Called when an interstitial ad has been dismissed.
       Log.d("TAG", "The ad was dismissed.");
    }

    @Override
    public void onAdShown() {
      // Called when an interstitial ad has been shown.
      Log.d("TAG", "The ad was shown.");
    }

    @Override
    public void onImpression(@Nullable final ImpressionData impressionData) {
         // Called when an impression was tracked
       Log.d("TAG", "The ad imprassion was tracked.");
    }

    @Override
    public void onAdClicked() {
        // Called when user clicked on the ad.
      Log.d("TAG", "The ad was clicked.");
    }

    @Override
    public void onReturnedToApplication() {
    // Called when user returned to application after click.
      Log.d("TAG", "The ad was clicked.");
    }

    @Override
    public void onLeftApplication() {
// Called when user is about to leave application after tapping on an ad.
    Log.d("TAG", "The ad left application after click.");
    }
});

Show ads

Interstitial ads should be displayed during natural pauses in the app's operation. For example, between game levels or after the user completes a task. To show an interstitial ad, use the show() method.

if (mInterstitialAd != null) {
  mInterstitialAd.show(MyActivity.this);
} else {
  Log.d("TAG", "The interstitial ad wasn't ready yet.");
}
if (mInterstitialAd.isLoaded()) {
  mInterstitialAd.show();
} else {
  Log.d("TAG", "The interstitial ad wasn't ready yet.");
}

Banner ads

Add an AdView object to a layout

To display a banner, place BannerAdView in the appropriate Activity or Fragment. To do this, add it to the corresponding layout XML file:

# main_activity.xml
...
  <com.google.android.gms.ads.AdView
      xmlns:ads="http://schemas.android.com/apk/res-auto"
      android:id="@+id/adView"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_centerHorizontal="true"
      android:layout_alignParentBottom="true"
      ads:adSize="BANNER"
      ads:adUnitId="ca-app-pub-3940256099942544/6300978111">
  </com.google.android.gms.ads.AdView>
...
# main_activity.xml
...
  <com.yandex.mobile.ads.banner.BannerAdView
      xmlns:ads="http://schemas.android.com/apk/res-auto"
      android:id="@+id/adView"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_centerHorizontal="true"
      android:layout_alignParentBottom="true">
  </com.yandex.mobile.ads.banner.BannerAdView>
...

Specify the required attributes in the code:

// ...
mBannerAdView = (BannerAdView) findViewById(R.id.adView);
mBannerAdView.setAdUnitId("demo-banner-yandex");
mBannerAdView.setAdSize(AdSize.stickySize(context, 320));
// ...
  • adSize: Desired banner size.

  • adUnitId: Ad unit unique ID. If a banner in your app is displayed in different instances of Activity, we recommend creating separate ad unit IDs for each banner in the Partner Interface.

You can also create a BannerAdView object programmatically:

AdView adView = new AdView(this);
adView.setAdSize(AdSize.BANNER);
adView.setAdUnitId("ca-app-pub-3940256099942544/6300978111");
// TODO: Add adView to your view hierarchy.
BannerAdView adView = new BannerAdView(this);
adView.setAdSize(AdSize.stickySize(context, 320));
adView.setAdUnitId("demo-banner-yandex");
// TODO: Add adView to your view hierarchy.

Loading ads

package ...

import ...
import com.google.android.gms.ads.adRequest;
import com.google.android.gms.ads.adView;

public class MainActivity extends AppCompatActivity {
private AdView mAdView;

protected void  onCreate (Bundle savedInstanceState){
super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MobileAds.initialize(this, new OnInitializationCompleteListener() {
            @Override
            public void onInitializationComplete(InitializationStatus initializationStatus) {
            }
        });
        mAdView = findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);
}
}
package ...

import ...
import com.yandex.mobile.ads.banner.BannerAdEventListener;
import com.yandex.mobile.ads.banner.BannerAdView;

public class MainActivity extends AppCompatActivity {
private BannerAdView mAdView;

protected void  onCreate (Bundle savedInstanceState){
super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MobileAds.initialize(this, new InitializationListener() {
            @Override
            public void onInitializationCompleted() {
            }
        });
        mAdView = findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);
}
}

Subscribing to ad display events

To customize an ad's behavior, you can subscribe to ad lifecycle events.

mAdView.setAdListener(new AdListener() {
    @Override
    public void onAdLoaded() {
    // Code to be executed when an ad finishes loading.
  }
    @Override
    public void onAdFailedToLoad(LoadAdError adError) {
    // Code to be executed when an ad request fails.
    }
    @Override
    public void onAdOpened() {
    // Code to be executed when an ad opens an overlay that
    // covers the screen.
    }
    @Override
    public void onAdClicked() {
    // Code to be executed when the user clicks on an ad.
    }
    @Override
    public void onAdClosed() {
    // Code to be executed when the user is about to return
      // to the app after tapping on an ad.
    }
});
mAdView.setBannerAdEventListener(new BannerAdEventListener() {
  @Override
  public void onAdLoaded() {
     // Code to be executed when an ad finishes loading.
}
@Override
  public onAdFailedToLoad(@NonNull AdRequestError error) {
     // Code to be executed when an ad request fails.
}
  @Override
  public void onAdClicked() {
      // Code to be executed when the user clicks on an ad.
}
  @Override
  public void onImpression(@Nullable final ImpressionData impressionData) {
      // Called when an impression was tracked
  }
  @Override
  public void onLeftApplication() {
      // Called when user is about to leave application after tapping on an ad.
  }
@Override
  public void onReturnedToApplication() {
      // Code to be executed when the user is about to return
      // to the app after tapping on an ad.
}
});

Rewarded ads

Loading rewarded ad objects

import com.google.android.gms.ads.rewarded.RewardedAd;

public class MainActivity extends Activity {
  private RewardedAd mRewardedAd;
  private final String TAG = "MainActivity";

  @Override
  protected void onCreate(Bundle savedInstanceState) {

    AdRequest adRequest = new AdRequest.Builder().build();

    RewardedAd.load(this, "ca-app-pub-3940256099942544/5224354917",
      adRequest, new RewardedAdLoadCallback() {
        @Override
        public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
          // Handle the error.
          Log.d(TAG, loadAdError.getMessage());
          mRewardedAd = null;
        }

        @Override
        public void onAdLoaded(@NonNull RewardedAd rewardedAd) {
          mRewardedAd = rewardedAd;
          Log.d(TAG, "Ad was loaded.");
        }
    });
  }
}
...
import com.yandex.mobile.ads.rewarded.RewardedAd;
import com.yandex.mobile.ads.rewarded.RewardedAdEventListener;

public class MainActivity extends Activity {
  private RewardedAd mRewardedAd;
  private final String TAG = "MainActivity";

  @Override
  protected void onCreate(Bundle savedInstanceState) {

    AdRequest adRequest = new AdRequest.Builder().build();

mRewardedAd = new RewardedAd(this);
    mRewardedAd.setAdUnitId("demo-rewarded-yandex");
  }
}

Setting ad callbacks

mRewardedAd.setFullScreenContentCallback(new FullScreenContentCallback() {
  @Override
  public void onAdShowedFullScreenContent() {
    // Called when ad is shown.
    Log.d(TAG, "Ad was shown.");
  }

  @Override
  public void onAdFailedToShowFullScreenContent(AdError adError) {
    // Called when ad fails to show.
    Log.d(TAG, "Ad failed to show.");
  }

  @Override
  public void onAdDismissedFullScreenContent() {
    // Called when ad is dismissed.
    // Set the ad reference to null so you don't show the ad a second time.
    Log.d(TAG, "Ad was dismissed.");
    mRewardedAd = null;
  }
});
mRewardedAd.setRewardedAdEventListener(new RewardedAdEventListener() {    @Override
    public void onAdLoaded() {
        Log.i(TAG, "onAdLoaded");
    }

    @Override
    public void onAdFailedToLoad(@NonNull AdRequestError error) {
        // Handle the error
        Log.i(TAG, error.getDescription());
    }

    public void onRewarded(@NonNull final Reward reward) {
        // Handle the reward.
        Log.d(TAG, "The user earned the reward.");
        int rewardAmount = rewardItem.getAmount();
        String rewardType = rewardItem.getType();
    }

    @Override
    public void onAdDismissed() {
       // Called when an interstitial ad has been dismissed.
       Log.d("TAG", "The ad was dismissed.");
    }

    @Override
    public void onAdShown() {
       // Called when an interstitial ad has been shown.
       Log.d("TAG", "The ad was shown.");
    }

    @Override
    public void onImpression(@Nullable final ImpressionData impressionData) {
           // Called when an impression was tracked
       Log.d("TAG", "The ad imprassion was tracked.");
    }

    @Override
    public void onAdClicked() {
            // Called when user clicked on the ad.
      Log.d("TAG", "The ad was clicked.");
    }

    @Override
    public void onReturnedToApplication() {
            // Called when user returned to application after click.
      Log.d("TAG", "The ad was clicked.");
    }

    @Override
    public void onLeftApplication() {
            // Called when user is about to leave application after tapping on an ad.
      Log.d("TAG", "The ad left application after click.");
    }
});

Show ads

To display rewarded ads, use the RewardedAdEventListener object to handle reward events.

if (mRewardedAd != null) {
  Activity activityContext = MainActivity.this;
  mRewardedAd.show(activityContext, new OnUserEarnedRewardListener() {
    @Override
    public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
      // Handle the reward.
      Log.d(TAG, "The user earned the reward.");
      int rewardAmount = rewardItem.getAmount();
      String rewardType = rewardItem.getType();
    }
  });
} else {
  Log.d(TAG, "The rewarded ad wasn't ready yet.");
}
if (mRewardedAd.isLoaded()) {
  mRewardedAd.show();
} else {
  Log.d(TAG, "The rewarded ad wasn't ready yet.");
}

Contact support