1-1. AdfurikunSdkの実装方法
全広告枠共通
① 各種類専用の広告枠をご用意ください。下記は動画リワード広告専用の広告枠の手順となります。
- 動画リワードの広告枠設定の詳細はこちらから
- 動画インタースティシャルの広告枠設定の詳細はこちらから
※ネイティブ広告は対応しておりませんので、今まで通りの実装方法でご使用ください。
アドフリくん管理画面の[広告枠]タブ > [広告枠 追加] > [バナー種類] で「動画リワード広告」を選択します。
② “jp.tjkapp.adfurikunsdk.moviereward.AdfurikunSdk” ,“jp.tjkapp.adfurikunsdk.moviereward.AdfurikunMovieType”をインポートして、アドフリくん管理画面で発行された広告枠IDと、ActivityでAdfurikunSdkを初期化、広告枠の設定をします。
//AdfurikunSdkの初期化
AdfurikunSdk.init(activity);
//各種広告枠の設定
//動画リワード広告
AdfurikunSdk.addAppId(ADFURIKUN_REWARD_APPID, AdfurikunMovieType.AdType.REWARD);
//動画インタースティシャル広告
AdfurikunSdk.addAppId(ADFURIKUN_INTER_APPID, AdfurikunMovieType.AdType.INTERSTITIAL);
//動画ネイティブ広告(FLEX)
AdfurikunSdk.addAppId(ADFURIKUN_NATIVE_AD_FLEX_APPID, AdfurikunMovieType.AdType.NATIVE_AD_FLEX);
動画リワード、動画インタースティシャル、動画ネイティブ広告(FLEX)共通
① AdfurikunSdkの広告の読み込み処理の開始・停止をおこなう為、以下のメソッドを実装します。
メソッド | 実装箇所 | 説明 |
---|---|---|
startLoading() | ActivityのonResume() | セットされた全ての広告枠について動画広告の準備と動画の再開などを行います。 |
startLoading(String... appIds) | ActivityのonResume() | 指定された全ての広告枠について動画広告の準備と動画の再開などを行います。 |
stopLoading() | ActivityのonPause() | セットされた全ての広告枠について動画の一時停止などを行います。 |
stopLoading(String... appIds) | ActivityのonPause() | 指定された全ての広告枠について動画の一時停止などを行います。 |
② 下記メソッドで広告の読み込みを実行します。
広告枠が新ローディングモードの場合、広告表示準備を明示的に行う必要があります。
load
メソッドを呼び出すとそのタイミングで各アドネットワークへの表示準備開始をします。
//広告読み込み
public void load (String appId)
load()関数を呼び出さないと表示準備が行われません。
③ 下記メソッドで動画再生準備が完了したかを確認し、完了していたら明示的に動画再生開始メソッドを実行します。
//動画の再生準備が完了したか確認
public boolean isPrepared (String appId)
//動画再生開始
public void play (String appId)
④ 動画の準備状況 / 再生状況の通知を行うため、通知リスナーを登録して内容に応じた処理を行ってください。
登録したリスナーを破棄することもできます。
//状態通知リスナーを登録する
public void setAdfurikunMovieListener (AdfurikunMovieListener listener)
//状態通知リスナーを破棄する
public static void releaseAdfurikunMovieListener()
AdfurikunMovieListener listener 動画の準備状況 / 再生状態を受け取るイベントリスナー
//動画の準備が完了(広告が表示可能になりました)
public void onPrepareSuccess (String appId)
//動画の準備が失敗
public void onPrepareFailure (String appId, AdfurikunMovieError error)
//動画の再生を開始した
public void onStartPlaying (MovieData data)
//動画の再生が完了した
public void onFinishedPlaying (MovieData data)
//動画の再生が失敗した(「内部エラーや操作により動画を中断した場合」や「再生直前でネットワークが切れた場合」など)
public void onFailedPlaying (MovieData data)
//動画の画面を閉じた(アプリ 画面に戻ります)
public void onAdClose (MovieData data)
各メソッドで返却される動画の情報(MovieDataクラス) 、以下のpublicなメンバの構造です。
adfurikunAppId | 広告枠ID |
---|---|
adnetworkKey | アドネットワークキー |
adnetworkName | アドネットワーク名 |
⑤ AdfurikunSdkでは初期化処理を行うActivityと広告を再生するActivityが異なっていても問題ありません。
但しその場合は下記のメソッドを、広告を再生するActivityで実装する必要があります。
//広告を再生するActivityをセット
public static void setActivity(Activity activity)
//初期するActivity
AdfurikunSdk.init(activity);
//広告枠の設定
AdfurikunSdk.addAppId(AdfurikunConst.ADFURIKUN_REWARD_APPID, AdfurikunMovieType.AdType.REWARD);
//広告を再生するActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//広告を再生するActivityをセットし直してください。
AdfurikunSdk.setActivity(this);
}
⑥ Avtivityの破棄などでAdfurikunMovieListenerからのコールバックが受け取れなかった場合に、再生したActivityと同じActivityであれば再度コールバックを受け取ることができます。このメソッドは広告再生処理を行ったAvtivityが広告再生開始後に破棄され、広告再生完了後に再度生成されるActivityでコールバックを取得する際に有効です。
public static void setResendingCallback(boolean isResendingCallback)
⑦ セットした広告枠を破棄する場合は、下記のメソッドを実装してください。
下記のメソッドを実装した場合は、以降の広告の読み込み及び再生ができなくなります。
public static void removeAppId(String appId)
動画ネイティブ広告(FLEX)
① 動画の再生後、明示的に動画を閉じることも可能です。その場合は、動画を閉じるメソッドを実行します。 下記メソッド実行後は、AdfurikunMovieListenerは、動画の視聴が完了していれば、onFinishedPlayingを返します。onAdCloseは視聴完了しているかに関わらず返します。
public static void closeNativeAdFlex()
1-2. 実装例
■実装例 (詳細 、サンプルアプリ・AdfurikunMovieRewardSample を参照)
●AdfurikunSdkの初期化(SimpleAdfurikun.java)
@Override
protected void onCreate(Bundle bundle) {
// Activityを指定してAdfurikunSdkの初期化
AdfurikunSdk.init(this);
// 広告枠ID・広告タイプを指定し、広告枠を追加します
AdfurikunSdk.addAppId(AdfurikunConst.ADFURIKUN_REWARD_APPID, AdfurikunMovieType.AdType.REWARD);
AdfurikunSdk.addAppId(AdfurikunConst.ADFURIKUN_INTER_APPID, AdfurikunMovieType.AdType.INTERSTITIAL);
AdfurikunSdk.addAppId(AdfurikunConst.ADFURIKUN_NATIVE_AD_FLEX_APPID, AdfurikunMovieType.AdType.NATIVE_AD_FLEX);
}
@Override
protected void onResume() {
super.onResume();
//全ての広告枠について動画広告の準備と動画の再開などを行います
AdfurikunSdk.startLoading();
}
@Override
protected void onPause() {
//全ての広告枠について動画の一時停止などを行います
AdfurikunSdk.stopLoading();
super.onPause();
}
●再生するActivityでAdfurikunSdkの呼び出し(SimpleMovie.java)
@Override
protected void onCreate(Bundle bundle) {
AdfurikunSdk.setActivity(this);
AdfurikunSdk.setAdfurikunMovieListener(mListener);
}
@Override
protected void onResume() {
super.onResume();
//再生する広告枠について動画広告の準備と動画の再開などを行います。
AdfurikunSdk.startLoading(mAppId);
}
@Override
protected void onPause() {
//再生する広告枠について動画の一時停止などを行います
AdfurikunSdk.stopLoading(mAppId);
super.onPause();
}
@Override
protected void onDestroy() {
super.onDestroy();
//AdfurikunSdkからの通知を破棄します
AdfurikunSdk.releaseAdfurikunMovieListener();
}
●動画の準備完了通知を受け取る
// 状態通知リスナーで通知を受ける
AdfurikunMovieListener mListener = new AdfurikunMovieListener(){
@Override
public void onPrepareSuccess(String appId) {
// 動画の再生が可能になりました。
// 状態をフラグなどで管理してください
}
@Override
public void onPrepareFailure(String appId, AdfurikunMovieError error) {
// 広告の読み込みが失敗になりました。
// もう一度広告の読み込みしてください。
}
.....
}
●広告の読み込みを開始する
// 広告読み込み。
AdfurikunSdk.load(mAppId);
●動画の準備完了を判定する
// AdfurikunSdk からでも確認できます。
if ( AdfurikunSdk.isPrepared(mAppId) ) {
// 動画の再生が可能です。
}
●動画再生を開始するトリガーから再生開始
// 例えばButtonのクリックなど
mButton.setOnClickListener ( new OnClickListener() {
@Override
public void onClick (View v) {
if ( AdfurikunSdk.isPrepared(mAppId) ) {
// 再生開始。
AdfurikunSdk.play(mAppId);
}
}
}
●動画の再生開始 / 再生完了 / 再生失敗 の通知を受け取る
// 状態通知リスナーで通知を受ける
AdfurikunMovieListener mListener = new AdfurikunMovieListener(){
.....
@Override
public void onStartPlaying(MovieData data) {
// 動画の再生を開始します。
// 各アドネットワークが用意したActivityが起動して、動画再生が始まります。
}
@Override
public void onFinishedPlaying(MovieData data) {
// 動画の再生が完了しました。
// リワード 付与など、ユーザへの対応を行ってください。
}
@Override
public void onFailedPlaying(MovieData data) {
// 動画の再生が失敗しました。
// 再生開始時にネットワークへ接続していない場合も、失敗として通知します。
}
.....
}
●アプリへの画面復帰の通知を受け取る
// 状態通知リスナーで通知を受ける
AdfurikunMovieListener mListener = new AdfurikunMovieListener(){
.....
@Override
public void onAdClose(MovieData data) {
// 動画広告のActivityが終了しました。
// アプリのActivityが復帰します。
}
}
●広告枠の破棄
AdfurikunSdk.removeAppId(mAppid);