ネイティブ動画広告の導入 - united-adstir/AdStir-Integration-Guide-Android GitHub Wiki
ネイティブ動画広告の導入
adstir SDK 2.14.6以上をご利用する場合はAndroidXへの移行が必要です。こちらを参考にAndroidXへ移行をお願いいたします。
メディアのコンテンツにマッチしたレイアウトで動画広告も掲載できるネイティブ広告です。 動画広告が案件切れの場合、もしくはAndroid 4.4の場合はAdstirNativeVideoViewにバナー画像が表示されます。
こちらの変更履歴をご覧になってから導入を開始してください。
ネイティブ動画をご利用される場合は営業担当にご相談ください。
対応OS
Android 5.0 以上 (Android 4.4の端末には動画の代わりにバナーが表示されます。)
利用準備
初期設定
初期設定に従って設定してください。
広告の設置
Viewの作成
Viewの作成に関しては、ご自由に実装して頂いて構いません。 実装方法に制限はありません。Layout XML・Javaコード以外の実装方法でも問題ありません。ただし、作成したViewは、ネイティブ広告ガイドラインに従っている必要があります。
動画View(AdstirNativeVideoView)の作成
Layout XMLまたは、Javaコードにて作成してください。
XMLにて作成
<com.ad_stir.nativead.video.AdstirNativeVideoView
android:id="@+id/native_video"
android:layout_width="320dp"
android:layout_height="180dp" />
JAVAコードにて作成
float density = getResources().getDisplayMetrics().density;
videoView = new AdstirNativeVideoView(activity);
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(
(int) (density * 320), (int) (density * 180));
ViewGroup native_video_wrapper = findViewById(R.id.native_video_wrapper);
native_video_wrapper.addView(videoView, params);
広告の取得
onCreate等で広告のリクエストおよびレスポンスの処理を設定します。
このコードは実装の全体をつかむためのサンプルですので、この通りに実装しても動作しません。実際に広告を実装する際は、ライブラリ詳細の項目をよく確認して必要なパラメータの設定及び処理を記述する必要があります。各メソッドの詳細はAPIリファレンスをご覧ください。
private AdstirNativeAd nativead;
private AdstirNativeVideoView videoView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.xxxx);
// インスタンス生成
nativead = new AdstirNativeAd(activity,"メディアID",枠No);
// ガイドラインで規定されているスポンサー表記を、表示する通りに設定します。
nativead.setSponsoredText("PR");
// 広告レスポンスを受け取るListenerを設定します。
nativead.setListener(new AdstirNativeAdListener(){
public void onReceive(final AdstirNativeAdResponse response){
// 広告レスポンスが正常に取得できた時に行う処理を実装します。
// AdstirNativeAdListenerのメソッドはすべてバックグラウンドスレッドで動作します。
runOnUiThread(new Runnable(){
public void run(){
// title
TextView titleView = (TextView) findViewById(R.id.xxxx);
titleView.setText(response.getTitle());
// description
TextView descriptionView = (TextView) findViewById(R.id.xxxx);
descriptionView.setText(response.getDescription());
// icon
ImageView iconView = (ImageView) findViewById(R.id.xxxx);
response.bindIconToImageView(NativeActivity.this, iconView);
// rate
TextView rateText = (TextView) findViewById(R.id.xxxx);
rateText.setText("rate : " + String.valueOf(response.getRating()));
// video
videoView = (AdstirNativeVideoView) view.findViewById(R.id.xxxx);
videoView.load(response.getVideo());
// CTA
Button cta = (Button) findViewById(R.id.native_cta);
cta.setText(response.getCta());
cta.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
response.click();
}
});
}
});
// 広告を表示するときにimpression()を呼び出します。
response.impression();
}
public void onFailed(){
// 広告レスポンスが正常に取得できなかった時に行う処理はここに記述します。
}
});
// モバイル回線使用時に、動画を拒否する場合にはtrueを設定します。
nativead.denyVideoOnMobileConnection(true);
// 広告をリクエストします。
nativead.getAd();
}
広告破棄
onDestroy()等でAdstirNativeAd、AdstirNativeVideoViewの破棄を指示します。
@Override
protected void onDestroy() {
super.onDestroy();
if(nativead != null) {
nativead.destroy();
}
if(videoView != null) {
videoView.release();
}
}
ライブラリ詳細
APIリファレンスをご覧ください。
よくあるご質問
FAQをご覧ください。