# ワイプアド
アプリの画面上に、ワイプのように動画広告を表示するフォーマットになります。
表示の初期位置は画面上の四隅(右上,右下,左上,左下)をお選びいただき、
アプリの配色にあわせて、Light/Darkのテーマをご指定いただけます。
# サイズ仕様について
表示サイズについては横幅のみ任意の数値をご指定いただけますが、視認性確保のために、サイズについて上限と下限が定められております。
基本的に400(dp)などの大きな値を横幅としてご指定いただき、最大サイズ(デフォルト)で表示いただくことを想定しておりますが、
アプリ状況により細かくサイズをご指定いただく必要がある場合は、下記の最大サイズ〜最小サイズの範囲内でご指定ください。
# 最大サイズ(デフォルト)について
表示対象となる画面の高さと横幅を比較し、
画面の高さ
< 画面の横幅
の場合は、高さの35%を最大値として、16:9の比率で横幅を算出して表示いたします。
画面の高さ
> 画面の横幅
の場合は、横幅の53%を最大値として、16:9の比率で高さを算出して表示いたします。
最大サイズより大きな横幅の値をご指定いただいた場合は、上記のルールに基づいてリサイズされます。
# 最小サイズについて
最小の横幅は135dpとなります。
ご指定いただいた横幅が135dpを下回っていた場合、上記の最小サイズにリサイズされます。
# 表示の初期位置について
画面上の四隅(右上,右下,左上,左下)をお選びいただくことが可能です。
Androidはデフォルトで左上に配置されます。
アプリ状況により、表示位置をずらしたい場合、マージンの値をご指定いただくことで、
右上
または 左上
をお選びいただいた場合は、ワイプアドに対してトップマージンが追加されます。
右下
または 左下
をお選びいただいた場合は、ワイプアドに対してボトムマージンが追加されます。
# 対応SDK
Ad Generation SDK
- Android v2.19.0~
# 対応バージョン
- Android 5.0以降
# SDK実装について
ADGWipeクラスのインスタンスを生成し、事前に preload()
メソッドをコールいただき、広告をロードしてください。
正常にロード完了した場合、 Android : onReceiveAd()
のコールバックがおこなわれますので、
その後は任意のタイミングで show()
メソッドをコールいただき、広告の表示をおこなってください。
ロード完了後、即時表示をおこないたい場合は、
Android : onReceiveAd()
のコールバック内に show()
メソッドをコールいただくように記述してください。
API Reference
# build.gradle
プロジェクトの構成にKotlinが存在しない場合、dependenciesに以下の参照を追加してください。
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$latest_version"
:::: tabs
::: tab Kotlin
import com.socdm.d.adgeneration.wipe.ADGWipe
import com.socdm.d.adgeneration.ADGConsts.ADGErrorCode
import com.socdm.d.adgeneration.wipe.ADGWipeListener
class MainActivity : AppCompatActivity() {
private var adgWipe: ADGWipe? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
adgWipe = ADGWipe(this).apply {
// 広告枠IDをセットしてください
setLocationId(adid)
// Listenerをセットしてください
setAdListener(AdListener())
// テストモードをONにする場合は有効化してください ※リリース時は必ずfalse, もしくは記述をコメントアウトしてください
setEnableTestMode(true)
// 広告のプリロード
preload()
}
}
override fun onStop() {
// ワイプアドを破棄する
adgWipe?.dismiss()
super.onStop()
}
// android:configChanges属性に値を設定している場合は下記のメソッドで構成の変更を通知してください。
// https://developer.android.com/guide/topics/resources/runtime-changes?hl=ja#HandlingTheChange
override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
adgWipe?.configurationChanged(newConfig)
}
internal inner class AdListener : ADGWipeListener() {
override fun onReceiveAd() {
Log.d(TAG, "Received an ad.");
// 広告表示
adgWipe?.show()
}
override fun onCloseWipe() {
Log.d(TAG, "Closed wipe ads.");
}
override fun onFailedToReceiveAd(code: ADGErrorCode) {
Log.d(TAG, "Failed to receive an ad.");
when (code) {
ADGErrorCode.EXCEED_LIMIT, ADGErrorCode.NEED_CONNECTION, ADGErrorCode.NO_AD -> return
else -> return
}
}
override fun onClickAd() {
Log.d(TAG, "Did click ad.");
}
}
}
:::
::: tab Java
import com.socdm.d.adgeneration.wipe.ADGWipe;
import com.socdm.d.adgeneration.ADGConsts.ADGErrorCode;
import com.socdm.d.adgeneration.wipe.ADGWipeListener;
public class MainActivity extends AppCompatActivity {
private ADGWipe adgWipe;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.activity_main);
adgWipe = new ADGWipe(this);
// 広告枠IDをセットしてください
adgWipe.setLocationId(adid);
// Listenerの設定
adgWipe.setAdListener(new AdListener());
// テストモードをONにする場合は有効化してください ※リリース時は必ずfalse, もしくは記述をコメントアウトしてください
adgWipe.setEnableTestMode(true);
// 広告のプリロード
adgWipe.preload();
}
@Override
protected void onStop() {
super.onStop();
if (adgWipe != null) {
// ワイプアドを破棄する
adgWipe.dismiss();
}
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (adgWipe != null) {
// android:configChanges属性に値を設定している場合は下記のメソッドで構成の変更を通知してください。
// https://developer.android.com/guide/topics/resources/runtime-changes?hl=ja#HandlingTheChange
adgWipe.configurationChanged(newConfig);
}
}
class AdListener extends ADGWipeListener {
@Override
public void onReceiveAd() {
Log.d(TAG, "Received an ad.");
if (adgWipe != null) {
// 広告表示
adgWipe.show();
}
}
@Override
public void onFailedToReceiveAd(ADGErrorCode code) {
Log.d(TAG, "Failed to receive an ad.");
// ネットワーク不通/エラー多発/広告レスポンスなし 以外はリトライしてください
switch (code) {
case EXCEED_LIMIT: // エラー多発
case NEED_CONNECTION: // ネットワーク不通
case NO_AD: // 広告レスポンスなし
break;
default:
break;
}
}
@Override
public void onClickAd() {
Log.d(TAG, "Did click ad.");
}
@Override
public void onCloseWipe() {
Log.d(TAG, "on Close Wipe.");
}
}
}
:::
::::
# 表示例
Garaxy Nexus(縦)(Light) | Garaxy Nexus(縦)(Dark) | デフォルトサイズ |
---|---|---|
![]() | ![]() | 190x107 |
Garaxy Nexus(横)(Light) | Garaxy Nexus(横)(Dark) | デフォルトサイズ |
---|---|---|
![]() | ![]() | 223x126 |
Pixel XL(縦)(Light) | Pixel XL(縦)(Dark) | デフォルトサイズ |
---|---|---|
![]() | ![]() | 218x123 |
Pixel XL(横)(Light) | Pixel XL(横)(Dark) | デフォルトサイズ |
---|---|---|
![]() | ![]() | 255x144 |
Pixel C(縦)(Light) | Pixel C(縦)(Dark) | デフォルトサイズ |
---|---|---|
![]() | ![]() | 477x269 |
Pixel C(横)(Light) | Pixel C(横)(Dark) | デフォルトサイズ |
---|---|---|
![]() | ![]() | 560x315 |