アプリ起動時広告実装方法 - glossom-dev/AdfurikunSDK-Android GitHub Wiki
AdfurikunAppOpenAd
クラスのインスタンスを生成します。
広告枠ID
には、アドフリくん管理画面で発行された広告枠IDをセットします。
その後initialize
を呼び出し、で広告情報の初期化を行います。
さらにsetAdfurikunAppOpenAdListener
を呼び出し、引数として後述のリスナーを渡します。
Kotlin
// AdfurikunAppOpenAd インスタンス変数を定義
private var mAppOpenAd: AdfurikunAppOpenAd? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// 広告枠ID・Contextを指定し、アプリ起動時広告のインスタンスを生成
mAppOpenAd = AdfurikunAppOpenAd("広告枠ID", applicationContext)
mAppOpenAd.initialize()
mAppOpenAd.setAdfurikunAppOpenAdListener(mListener)
}
Java
// AdfurikunAppOpenAd インスタンス変数を定義
AdfurikunAppOpenAd mAppOpenAd;
@Override
protected void onCreate(Bundle bundle) {
// 広告枠ID・Contextを指定し、アプリ起動時広告のインスタンスを生成
mAppOpenAd = new AdfurikunAppOpenAd("広告枠ID", getApplicationContext());
mAppOpenAd.initialize();
mAppOpenAd.setAdfurikunAppOpenAdListener(mListener);
}
Kotlin
private val mListener = object : AdfurikunAppOpenAdListener {
override fun onPrepareSuccess(appId: String?) {
// 広告の準備完了直後に実行する処理を記述してください
}
override fun onPrepareFailure(appId: String?, error: AdfurikunMovieError?) {
// 広告の準備失敗直後に実行する処理を記述してください
}
override fun onStartPlaying(data: AppOpenAdData) {
// 広告の再生開始直後に実行する処理を記述してください
}
override fun onFailedPlaying(data: AppOpenAdData, error: AdfurikunMovieError?) {
// 広告の再生に失敗した時に実行する処理を記述してください
}
override fun onAdClose(data: AppOpenAdData) {
// 広告の画面を閉じた時に実行する処理を記述してください
}
}
Java
AdfurikunAppOpenAdListener mListener = new AdfurikunAppOpenAdListener(){
@Override
public void onPrepareSuccess(@Nullable String appId) {
// 広告の準備完了直後に実行する処理を記述してください
}
@Override
public void onPrepareFailure(@Nullable String appId, @Nullable AdfurikunMovieError error) {
// 広告の準備失敗直後に実行する処理を記述してください
}
@Override
public void onStartPlaying(@NonNull AppOpenAdData data) {
// 広告の再生開始直後に実行する処理を記述してください
}
@Override
public void onFailedPlaying(@NonNull AppOpenAdData data, @Nullable AdfurikunMovieError error) {
// 広告の再生に失敗した時に実行する処理を記述してください
}
@Override
public void onAdClose(@NonNull AppOpenAdData data) {
// 広告の画面を閉じた時に実行する処理を記述してください
}
}
load
メソッドを呼ぶことで各アドネットワークへの表示準備を開始します。
引数にタイムアウト秒数を渡します。単位はミリ秒で、3秒の場合は3000と設定して下さい。
読み込み時間の目安は、アドネットワークの数x0.5秒程になります。
Kotlin
// 読み込みの結果時間(timeout)を指定して、ロードする
mAppOpenAd.load(3000) // 3秒タイムアウトの場合
Java
// 読み込みの結果時間(timeout)を指定して、ロードする
mAppOpenAd.load(3000); // 3秒タイムアウトの場合
isPrepared
メソッドで広告準備が完了したかを確認し、play
メソッドで広告を表示します。
再生準備が完了したアドネットワークの中から、1つ広告が選択されます。
Kotlin
if (mAppOpenAd.isPrepared) {
// 再生開始
mAppOpenAd.play(activity)
}
Java
if (mAppOpenAd.isPrepared) {
// 再生開始。
mAppOpenAd.play(activity);
}
Kotlin
override fun onDestroy() {
mAppOpenAd?.onDestroy()
super.onDestroy()
}
Java
@Override
protected void onDestroy() {
mAppOpenAd.onDestroy();
super.onDestroy();
}
- アプリ起動時に毎回表示するか、n回に1回表示するかは、アプリ開発者が決定し実装してください。
- 広告を再生するかどうか、アプリ側で判断して実装してください。
- 使用する広告枠によって、1日の最大再生回数や再生間隔に制限が設定されている場合があります。
- 制限に抵触する場合、広告のロード時に
PLAYBACK_FREQUENCY_FAILURE
またはPLAYBACK_FREQUENCY_INTERVAL_FAILURE
エラーが発生します。- 詳細はエラーコード確認方法をご確認ください。
- これらの制限に関する設定の確認および変更が必要な場合は、サポートにお問い合わせください。
広告読み込み速度改善するために、事前にアプリケーションクラスのonCreate
から初期化を行います。
// アプリ起動時広告のシングルトンクラスを生成する
object AppOpenAdSingleton {
private var mAppOpenAd: AdfurikunAppOpenAd? = null
fun initialize(context: Context) {
if (mAppOpenAd == null) {
mAppOpenAd = AdfurikunAppOpenAd(広告枠ID, context).apply {
initialize()
}
}
}
fun setAppOpenAdListener(listener: AdfurikunAppOpenAdListener) {
mAppOpenAd?.setAdfurikunAppOpenAdListener(listener)
}
fun load(timeout: Long) {
mAppOpenAd?.load(timeout)
}
fun play(activity: Activity) {
if (mAppOpenAd?.isPrepared == true) {
mAppOpenAd?.play(activity)
}
}
fun destroy() {
mAppOpenAd?.destroy()
mAppOpenAd = null
}
}
// アプリケーションクラスのonCreateから初期化する
class AdfurikunApplication : Application() {
override fun onCreate() {
super.onCreate()
// アドフリくんSDKを初期化する
AdfurikunSdk.init(this)
// アプリ広告起動時広告を初期化する
AppOpenAdSingleton.initialize(applicationContext)
}
}
Pangle広告の場合、広告内にアプリ名が表示される仕様です。アプリ名は以下の設定値を参照しております。
- Manifest.xmlの「android:label=」の設定値
- 多国籍用のstring.xmlを用意する事で、多国籍対応可能です。