MREC is 300x250 banner. This type can be useful if the application has a large free area for placing a banner in the interface.

You can use our demo app  as a reference project.

Display

Add com.appodeal.ads.MrecView to your layout file:

<com.appodeal.ads.MrecView
	android:id="@+id/appodealMrecView"
	android:layout_width="300dp"
	android:layout_height="250dp"
	android:layout_centerInParent="true"
	android:visibility="gone" />
Set view id before the SDK initialization:
Appodeal.setMrecViewId(R.id.appodealMrecView);
Now you can show the banner in the specified view:
Appodeal.show(this, Appodeal.MREC);

SDK can't show ads without a network connection!

Appodeal.show() returns a boolean value indicating whether the show method call was passed to the appropriate SDK. 

Display MREC In Programmatically Created View

Create banner view:

Appodeal.getMrecView(this);
Add view to your layout and then show the banner in it:
Appodeal.show(this, Appodeal.MREC);

Check If Ad Is Loaded

Appodeal.isLoaded(Appodeal.MREC);

Placements

Appodeal SDK allows you to tag each impression with different placement. To use placements, you need to create placements in Appodeal Dashboard. Read more about placements.

To show an ad with placement, you have to call show method like this in your activity:

Appodeal.show(this, Appodeal.MREC, "yourPlacementName");

If the loaded ad can’t be shown for a specific placement, nothing will be shown. 

You can configure your impression logic for each placement.

If you have no placements,  or call  Appodeal.show with a placement that does not exist, the impression will be tagged with 'default' placement and its settings will be applied.

Important!

Placement settings affect ONLY ad presentation, not loading or caching.

Callbacks

Appodeal.setMrecCallbacks(new MrecCallbacks() {
  @Override
  public void onMrecLoaded(boolean isPrecache) {
    // Called when MREC is loaded
  }
  @Override
  public void onMrecFailedToLoad() {
    // Called when MREC failed to load
  }
  @Override
  public void onMrecShown() {
    // Called when MREC is shown
  }
  @Override
  public void onMrecShowFailed() {
    // Called when MREC show failed
  }
  @Override
  public void onMrecClicked() {
    // Called when MREC is clicked
  }
  @Override
  public void onMrecExpired() {
    // Called when MREC is expired
  }
});

All callbacks are called on the main thread.

Activity "Paused" State Handling

We’ll automatically handle pause and resume state for already displayed MRECs on Activity on which they were displayed, however, we don’t restore displayed MRECs after Activity recreation (e.g. - orientation changes) and we don’t show MRECs in newly created Activities.
For display ads on newly created Activity just call Appodea.show() method if required.

@Override
public void onResume() {
    super.onResume();
    Appodeal.show(this, Appodeal.MREC);
}

This behavior can be changed by calling Appodeal.setSharedAdsInstanceAcrossActivities(true)
(See more: Enable Shared View Ads Instance Across Activities Logic)

Hide

Appodeal.hide(this, Appodeal.MREC);

Destroy 

If you want to hide the MREC from all activities and clear the memory, call the code below:

Appodeal.destroy(Appodeal.MREC);

Cache Manually

To disable automatic caching for MREC, use the code below before the SDK initialization:

Appodeal.setAutoCache(Appodeal.MREC, false);
To cache 300*250 banners, use:
Appodeal.cache(this, Appodeal.MREC);
Read more on manual caching in our FAQ.

Check If Ad Is Initialized

To check if MREC was initialized, you can use the method:

Appodeal.isInitialized(Appodeal.MREC);
Returns true, if the MREC was initialized.

Check If Autocache Is Enabled

To check if autocache is enabled for MREC, you can use the method:

Appodeal.isAutoCacheEnabled(Appodeal.MREC);
Returns true, if autocache is enabled for MREC.

Get Predicted eCPM

To get the predicted eCPM from the next block in the caching queue, use the method:

Appodeal.getPredictedEcpm(Appodeal.MREC);

This method is reasonable to use if manual caching of ads is enabled.

Enable Shared View Ads Instance Across Activities Logic

Starting from SDK 2.8.1 Appodeal SDK binds the Banner/MREC to the Activity which was passed to the Appodeal.show method.

To make it easier for you to manage View ads display logic across all Activities we added a new method in Appodeal class:

Appodeal.setSharedAdsInstanceAcrossActivities(boolean sharedAdsInstanceAcrossActivities); // Default - false
  • When this method is used with the true parameter, the SDK will show AdView on all new activities without calling additional code from your side.
  • If you want to control the display yourself, you can call the method with the false parameter.

In this case, this parameter is false, be careful with changing orientation or moving to a new activity, the banner/MREC will not be shown automatically, since it was bound to the previous activity.
If you want to hide the banner/MREC, you need to call the Appodeal.hide() method with the parameters of the activity to which the banner/MREC was bound.

You can also check the current state of this logic. By default value is false:

Appodeal.isSharedAdsInstanceAcrossActivities();