# AdLoader API マイグレーションガイド

# 概要

本ガイドではAndroid FiveSDK v3.0.0以降で標準となるAdLoader APIへの移行方法について説明します。

AdLoader APIはSDKの初期化と広告のロードに利用するAPIをまとめたものとなっています。 従来のSDK初期化と広告のロードのAPIは非推奨となるため、修正対応が必要となります。

本稿では、この修正対応の方法について解説します。

# SDKの初期化

従来はFiveAdFiveAdConfigを登録することでSDK初期化を行なっていました。

AdLoader APIでは、FiveAdConfigに対応するAdLoaderを取得することでSDK初期化が実行されます。

この初期化がエラーとなるのはSDKが利用するストレージ領域の確保に失敗したときなどのごく稀な場合だけであり、通信失敗等の理由ではエラーとなりません。 エラーとなった場合は再呼び出しで成功する見込みはほとんどないため、リトライ処理は不要です。

# 広告のロード処理

従来の広告のロード処理は、以下のような手順でした。

  1. 広告オブジェクトを作成する
  2. FiveAdLoadListenerを登録する
  3. loadAdAsyncを呼ぶ
  4. onFiveAdLoadでロード成功通知を受け取る

AdLoader APIでは、次のような手順で広告ロードを行います。

  1. AdSlotConfigを作成する
  2. AdLoaderのロード関数を呼ぶ
  3. ロード関数に渡したコールバックでロード済みの広告オブジェクトを受け取る

フォーマットごとの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でイベントリスナを登録している場合、その部分のコードはそのまま利用可能です。

完成したコードは以下のようになります。