-
Notifications
You must be signed in to change notification settings - Fork 7
動画インタースティシャル広告実装手順
まだ広告枠作成、SDKダウンロードを行っていない場合、下記リンク先を参照してください。
プロジェクトにSDKを追加していない場合、以下の方法でSDKを追加してください。
動画インタースティシャル広告の実装は以下の5ステップで完了します。
まず、NendAdInterstitialVideo
のインスタンスを生成します。
Kotlin
import net.nend.android.NendAdInterstitialVideo
...
class VideoActivity : AppCompatActivity() {
private lateinit var nendAdInterstitialVideo: NendAdInterstitialVideo
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
nendAdInterstitialVideo = NendAdInterstitialVideo(this, spotId, "apikey")
}
}
Java
import net.nend.android.NendAdInterstitialVideo;
...
public class MainActivity extends AppCompatActivity {
private NendAdInterstitialVideo mNendAdInterstitialVideo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mNendAdInterstitialVideo = new NendAdInterstitialVideo(this, spotId, "apikey");
}
}
引数名 | 型 | 説明 |
---|---|---|
context | Context | |
spotId | int | 管理画面より発行されたSpotId |
apiKey | String | 管理画面より発行されたApiKey |
loadAd
メソッドで広告をロードします。
Kotlin
nendAdInterstitialVideo.loadAd()
Java
mNendAdInterstitialVideo.loadAd();
type
プロパティでロードされた広告タイプを取得することができます。
type | 内容 |
---|---|
NORMAL |
通常の動画インタースティシャル広告 |
PLAYABLE |
ユーザーによる操作が可能な広告 |
isLoaded
メソッドで広告のロードが完了していることを確認してから、showAd
メソッドで広告を表示します。
Kotlin
if (nendAdInterstitialVideo.isLoaded) {
nendAdInterstitialVideo.showAd(this)
}
Java
if (mNendAdInterstitialVideo.isLoaded()) {
mNendAdInterstitialVideo.showAd(this);
}
releaseAd
メソッドで動画広告用の不要なリソースを破棄します。また、広告のロード中に呼ばれた場合はそのロードのキャンセルも行います。
動画広告を使用後に不要になったタイミングや動画広告を利用しているActivity
のonDestroy
でreleaseAd
メソッドを呼び出すようにしてください。
また、releaseAd
メソッドを呼び出した後に再度動画広告を使用する場合は、NendAdInterstitialVideo
のインスタンスを生成し直してください。
Kotlin
nendAdInterstitialVideo.releaseAd() // 広告を破棄
Java
mNendAdInterstitialVideo.releaseAd(); // 広告を破棄
必要に応じて以下のオプション機能を実装してください。
setActionListener
メソッドでNendAdVideoActionListener
のイベントリスナーを登録します。
NendAdVideo
はNendAdInterstitialVideo
やNendAdRewardedVideo
の親クラスです。NendAdVideoActionListener
の各リスナーで渡される引数nendAdVideo
はNendAdInterstitialVideo
のオブジェクトになります。
インタラクティブ広告( NendAdVideoType.PLAYABLE )では NendAdVideoPlayingStateListenerによる動画再生状態のイベント通知を受け取ることができません。 |
通常の動画インタースティシャル(NendAdVideoType.NORMAL)では動画再生時、動画停止時、動画視聴終了のタイミングで、各処理に関するコールバックを受け取ることができます。
しかしインタラクティブ広告(NendAdVideoType.PLAYABLE)は動画ではなくWebView上で動作するコンテンツのため、
動画再生時、動画停止時、動画視聴終了時という概念が存在せず、コールバックを受け取ることはできないため注意が必要です。
Kotlin
import net.nend.android.NendAdVideoActionListener
import net.nend.android.NendAdVideo
...
nendAdInterstitialVideo.setActionListener(object : NendAdVideoActionListener {
override fun onLoaded(nendAdVideo: NendAdVideo) {
// 広告のロードが完了した
when (nendAdVideo.type) {
NendAdVideoType.PLAYABLE -> Log.d(TAG, "インタラクティブ広告では動画の再生状態は通知されません")
NendAdVideoType.NORMAL -> {
nendAdInterstitialVideo.playingState()?.let {
it.playingStateListener = object : NendAdVideoPlayingStateListener {
override fun onStarted(nendAdVideo: NendAdVideo) {
// 動画の再生を開始した
}
override fun onStopped(nendAdVideo: NendAdVideo) {
// 動画の再生を停止した
}
override fun onCompleted(nendAdVideo: NendAdVideo) {
// 動画の再生が最後まで完了した
}
}
}
}
else -> Log.d(TAG, nendAdVideo.type.toString())
}
}
override fun onFailedToLoad(nendAdVideo: NendAdVideo, errorCode: Int) {
// 広告のロードに失敗した
Log.w(TAG, "errorCode: $errorCode")
}
override fun onFailedToPlay(nendAdVideo: NendAdVideo) {
// 広告の再生に失敗した
}
override fun onShown(nendAdVideo: NendAdVideo) {
// 広告を表示した
}
override fun onClosed(nendAdVideo: NendAdVideo) {
// 広告を閉じた
}
override fun onAdClicked(nendAdVideo: NendAdVideo) {
// 広告をクリックした
}
override fun onInformationClicked(nendAdVideo: NendAdVideo) {
// インフォメーションボタンをクリックした
}
})
Java
import net.nend.android.NendAdVideoActionListener;
import net.nend.android.NendAdVideo;
...
mNendAdInterstitialVideo.setActionListener(new NendAdVideoActionListener() {
@Override
public void onLoaded(NendAdVideo nendAdVideo) {
// 広告のロードが完了した
switch (mNendAdInterstitialVideo.getType()) {
case PLAYABLE:
Log.d(TAG, "インタラクティブ広告では動画の再生状態は通知されません");
break;
case NORMAL:
NendAdVideoPlayingState state = mNendAdInterstitialVideo.playingState();
if (state != null) {
state.setPlayingStateListener(new NendAdVideoPlayingStateListener() {
@Override
public void onStarted(NendAdVideo nendAdVideo) {
// 動画の再生を開始した
}
@Override
public void onStopped(NendAdVideo nendAdVideo) {
// 動画の再生を停止した
}
@Override
public void onCompleted(NendAdVideo nendAdVideo) {
// 動画の再生が最後まで完了した
}
});
}
break;
default:
break;
}
}
@Override
public void onFailedToLoad(NendAdVideo nendAdVideo, int errorCode) {
// 広告のロードに失敗した
Log.d(TAG, "errorCode:" + errorCode);
}
@Override
public void onFailedToPlay(NendAdVideo nendAdVideo) {
// 広告の再生に失敗した
}
@Override
public void onShown(NendAdVideo nendAdVideo) {
// 広告を表示した
}
@Override
public void onClosed(NendAdVideo nendAdVideo) {
// 広告を閉じた
}
@Override
public void onAdClicked(NendAdVideo nendAdVideo) {
// 広告をクリックした
}
@Override
public void onInformationClicked(NendAdVideo nendAdVideo) {
// インフォメーションボタンをクリックした
}
});
public void onFailedToLoad(NendAdVideo nendAdVideo, int errorCode)
の引数errorCode
の情報は以下の通りです。
エラーコード | 説明 |
---|---|
204 | 配信広告なし |
400 | 不正なリクエスト |
5XX | サーバーエラー |
600 | SDK内部のエラー |
601 | 広告ダウンロード失敗 |
602 | フルボード広告のフォールバック失敗 |
603 | ネットワークが無効 |
本機能はnendSDKv10.0.0
以降非推奨になりました
アプリ内
のユーザーIDを設定する場合は、 setUserId メソッドで利用したいユーザーIDを文字列で設定します。
Kotlin
nendAdInterstitialVideo.setUserId("ユーザーID")
Java
mNendAdInterstitialVideo.setUserId("ユーザーID");
本機能はnendSDKv10.0.0
以降非推奨になりました
v4.0.3のnendSDKより、動画広告のターゲティングにユーザー属性を利用できるようになりました。
利用可能なユーザー属性は以下の通りです。
- 性別
- 生年月日
- 年齢
- その他特徴(アプリ側で自由に設定可能)
Kotlin
import net.nend.android.NendAdUserFeature
...
// 単一の属性を利用する例
val feature = NendAdUserFeature.Builder()
.setBirthday(1985,1,1)
.build()
nendAdInterstitialVideo.setUserFeature(feature)
...
// 複数の属性を利用する例
val feature = NendAdUserFeature.Builder()
.setGender(NendAdUserFeature.Gender.MALE) // 性別
.setBirthday(1985, 1, 1) // 生年月日 (e.g. 1985年1月1日)
.setAge(34) // 年齢
.addCustomFeature("stringParameter", "test") // key-value形式のカスタムパラメーター
.addCustomFeature("booleanParameter", true)
.addCustomFeature("integerParameter", 100)
.addCustomFeature("doubleParameter", 123.45)
.build()
nendAdInterstitialVideo.setUserFeature(feature)
Java
import net.nend.android.NendAdUserFeature;
...
// 単一の属性を利用する例
NendAdUserFeature feature = new NendAdUserFeature.Builder()
.setBirthday(1985, 1, 1) // 生年月日 (e.g. 1985年1月1日)
.build();
mNendAdInterstitialVideo.setUserFeature(feature);
...
// 複数の属性を利用する例
NendAdUserFeature feature = new NendAdUserFeature.Builder()
.setGender(NendAdUserFeature.Gender.MALE) // 性別
.setBirthday(1985, 1, 1) // 生年月日 (e.g. 1985年1月1日)
.setAge(34) // 年齢
.addCustomFeature("stringParameter", "test") // key-value形式のカスタムパラメーター
.addCustomFeature("booleanParameter", true)
.addCustomFeature("integerParameter", 100)
.addCustomFeature("doubleParameter", 123.45)
.build();
mNendAdInterstitialVideo.setUserFeature(feature);
備考:
- 生年月日と年齢の両方が設定されていた場合は、生年月日の方が優先されます
- カスタムパラメーターで設定可能な値は、文字列 or 数値 or 真偽値のみになります
- 年齢ではなく年代を設定したい場合は、カスタムパラメーターの方をご利用ください
setMuteStartPlaying
メソッドでミュートの指定を行います。
デフォルトはtrue
です(音声OFFで再生します)
Kotlin
nendAdInterstitialVideo.setMuteStartPlaying(false)
Java
mNendAdInterstitialVideo.setMuteStartPlaying(false);
在庫切れ等の事由により動画インタースティシャル広告が表示できない場合に、代わりに全画面のフルボード広告を表示するオプションです。 こちらの機能をご利用になる場合は、nend管理画面でフルボード広告の広告枠を別途ご用意いただく必要がございます。 詳細はこちらをご参照ください。
Kotlin
nendAdInterstitialVideo.addFallbackFullboard(full board spot id, "full board api key")
Java
mNendAdInterstitialVideo.addFallbackFullboard(full board spot id, "full board api key");
動画広告のテストモードは、次の内どちらか一方をご利用ください。
- テスト用IDを使う
- デバイスのGAID(Google Advertising ID)を管理画面上で登録する
-
アプリのログ出力を有効化します。
-
動画インタースティシャル広告のインスタンスを生成して、adbログを確認します。「Google Advertising ID = 」で出力された値を確認してください。
-
出力された値を管理画面へ登録します。
-
2023年9月1日より、SDK v6.0.0未満では動画広告の配信を停止いたします。新しいバージョンのご利用をご検討ください。
-
Google Play Consoleのデータセーフティに関して、nendSDKのデータ収集項目のページを追加しました。詳しくはこちらをご覧ください。
-
Android 13より、Google Advertising IDのアクセスのために権限の追加を強く推奨しています。詳しくはSDKの組み込み方法をご覧ください。
-
v9.0.0よりSDK内部の依存性及び位置情報機能の完全な削除を行いました。詳しくは更新履歴を御覧ください。
-
らくらくスマートフォンの
F-01L
にて、特定のOSバージョンでバナー広告利用時にアプリがクラッシュするという報告を一部のメディア様から頂いております。詳細はこちらをご確認ください。 -
Google Play Services r30 よりライブラリプロジェクトの提供がなくなり、今後はEclipseプロジェクトへのGoogle Play Servicesの導入が不可能となったため、nendSDKにおいてもEclispeでの導入・開発のサポートを終了させていただきました。
EclipseからAndroidStudioへの移行はこちらをご参照ください。 -
Googleのデベロッパーポリシーの更新に伴い、v3.1.0のSDKよりインタースティシャル広告のアプリ終了時表示機能を廃止させていただきました。
-
Effective September 1, 2023, we will stop serving video ads with SDK under v6.0.0. Please consider using a newer version.
-
For data safety section in Google Play Console, We added a page about data collection used on nendSDK. For details, please see here.
-
Since Android 13, we highly recommend add the permision to access Google Advertising ID. For details, please see About integrate the SDK.
-
In v9.0.0, a new dependency had been added to the sdk and all functions of collecting location data are completely deleted.
-
We have received reports from some media that a model of smartphone,
F-01L
crashes when using banner ads on a specific OS version. For details, please check here. -
nendSDK terminated the introduction and development support of Eclispe as Google Play Services (r30) no longer provides library project and impossible to install Google Play Services to the Eclispe project.
Please check the link below for how to transfer from Eclipse to AndroidStudio. -
With the update of Google Developer Policy, we terminated the function to show interstitial ads before the user closes the app from v3.1.0 SDK.
- バナー型広告
- アイコン型広告
- インタースティシャル広告
- ネイティブ広告
- フルボード広告
- 動画広告
- 動画ネイティブ広告
- Release Notes
- Preparation
- Supported Devices and IDE
- nendSDK Data Collection Items
- nendSDK Privacy Policy
- About Information Button
- Banner Ad
- Icon Ads
- Interstitial Ad
- Native Ad
- Fullscreen Ad
- Video Ad
- Native Video Ad