カスタムイベントを使うことで、MoPub SDKにバンドルされていないネイティブ広告ネットワークをサポートしたり、MoPub ウェブインタフェースから任意のアプリケーションコードを実行したりできます。
あなたのアプリケーションのcom.mopub.mobileads
パッケージ内で、 CustomEventBanner
のサブクラスを作成します。
loadAd(Context, CustomEventBannerListener, Map, Map)
メソッドを上書き(override)し、広告をリクエストするコードを実装します。
広告の読み込みに成功した時、 MoPub に成功イベントを通知して、CustomEventBannerListener
オブジェト (loadAd
メソッドで引数として渡される)の onBannerLoaded(View)
メソッドを実行して広告を表示しなければなりません。
広告の読み込みに失敗したときも同様に、リスナーオブジェクトのonBannerFailed(MoPubErrorCode)
メソッドを実行してCustomEventBannerListener
オブジェクトに通知しなければなりません。その際には適切なMoPubErrorCode 定数を渡す必要があります (MoPubErrorCode.java
を参照してください)。
(任意) CustomEventBannerListener
の対応するメソッドを使い、リスナーオブジェクトにその他の広告ライフサイクルイベントを通知する。
public void onBannerClicked();
public void onLeaveApplication();
(任意) カスタムイベントでcleanupの並び替えが必要な場合は、 CustomEventBanner
のonInvalidate()
メソッドを上書き(override)してください。
最後に、MoPub ウェブインタフェース上で、"Custom Native Network" タイプのネットワークを作成してください。 "カスタムクラス(Custom Class)" の欄にはあなたのカスタムイベントのクラス名を完全な形で(例えば、com.mopub.mobileads.YourCustomEventBanner
など)を設定してください。
上記の手順が完了したら、あなたのアプリケーションが実行されている時にMoPub SDKを使って適切なタイミングで CustomEventBanner
のサブクラスのインスタンスを作成することができます。 アプリケーションのコード上でこれらサブクラスのインスタンスを作成する必要はありません。
注意: MoPub SDKは広告を呼び出す度にCustomEventBanner
オブジェクトのインスタンスを新たに作成するので、 カスタムイベントオブジェクトの内部状態を安全に変更できます。
あなたのアプリケーションのcom.mopub.mobileads
パッケージ内で CustomEventInterstitial
のサブクラスを作成します。
loadInterstitial(Context, CustomEventInterstitialListener, Map, Map)
メソッドを上書き(override)し、インタースティシャル広告をリクエストするコードを実装します。
showInterstitial()
メソッドを上書き(override)し、インタスティシャル広告を表示するコードを実装します。
広告の読み込みに成功した時、 MoPub に成功イベントを通知して、CustomEventInterstitialListener
オブジェト (loadAd
メソッドで引数として渡される)の onInterstitialLoaded()
メソッドを実行して広告を表示しなければなりません。
広告の読み込みに失敗したときも同様に、リスナーオブジェクトのonInterstitialFailed(MoPubErrorCode)
メソッドを実行してCustomEventInterstitialListener
オブジェクトに通知しなければなりません。
任意) CustomEventInterstitialListener
の対応するメソッドを使い、リスナーオブジェクトにその他の広告ライフサイクルイベントを通知する。
public void onInterstitialShown();
public void onInterstitialDismissed();
public void onInterstitialClicked();
public void onLeaveApplication();
(任意) カスタムイベントでcleanupの並び替えが必要な場合は、 CustomEventInterstitial
のonInvalidate()
メソッドを上書き(override)してください。
最後に、MoPub ウェブインタフェース上で、"Custom Native Network" タイプのネットワークを作成してください。 "カスタムクラス(Custom Class)" の欄にはあなたのカスタムイベントのクラス名を完全な形で(例えば、com.mopub.mobileads.YourCustomEventInterstitial
など)を設定してください。
上記の手順が完了したら、あなたのアプリケーションが実行されている時にMoPub SDKを使って適切なタイミングで CustomEventInterstitial
のサブクラスのインスタンスを作成することができます。 アプリケーションのコード上でこれらサブクラスのインスタンスを作成する必要はありません。
注意: MoPub SDKは広告を呼び出す度にCustomEventInterstitial
オブジェクトのインスタンスを新たに作成するので、 カスタムイベントオブジェクトの内部状態を安全に変更できます。
com.mopub.nativeads
パッケージ内で BaseForwardingNativeAd
のサブクラスを作成します。このクラスは他のネットワークからネイティブ広告を使用して、 MoPub Native Ad を実装します。
ネイティブ広告を読み込んだ後、以下のset用メソッドを使ってオブジェクトを初期化します。:
setTitle
ではタイトルとなる文字列を設定します。
setText
ではテキスト用文字列を設定します。
setIconImageUrl
ではアイコンサイズの画像を設定します。
setMainImageUrl
では大きめの画像を設定します。
setCallToAction
では呼び出すアクション文字列を設定します。
setStarRating
では星評価 を0から5の範囲で設定します。
setClickDestinationUrl
ではクリック先のURLを設定します。
addExtra
for any additional fields. A string key is required to store and retrieve them.
addImpressionTracker
for any additional impression tracking urls you want fired
setImpressionMinTimeViewed
for the minimum amount of time the view is required to be on the screen before recording an impression. This value should be set according to how the network records their impression. The default value is 500ms.
setOverridingImpressionTracker
for if the native ad is using a network impression tracker. If set to true, the network must expose a callback that calls into notifyAdImpressed
setOverridingClickTracker
for if the native ad is using a network click tracker. If set to true, the network must expose a callback that calls into notifyAdClicked
必要であれば、イベントを制御するために以下のメソッドを実装します:
prepare
メソッドを実装してください。
recordImpression
メソッドを実装してください。
handleClick
メソッドを実装してください。
clear
メソッドを実装してください。
destroy
メソッドを実装してください。
広告ネットワークで広告表示や広告クリック用のコールバック関数が提供されている場合、そのコールバックで以下のメソッドを実行して、広告表示や広告クリックを記録したことをSDKに通知してください。
notifyAdImpressed
を実行して広告表示を記録したことを、SDKに通知してください。
初期化時に、 setOverridingImpressionTracker
メソッドにtrue
を渡して実行する必要があります。
notifyAdClicked
を実行して、クリックを記録したことをSDKに通知してください。
初期化時に、 setOverridingClickTracker
メソッドにtrue
を渡して実行する必要があります。。
com.mopub.nativeads
パッケージ内でCustomEventNative
のサブクラスを作成します。
このクラスでは loadNativeAd
メソッドを上書き(override)してネットワークからネイティブ広告をリクエストしてください。
serverExtras
map には、MoPub ウェブUI上でカスタムネイティブネットワークを作成した時に"Custom Event Class Data" フィールドに入力した値(placement idのような)が保持されています。
広告が読み込まれると、上記で説明したようにBaseForwardingNativeAd
クラスのインスタンスを作成する必要があります。
広告の読み込みが失敗した場合は、NativeErrorCode
を引数に渡して customEventListener.onNativeAdFailed
メソッドを実行する必要があります。
customEventListener.onAdLoaded
を実行する前に、親クラスのpreCacheImages
メソッドを実行してネイティブ広告が描写されるとすぐ画像を表示するようにしてください。
画像のダウンロードに失敗した場合はcustomEventListener.onNativeAdFailed
を実行する必要があります。
カスタムイベントサブクラスのloadAd()やloadInterstitial()
では、必要に応じてカスタムイベントに追加データを渡すことができる二つのMapオブジェクトが使用できます。: Map localExtras
とMap serverExtras
です。
localExtras Mapは、アプリケーション上でMoPubView.setLocalExtras(Map)
やMoPubInterstitial.setLocalExtras(Map)
を実行して設定できます。
The serverExtras Map には、MoPub ウェブインタフェースで入力されたデータが入っています。 具体的には、カスタムネイティブネットワークの編集ページを開き、"カスタムクラス(Custom Class)"の欄を選んで、データフィールドにキー文字列と値を持つJSON オブジェクトを入力できます(例えば {"id": "12345", "foo": "bar"})。 これは、アプリケーションのコードを変更せずにサードパーティ製ネットワークIDを渡す場合に特に有効です。
我々は、カスタムイベントフレームワークを使って様々なサードパーティ製ネットワークをサポートしています。
フレームワークはextras/src/com/mopub/mobileads
ディレクトリ内にあり、カスタムイベントを実装する際のスタートポイントとして使うことができます。
MoPub SDK v1.10にあったカスタムイベントメソッドは廃止されています。
注意:カスタムイベントクラスとカスタムイベントメソッドの両方が入っていた場合、SDK v1.10以降ではカスタムイベントクラスが優先されます。 それより以前のSDKがインストールされているアプリケーションでは、カスタムイベントメソッドは正常に機能し続けます。