Android でスポットを表示する
このページには、Android でスポット広告を表示するための手順とコード サンプルがあります。
概要
スポット広告の表示はもう少し作業です。 配置 ID を使用して InterstitialAdView
を設定するだけでなく、スポット広告の読み込みが正常に完了したタイミングや要求が失敗したタイミングを示すメソッドを含む、 AdListener
インターフェイスを実装する必要があります。
さらに、実際にスポット広告をユーザーに表示するには、次の 2 つの手順を実行します。
-
InterstitialAdView.loadAd()
を呼び出して、サーバーから広告コンテンツをフェッチし、ローカルにキャッシュします。 広告コンテンツは、広告サーバーからフェッチされてキャッシュされた時点で WebView にレンダリングされることに注意してください。 つまり、広告コンテンツの一部であるサード パーティのトラッキング ピクセルは、show()
への呼び出しが後で行われた場合ではなく、loadAd()
の呼び出し時に発生します。 - スポット広告をユーザーに表示する準備ができたら、
show()
を呼び出します。 これは、インプレッションを Xandr によってカウントするために、loadAd()
の呼び出しから約 4 分以内に発生する必要があります。
注:
[閉じる] ボタンは、既定では 10 秒後に表示されます。 遅延は、 InterstitialAdView.setCloseButtonDelay(int closeButtonDelay)
を使用して設定できます。
詳細については、以下のコード サンプルを参照してください。
スポット広告ユニットでサポートされているクリエイティブ メディアの種類
メディアの種類 | 説明 |
---|---|
バナー | ほとんどのスポット配置で需要を最大化することをお勧めします。 静的またはアニメーションバナーに適しています。 |
間隙 | 静的画像、MRAID、HTML レスポンシブフォーマットなど、全画面表示の広告に使用されます。 |
VAST ビデオ | バージョン 9.1.0 以降の動画広告をサポートしています。 ビデオの需要に対して配置が有効になっている場合に、ビデオ クリエイティブを提供するのに最適です。 |
コード サンプル
注:
バージョン RC2.8 以降では、インベントリ コードとメンバー ID を使用して広告を要求することもできます (プレースメント ID は引き続きサポートされています)。 現在、これは Java (XML ではなく) からのみ使用できます。 インベントリ コードと配置 ID の両方が渡された場合、インベントリ コードは配置 ID ではなくサーバーに渡されることに注意してください。
// Android: Java code that uses inventory code and member ID instead of placement ID (optional)
adview.setInventoryCodeAndMemberID(int memberID, String inventoryCode)
注:
ベスト プラクティスとして:
- すべての SDK メソッドは、メイン スレッドで呼び出す必要があります。
-
activityOnDestroy()
は、破棄されると予想されるスポットに対して呼び出す必要があります。
// Android: Java code to show an interstitial ad
package com.example.simpleinterstitial;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.util.Log;
import com.appnexus.opensdk.*;
public class MainActivity extends Activity implements AdListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Set up an ad view with our placement ID.
InterstitialAdView iav = new InterstitialAdView(this);
iav.setPlacementID("1326299");
iav.setAdListener(this);
// Fetch an ad from the server. If this works, `onAdLoaded' will
// be called, and we can show the ad.
iav.loadAd();
}
@Override
protected void onDestroy() {
if (iav != null) {
iav.activityOnDestroy();
}
super.onDestroy();
}
@Override
public void onAdLoaded(AdView av) {
Log.d("onAdLoaded", "The ad has loaded, now we can show it...");
// Now that the ad has loaded, we can show it to the user.
InterstitialAdView iav = (InterstitialAdView) av;
iav.show();
}
@Override
public void onAdLoaded(NativeAdResponse nativeAdResponse) {
// JUST ignore it. This callback is for Native in Banner.
}
@Override
public void onAdRequestFailed(AdView av, ResultCode rc) {
Log.d("onAdRequestFailed", "Not sure why the ad request failed; try again? Return code ==> " + rc);
}
@Override
public void onAdClicked(AdView av) {
Log.d("onAdClicked", "The user clicked your ad. Congrats!");
}
@Override
public void onAdClicked(AdView adView, String clickUrl) {
// This will be getting called if you have set setClickThroughAction(ANClickThroughAction.RETURN_URL);
// Handle the URL appropriately
}
@Override
public void onAdCollapsed(AdView av) {
// Do something here.
}
@Override
public void onAdExpanded(AdView av) {
// Do something here as well.
}
}
カスタムスポットサイズを使用する
既定では、広告サイズを指定しない場合、SDK は、デバイスの画面のサイズ以下のサイズで広告をフェッチします。
- 1x1 (常に送信)
- 検出された画面のサイズ (常に送信)
- 300x250
- 320x480
- 900x500
- 1024x1024
デフォルト以外のサイズでスポット広告を表示する場合は、次に示すようにスポット広告ビューで setAllowedSizes
方法を使用します。 検出された画面のサイズは引き続きプライマリ サイズとして渡されることに注意してください。
setAllowedSizes
を使用して設定されたサイズは、スポット広告ビューで追加サイズとして渡され、既定値の 300x250、320x480、900x500、1024x1024 が置き換えられます。
// Android: Java code to show interstitial ads in sizes other than the defaults (optional)
InterstitialAdView iav = new InterstitialAdView(this);
iav.setPlacementID("1326299");
AdSize test_size1 = new AdSize(320,480);
AdSize test_size2 = new AdSize(768,1024);
ArrayList test_array_list = new ArrayList() {};
test_array_list.add(test_size1);
test_array_list.add(test_size2);
iav.setAllowedSizes(test_array_list);
スポットを自動閉じる
特定のタイムアウト期間後にスポット広告を自動クローズする場合は、上記のセクションで説明したように show()
を呼び出さないでください。 代わりに、 showWithAutoDismissDelay(delayinseconds)
を呼び出します。ここで、 delayinseconds
は広告が閉じる前に表示される秒数です。
// This will show an interstitial ad, wait for 10 seconds, then auto close it.
interstitialAdView.showWithAutoDismissDelay(10);