アプリ起動時広告実装方法 - 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広告のアプリ名表示について

Pangle広告の場合、広告内にアプリ名が表示される仕様です。アプリ名は以下の設定値を参照しております。

- Manifest.xmlの「android:label=」の設定値
- 多国籍用のstring.xmlを用意する事で、多国籍対応可能です。

Sdk Setting

⚠️ **GitHub.com Fallback** ⚠️