バナーおよびMREC広告
次のセクションでは、バナーまたはMREC広告をロードし、表示または非表示にする方法について説明します。
バナーまたはMRECのローディング
バナーやミディアムレクタングル広告(MREC)を表示するには、広告ユニットに対応するMaxAdView
オブジェクトを作成し、そのオブジェクトの loadAd()
メソッドを呼び出します。
広告を表示するには、MaxAdView
オブジェクトをビュー階層のサブビューとして追加します。
広告の準備が完了した際に通知されるように、MaxAdViewAdListener
を実装します。これにより、他の広告関連イベントも通知されます。
MREC広告をコンテンツフィードに表示することが連携に必要である場合、AppLovinは以下を推奨します。
- 作成するインスタンス数を最低限に留める。
- 自動更新を停止する。
loadAd()
を呼び出してコンテンツを手動で更新します(MaxAdView
インスタンスを再利用します)。
実装例については、AppLovinのデモアプリの(Java、Kotlin)を参照してください。
バナー
public class ExampleActivity extends Activity implements MaxAdViewAdListener{ private MaxAdView adView;
void createBannerAd() { adView = new MaxAdView( "«ad-unit-ID»", this ); adView.setListener( this );
// Stretch to the width of the screen for banners to be fully functional int width = ViewGroup.LayoutParams.MATCH_PARENT;
// Banner height on phones and tablets is 50 and 90, respectively int heightPx = getResources().getDimensionPixelSize( R.dimen.banner_height );
adView.setLayoutParams( new FrameLayout.LayoutParams( width, heightPx ) );
// Set background or background color for banners to be fully functional adView.setBackgroundColor( … );
ViewGroup rootView = findViewById( android.R.id.content ); rootView.addView( adView );
// Load the ad adView.loadAd(); }
// MAX Ad Listener @Override public void onAdLoaded(final MaxAd maxAd) {}
@Override public void onAdLoadFailed(final String adUnitId, final MaxError error) {}
@Override public void onAdDisplayFailed(final MaxAd maxAd, final MaxError error) {}
@Override public void onAdClicked(final MaxAd maxAd) {}
@Override public void onAdExpanded(final MaxAd maxAd) {}
@Override public void onAdCollapsed(final MaxAd maxAd) {}
@Override public void onAdDisplayed(final MaxAd maxAd) { /* DO NOT USE - THIS IS RESERVED FOR FULLSCREEN ADS ONLY AND WILL BE REMOVED IN A FUTURE SDK RELEASE */ }
@Override public void onAdHidden(final MaxAd maxAd) { /* DO NOT USE - THIS IS RESERVED FOR FULLSCREEN ADS ONLY AND WILL BE REMOVED IN A FUTURE SDK RELEASE */ }}
class ExampleActivity : Activity(), MaxAdViewAdListener{ private var adView: MaxAdView? = null
fun createBannerAd() { adView = MaxAdView("«ad-unit-ID»", this) adView?.setListener(this)
// Stretch to the width of the screen for banners to be fully functional val width = ViewGroup.LayoutParams.MATCH_PARENT
// Banner height on phones and tablets is 50 and 90, respectively val heightPx = resources.getDimensionPixelSize(R.dimen.banner_height)
adView?.layoutParams = FrameLayout.LayoutParams(width, heightPx)
// Set background or background color for banners to be fully functional adView?.setBackgroundColor(…)
val rootView = findViewById(android.R.id.content) rootView.addView(adView)
// Load the ad adView?.loadAd() }
// MAX Ad Listener override fun onAdLoaded(maxAd: MaxAd) {}
override fun onAdLoadFailed(adUnitId: String?, error: MaxError?) {}
override fun onAdDisplayFailed(ad: MaxAd?, error: MaxError?) {}
override fun onAdClicked(maxAd: MaxAd) {}
override fun onAdExpanded(maxAd: MaxAd) {}
override fun onAdCollapsed(maxAd: MaxAd) {}
override fun onAdDisplayed(maxAd: MaxAd) { /* DO NOT USE - THIS IS RESERVED FOR FULLSCREEN ADS ONLY AND WILL BE REMOVED IN A FUTURE SDK RELEASE */ }
override fun onAdHidden(maxAd: MaxAd) { /* DO NOT USE - THIS IS RESERVED FOR FULLSCREEN ADS ONLY AND WILL BE REMOVED IN A FUTURE SDK RELEASE */ }}
MRECs
public class ExampleActivity extends Activity implements MaxAdViewAdListener{ private MaxAdView adView;
void createMrecAd { adView = new MaxAdView( "«ad-unit-ID»", MaxAdFormat.MREC, this ); adView.setListener( this );
// MREC width and height are 300 and 250 respectively, on phones and tablets int widthPx = AppLovinSdkUtils.dpToPx( this, 300 ); int heightPx = AppLovinSdkUtils.dpToPx( this, 250 );
adView.setLayoutParams( new FrameLayout.LayoutParams( widthPx, heightPx ) );
// Set background or background color for MRECs to be fully functional adView.setBackgroundColor( ... );
ViewGroup rootView = findViewById( android.R.id.content ); rootView.addView( adView );
// Load the ad adView.loadAd(); }
// MAX Ad Listener @Override public void onAdLoaded(final MaxAd maxAd) {}
@Override public void onAdLoadFailed(final String adUnitId, final MaxError error) {}
@Override public void onAdDisplayFailed(final MaxAd maxAd, final MaxError error) {}
@Override public void onAdClicked(final MaxAd maxAd) {}
@Override public void onAdExpanded(final MaxAd maxAd) {}
@Override public void onAdCollapsed(final MaxAd maxAd) {}
@Override public void onAdDisplayed(final MaxAd maxAd) { /* DO NOT USE - THIS IS RESERVED FOR FULLSCREEN ADS ONLY AND WILL BE REMOVED IN A FUTURE SDK RELEASE */ }
@Override public void onAdHidden(final MaxAd maxAd) { /* DO NOT USE - THIS IS RESERVED FOR FULLSCREEN ADS ONLY AND WILL BE REMOVED IN A FUTURE SDK RELEASE */ }}
class ExampleActivity : Activity(), MaxAdViewAdListener{ private var adView: MaxAdView? = null
fun createMrecAd() { adView = MaxAdView("«ad-unit-ID»", MaxAdFormat.MREC, this) adView?.setListener(this)
// MREC width and height are 300 and 250 respectively, on phones and tablets val widthPx = AppLovinSdkUtils.dpToPx(this, 300) val heightPx = AppLovinSdkUtils.dpToPx(this, 250)
adView?.layoutParams = FrameLayout.LayoutParams(widthPx, heightPx)
// Set background or background color for MRECs to be fully functional adView?.setBackgroundColor(...)
val rootView = findViewById(android.R.id.content) rootView.addView(adView)
// Load the ad adView?.loadAd() }
// MAX Ad Listener override fun onAdLoaded(maxAd: MaxAd) {}
override fun onAdLoadFailed(adUnitId: String?, error: MaxError?) {}
override fun onAdDisplayFailed(ad: MaxAd?, error: MaxError?) {}
override fun onAdClicked(maxAd: MaxAd) {}
override fun onAdExpanded(maxAd: MaxAd) {}
override fun onAdCollapsed(maxAd: MaxAd) {}
override fun onAdDisplayed(maxAd: MaxAd) { /* DO NOT USE - THIS IS RESERVED FOR FULLSCREEN ADS ONLY AND WILL BE REMOVED IN A FUTURE SDK RELEASE */ }
override fun onAdHidden(maxAd: MaxAd) { /* DO NOT USE - THIS IS RESERVED FOR FULLSCREEN ADS ONLY AND WILL BE REMOVED IN A FUTURE SDK RELEASE */ }}
レイアウトエディターにバナーまたはMRECをロードして表示
別の方法として、ビューレイアウトXMLにMAXバナーまたはMRECを追加することもできます。
背景または背景色 (android:background
) を設定して、広告が完全に動作することを確認してください。
バナーの場合は、幅 (android:layout_width
) を画面の幅まで引き延ばしてください。
MRECの場合は、以下のようにandroid:adFormat
を設定します。
<com.applovin.mediation.ads.MaxAdView xmlns:maxads="http://schemas.applovin.com/android/1.0" maxads:adUnitId="«ad-unit-ID»" android:background="@color/banner_background_color" android:layout_width="match_parent" android:layout_height="@dimen/banner_height" />
res/values/attrs.xml
で、ベースとなるバナーの高さが50dpであることを宣言します。
<?xml version="1.0" encoding="utf-8"?><resources> <dimen name="banner_height">50dp</dimen></resources>
res/values-sw600dp/attrs.xml
で、タブレットのバナーの高さが90dpであることを宣言します。
<?xml version="1.0" encoding="utf-8"?><resources> <dimen name="banner_height">90dp</dimen></resources>
<com.applovin.mediation.ads.MaxAdView xmlns:maxads="http://schemas.applovin.com/android/1.0" maxads:adUnitId="«ad-unit-ID»" maxads:adFormat="MREC" android:background="@color/mrec_background_color" android:layout_width="300dp" android:layout_height="250dp" />
この場合も、以下の方法で作成したMaxAdView
で、loadAd()
を呼び出す必要があります。
MaxAdView adView = findViewById( R.id.ad_view );adView.loadAd();
var adView: MaxAdView = findViewById(R.id.ad_view)adView.loadAd()
バナーおよびMRECの破棄
MaxAdView
インスタンスが不要になった場合は、そのdestroy()
メソッドを呼び出してリソースを解放します。
例えば、ユーザーが広告削除を購入した場合などがこれに該当します。
ただし、同じ広告ユニットIDを持つ複数のインスタンスを使用している場合は、destroy()
メソッドを呼び出さないでください。
adView.destroy();
adView.destroy()
アダプティブバナー
アダプティブバナーは、デバイスの種類やバナーの幅に基づいて高さが調整される、レスポンシブなバナーです。
アダプティブバナーは、通常のバナーと同じ方法で連携します。
ただし、高さは50や90のような定数ではなく、MAAdFormat.banner.adaptiveSize.height
が返す値に設定する必要があります。
広告をロードする前に、以下のコードで示すように、バナーの追加パラメーター adaptive_banner
を true
に設定してください。
void createBannerAd(){ adView = new MaxAdView( "«ad-unit-ID»", this ); adView.setListener( this );
// Stretch to the width of the screen for banners to be fully functional int width = ViewGroup.LayoutParams.MATCH_PARENT;
// Get the adaptive banner height. int heightDp = MaxAdFormat.BANNER.getAdaptiveSize( this ).getHeight(); int heightPx = AppLovinSdkUtils.dpToPx( this, heightDp );
adView.setLayoutParams( new FrameLayout.LayoutParams( width, heightPx ) ); adView.setExtraParameter( "adaptive_banner", "true" );
// Set background or background color for banners to be fully functional adView.setBackgroundColor( … );
ViewGroup rootView = findViewById( android.R.id.content ); rootView.addView( adView );
// Load the ad adView.loadAd();}
fun createBannerAd(){ adView = MaxAdView("«ad-unit-ID»", this) adView?.setListener(this)
// Stretch to the width of the screen for banners to be fully functional val width = ViewGroup.LayoutParams.MATCH_PARENT
// Get the adaptive banner height. val heightDp = MaxAdFormat.BANNER.getAdaptiveSize(this).height val heightPx = AppLovinSdkUtils.dpToPx(this, heightDp)
adView?.layoutParams = FrameLayout.LayoutParams(width, heightPx) adView?.setExtraParameter("adaptive_banner", "true")
// Set background or background color for banners to be fully functional adView?.setBackgroundColor(…)
val rootView = findViewById<ViewGroup>(android.R.id.content) rootView.addView(adView)
// Load the ad adView?.loadAd()}
カスタム幅を設定する
より特殊な連携では、ローカルの追加パラメーターAPIを使用してカスタム幅を設定できます(現時点では、Googleアダプターバージョン21.5.0.3およびGoogle アド マネージャーアダプターバージョン21.5.0.2で可能です)。 アダプティブサイズAPIを使用すると、カスタムのアダプティブバナーの高さとして適切な数値を取得できます。
int width = 400;int heightDp = MaxAdFormat.BANNER.getAdaptiveSize( width, context ).getHeight();⋮adView.setLocalExtraParameter( "adaptive_banner_width", width );
val width = 400val heightDp = adView.adFormat.getAdaptiveSize(width, context).height⋮adView.setLocalExtraParameter("adaptive_banner_width", width)
インラインアダプティブバナー
アダプティブバナーは、デフォルトで固定されています。 または、スクロール可能なコンテンツ内に表示されるインライン アダプティブバナーを有効化することもできます。 インラインアダプティブバナーは、通常、アンカーされたアダプティブバナーよりも大きく、高さがあります。 高さは可変で、デバイス画面の高さいっぱいまで伸ばすことができる。
インラインアダプティブバナーは、Androidアダプターバージョン23.2.0.1、iOSアダプターバージョン11.7.0.1以降でサポートされています。有効化するには、以下のコードのように、追加のローカルパラメーター adaptive_banner_type
をinline
に設定してください。
adView.setLocalExtraParameter( "adaptive_banner_type", "inline" );
adView.setLocalExtraParameter("adaptive_banner_type", "inline")
インラインアダプティブバナーの最大の高さをdpで設定したい場合は、コードを利用します。 以下は、高さを100dpに設定する場合のコードの一例です。
adView.setLocalExtraParameter( "inline_adaptive_banner_max_height", 100 );
adView.setLocalExtraParameter("inline_adaptive_banner_max_height", 100)
アダプティブバナーのサイズに応じてUIを設定する必要がある場合、次のようなコードを使用して、ロードされる広告の幅と高さをdpで取得できます。
@Overridepublic void onAdLoaded(final MaxAd maxAd){ AppLovinSdkUtils.Size adViewSize = maxAd.getSize(); int widthDp = adViewSize.getWidth(); int heightDp = adViewSize.getHeight();}
override fun onAdLoaded(ad: MaxAd?){ val adViewSize = ad?.size!! val widthDp = adViewSize.width val heightDp = adViewSize.height}
自動更新の停止と開始
広告を非表示にする場合や手動で更新する場合など、自動更新を停止したいときは以下のコードを使用します。
// Set this extra parameter to work around SDK bug that ignores calls to stopAutoRefresh()adView.setExtraParameter( "allow_pause_auto_refresh_immediately", "true" );adView.stopAutoRefresh();
// Set this extra parameter to work around SDK bug that ignores calls to stopAutoRefresh()adView.setExtraParameter( "allow_pause_auto_refresh_immediately", "true" )adView.stopAutoRefresh()
以下のコードで、広告の自動更新を開始します。
adView.startAutoRefresh();
adView.startAutoRefresh()
loadAd()
を呼び出して、広告コンテンツを手動で更新します。
これは、自動更新を停止している場合にのみ実行できます。
adView.loadAd();
adView.loadAd()