Amazon Publisher Services(APS)のバナー広告の導入

はじめに

APS SDKの初期化が必要です。APSの設定をご覧になり、SDKの初期化を先におこなってください。

APSインタースティシャルへのリクエストを行う

App Keyの登録

AdRegistration.getInstance("YOUR_APP_KEY", getApplicationContext());

DTBAdSizeのインスタンスを生成します

広告サイズは実際に表示するバナー広告のサイズを、YOUR_SLOT_UUIDには営業担当がお知らせしたIDを入力してください。

DTBAdSize adSize = new DTBAdSize.DTBInterstitialAdSize("YOUR_SLOT_UUID");

DTBAdLoaderのインスタンスを生成し、DTBAdSizeを設定する

final DTBAdRequest adLoader = new DTBAdRequest();
adLoader.setSizes(adSize);

APSの入札リクエストとコールバックの設定

loadAdを呼び出して入札リクエストを行います。

APSが入札した場合はonSuccessが、入札しなかった場合はonFailureが呼ばれます。 APSの入札結果を元に、AdMobへ広告リクエストを行います。

onSuccessが呼ばれた場合は、AdMobへCustomEventExtrasBundleを付与して広告リクエストを行い、 onFailureが呼ばれた場合は、AdMobへ追加情報を付与せずにリクエストを行います。 AdMobの実装についてはこちらをご覧ください。

loader.loadAd(new DTBAdCallback() {

    // No APS bid returned
    @Override
    public void onFailure(AdError adError) {
        AdRequest adRequest = new AdRequest.Builder().build();
        mInterstitialAd.loadAd(adRequest);
        APSAdMobCustomInterstitialEvent.setAdMobInterstitial(mInterstitialAd);
    }

    // APS bid returned
    @Override
    public void onSuccess(DTBAdResponse dtbAdResponse) {
        Bundle bundle = dtbAdResponse.getRenderingBundle();

        AdRequest adRequest = new AdRequest.Builder().addCustomEventExtrasBundle(APSAdMobCustomInterstitialEvent.class, bundle).build();

        mInterstitialAd.loadAd(adRequest);
        APSAdMobCustomInterstitialEvent.setAdMobInterstitial(mInterstitialAd);
    }
});

広告を表示する

広告の準備ができているか確認してから広告を表示します。

if (mInterstitialAd.isLoaded()){
    mInterstitialAd.show();
}