# AdLoader API マイグレーションガイド
# 概要
本ガイドではAndroid FiveSDK v3.0.0以降で標準となるAdLoader APIへの移行方法について説明します。
AdLoader APIはSDKの初期化と広告のロードに利用するAPIをまとめたものとなっています。 従来のSDK初期化と広告のロードのAPIは非推奨となるため、修正対応が必要となります。
本稿では、この修正対応の方法について解説します。
# SDKの初期化
従来はFiveAdにFiveAdConfigを登録することでSDK初期化を行なっていました。
AdLoader APIでは、FiveAdConfigに対応するAdLoaderを取得することでSDK初期化が実行されます。
この初期化がエラーとなるのはSDKが利用するストレージ領域の確保に失敗したときなどのごく稀な場合だけであり、通信失敗等の理由ではエラーとなりません。 エラーとなった場合は再呼び出しで成功する見込みはほとんどないため、リトライ処理は不要です。
# 広告のロード処理
従来の広告のロード処理は、以下のような手順でした。
- 広告オブジェクトを作成する
FiveAdLoadListenerを登録するloadAdAsyncを呼ぶonFiveAdLoadでロード成功通知を受け取る
AdLoader APIでは、次のような手順で広告ロードを行います。
AdSlotConfigを作成するAdLoaderのロード関数を呼ぶ- ロード関数に渡したコールバックでロード済みの広告オブジェクトを受け取る
フォーマットごとのAdLoaderのロード関数は以下の通りです。
| 広告フォーマット | ロード関数(Kotlin) | ロード関数(Java) |
|---|---|---|
| カスタムレイアウト | loadBannerAd(config: AdSlotConfig, initialWidth: Int, callback: LoadBannerAdCallback) | loadBannerAd(@NonNull AdSlotConfig config, int initialWidth, @NonNull LoadBannerAdCallback callback) |
| 動画リワード | loadRewardAd(config: AdSlotConfig, callback: LoadRewardAdCallback) | loadRewardAd(@NonNull AdSlotConfig config, @NonNull LoadRewardAdCallback callback) |
| インタースティシャル | loadInterstitialAd(config: AdSlotConfig, callback: LoadInterstitialAdCallback) | loadInterstitialAd(@NonNull AdSlotConfig config, @NonNull LoadInterstitialAdCallback callback) |
| ネイティブ | loadNativeAd(config: AdSlotConfig, initialWidth: Int, callback: LoadBannerAdCallback) | loadNativeAd(@NonNull AdSlotConfig config, int initialWidth, @NonNull LoadBannerAdCallback callback) |
以下では、カスタムレイアウト広告のロード処理の実装を具体的に修正する方法を解説します。 広告フォーマットが変わってもロード関数が異なるのみで修正方法は同じなので、これを参考にして修正をお願いします。
# 具体例 (カスタムレイアウト広告)
以下のコードは従来手法によるカスタムレイアウト広告のロード処理の具体例です。
このコードをAdLoader APIを利用した形式に書きかえます。
ここでは、AdLoaderのインスタンスは事前に初期化されているものとします。
まず、広告オブジェクトFiveAdCustomLayoutの代わりにAdSlotConfigを作成します。
以下のようになります。
次に、AdLoaderのインスタンスを利用してロード関数を呼び出します。
FiveAdLoadListenerはなくなり、代わりにコールバック関数を与える方式になっています。
したがって、既存のFiveAdLoadListenerの実装の代わりに、ここの「広告ロード成功時の処理」や「広告ロード失敗時の処理」の部分を埋める必要があります。
ただし従来方法とは異なり、this.fiveAdCustomLayoutではなくコールバックで返された広告オブジェクトを使う必要があります。
ここでは、後続で実装する「広告ロード成功時の処理」と「広告ロード失敗時の処理」のメソッドを呼び出しておきます。
次に「広告ロード成功時の処理」や「広告ロード失敗時の処理」のそれぞれのメソッドを実装します。
これでAdLoader APIへの移行は完了です。
なお、setEventListenerでイベントリスナを登録している場合、その部分のコードはそのまま利用可能です。
完成したコードは以下のようになります。