カスタムイベントを使うことで、MoPub SDKにバンドルされていないネイティブ広告ネットワークをサポートしたり、MoPub ウェブインタフェースから任意のアプリケーションコードを実行したりできます。
アプリケーション内でMPBannerCustomEvent
のサブクラスを作成します。
-requestAdWithSize:customEventInfo:
メソッドを上書き(override)し、広告をリクエストするコードを実装します。
広告の読み込みに成功した時、カスタムイベントオブジェクトのデリゲート(delegate
プロパティを介してアクセスできます)で-bannerCustomEvent:didLoadAd:
メソッドを呼び出して、MoPub に成功イベントを通知しなければなりません。
広告の読み込み失敗した時も同様に、 -bannerCustomEvent:didFailToLoadAdWithError:
メソッドを呼び出してデリゲートに通知しなければなりません。
(任意) 対応するデリゲートメソッドを使って、ユーザーの操作イベントのデリゲートに通知する:
-bannerCustomEventWillBeginAction:
-bannerCustomEventDidFinishAction:
注意: 実装にて -bannerCustomEventWillBeginAction:
を呼び出した場合は、-bannerCustomEventDidFinishAction:
も必ず呼び出してください。
(任意) -bannerCustomEventWillLeaveApplication:
メソッドを使って、ユーザーがバナー経由でアプリケーションから離れた場合にデリゲートに通知する。
(任意) カスタムイベントでcleanupの並び替えが必要な場合は、 -dealloc
を実装してください。
最後に、MoPub ウェブインタフェース上で、"Custom Native Network" タイプのネットワークを作成してください
"カスタムクラス(Custom Class)" の欄にはあなたのカスタムイベントのクラス名(例えば、YourBannerCustomEvent
など)を設定してください。
上記の手順が完了したら、あなたのアプリケーションが実行されている時に MoPub SDKは自動的に MPBannerCustomEvent
のサブクラスのインスタンスを作成することができます。
アプリケーションのコード上でこれらサブクラスのインスタンスを作成する必要はありません。
注意: MoPub SDKは広告を呼び出す度にMPBannerCustomEvent
オブジェクトのインスタンスを新たに作成するので、
後から呼び出される広告に影響を与えず安全にカスタムイベントオブジェクトの内部状態を変更できます。
アプリケーション内で MPInterstitialCustomEvent
のサブクラスを作成します。
-requestInterstitialWithCustomEventInfo:
メソッドを上書き(override)し、広告をリクエストするコードを実装します。
-showInterstitialFromRootViewController:
を上書き(override)し、インタースティシャル広告を表示するコードを実装します。
カスタムイベントオブジェクトのデリゲート(delegateプロパティを介してアクセスできます)で対応するメソッドを呼び出し、 以下のインテースティシャルライフサイクルイベントを全てMoPub に通知しなければなりません。:
-interstitialCustomEvent:didLoadAd:
-interstitialCustomEvent:didFailToLoadAdWithError:
-interstitialCustomEventWillAppear:
-interstitialCustomEventDidAppear:
-interstitialCustomEventWillDisappear:
-interstitialCustomEventDidDisappear:
上記のメソッドをは全て必須のものです。あなたが使おうとしている広告ネットワークがこれらイベントのうちいずれかのコールバックを行わなかった場合は、 あなたがカスタムイベントの呼び出しを適切なタイミングで行わなければなりません。
例えば、広告ネットワークがadDidDisappear
コールバックのみを実行した場合、カスタムイベントは応答時に -interstitialCustomEventWillDisappear:
と-interstitialCustomEventDidDisappear:
の両方を実行しなければなりません。
(任意)広告ネットワークがユーザーの操作や広告のタップをあなたに通知することができる場合、この情報をMoPub SDKに渡してMoPub に詳細に分析させることができます。
カスタムイベントデリゲートでinterstitialCustomEventDidReceiveTapEvent:
メソッドを呼び出すことでこれが可能です。
(任意) カスタムイベントでcleanupの並び替えが必要な場合は、 -deallocを実装してください。
最後に、MoPub ウェブインタフェース上で、"Custom Native Network" タイプのネットワークを作成してください "カスタムクラス(Custom Class)" の欄にはあなたのカスタムイベントのクラス名(例えば、YourInterstitialCustomEventなど)を設定してください。
上記の手順が完了したら、あなたのアプリケーションが実行されている時に MoPub SDKは自動的に MPInterstitialCustomEventのサブクラスのインスタンスを作成することができます。 アプリケーションのコード上でこれらサブクラスのインスタンスを作成する必要はありません。
注意: MoPub SDKは広告を呼び出す度にMPInterstitialCustomEventオブジェクトのインスタンスを新たに作成するので、 後から呼び出される広告に影響を与えず安全にカスタムイベントオブジェクトの内部状態を変更できます。
MPNativeAdAdapter
プロトコルを実装したクラスを作成します。このクラスはMPNativeAd インタフェースとカスタムネイティブ広告との間でアダプターとして機能します。
カスタムネイティブ広告を引数として受け取る初期化用メソッドを作成します。
広告をプロパティに格納するだけでなく、そのコンテンツをディクショナリ properties
に紐付ける必要があります。
使用しなければならないキーは、 MPNativeAdConstants.h
内で見ることができるので、インクルードしてください:
kAdTitleKey
はタイトルを表す文字列
kAdTextKey
は説明やbody部となるテキスト文
kAdIconImageKey
はアイコンサイズの画像
kAdMainImageKey
は大きめの画像
kAdCTATextKey
は呼び出すアクションを表す文字列
kAdStarRatingKey
は星評価 (0から5の範囲で設定する必要があります)。
もう一つ、実装する必要があるプロパティはdefaultActionURL
です -- これは広告をタップした時にユーザーが取得するURLです。
ネイティブ広告が自動的に開いたような場合は、これはnilになります。
Any additional content can be placed in the properties
dicitonary at your discretion, which will allow you to access it through the MPNativeAd
interface.
displayContentForURL:rootViewController:completion:
メソッドを実装します。このメソッドはユーザが広告をタップした時に呼び出され、and can either forward the call to a corresponding method on the mediated ad, or you can implement URL-opening yourself.
(Optional) The MPNativeAdAdapter
protocol also has a number of optional methods that can be implemented to allow for further customization and passing behavior back to the mediated ad.
requiredSecondsForImpression
はMPNativeAd
を表示するタイミングを決めるのに使用されます。
実装されなかった場合、既定では 0.0 秒が設定されるのでビューはすぐ画面に表示されます。
willAttachToView:
は広告コンテンツがコンテナビューに読み込まれたときに呼び出され、 and passes back that view.表示回数を自動的に記録するネイティブ広告ではこのメソッドを実装する必要があります。
trackImpression
はMPNativeAd
が表示回数をカウントした時に呼び出されます。これを使い、配信される広告の表示回数を手動で記録することができます。
trackClick
はユーザーが広告をタップした時に呼び出されます。これを使い、配信される広告のクリック回数を手動で記録することができます。
MPNativeCustomEvent
のサブクラスを作成します。
requestAdWithCustomEventInfo:
メソッドを上書き(override)し、広告をリクエストするコードを実装します。 The info NSDictionary passed to this method is defined in the custom native network set up on app.mopub.com under Custom Event Class Data. It should include any necessary information for requesting an ad on your network such as ad unit ID.
When the ad returns, you need to create a corresponding object that adhers to the MPNativeAdAdapter
protocol (as described in previous steps), and use that to create an MPNativeAd
with the initWithAdAdapter:
initializer.
カスタムイベントのデリゲートでcustomNativeEvent:didLoadAd:
を呼び出す前に、親クラスのprecacheImagesWithURLs:completionBlock:
メソッドを呼び出して広告に表示する画像(一般的にはアイコン画像とメイン画像)をダウンロードしてキャッシュ保存してください。こうして、デリゲートは MPNativeAd
オブジェクトを受け取れるようになります。
広告や画像を読み込むどこかのタイミングでエラーが発生した場合、継承元デリゲートの nativeCustomEvent:didFailToLoadAdWithError:
が呼び出されます。
バナーとインタースティシャル両方のカスタムイベントにおいて、広告を読み込むために呼び出さるメソッドにはNSDictionary
パラメータ(info
と呼ばれる)が含まれています。このパラメータを使い、必要な追加データをカスタムイベントに渡すことができます。
info
オブジェクトにはMoPub ウェブインタフェースで入力されたデータが入っています。 具体的には、カスタムネイティブネットワークの編集ページを開き、"カスタムクラス(Custom Class)"の欄を選んで、データフィールドにキー文字列と値を持つJSON オブジェクトを入力できます(例えば {"id": "12345", "foo": "bar"}
)。
これは、アプリケーションのコードを変更せずにサードパーティ製ネットワークIDを渡す場合に特に有効です。
バナー広告とインタースティシャル広告
MoPub SDK は自動的に表示回数とクリック回数を記録します for custom events in response to certain delegate callbacks.
バナーカスタムイベントでは表示回数は -bannerCustomEvent:didLoadAd:
に記録され、クリック回数は -bannerCustomEventWillBeginAction:
もしくは -bannerCustomEventWillLeaveApplication:
に記録されます。
インタースティシャルカスタムイベントでは、表示回数は -interstitialCustomEventDidAppear:
に記録され、クリック回数は -interstitialCustomEventDidReceiveTapEvent:
に記録されます。
表示回数とクリック回数を記録する時にもっと詳細な制御が必要な場合は、-(BOOL)enableAutomaticImpressionAndClickTracking
を上書き(override)してNO
を戻り値として返すことで、カスタムイベントの既定の動作を上書きできます。カスタムイベントデリゲートで -trackImpression
と-trackClick
を呼び出すことで、手動で表示回数とクリック回数を報告できます。
ネイティブ広告
MPNativeAdAdapter
プロトコルでは、表示回数とクリック回数を簡単に記録できる柔軟なメソッドが使用できます。
配信される広告で手動での表示回数とクリック回数の記録が必要な場合、 provide implementations for trackImpression
and trackClick
.
MPNativeAd
はこれらのメソッドを適切なタイミングで自動的に呼び出します。
requiredSecondsForImpression
は表示回数としてカウントされるまでどれだけの時間広告が表示されればいいのかを決められ、既定値は0.0秒になっています。
If the mediated ad already provides automatic impression tracking, the willAttachToView:
method allows the adapter to pass the cooresponding UIView to the mediated ad.