5-1. 動画ネイティブ広告

アドフリくん動画ネイティブ広告には2種類の実装方法があります。ご利用用途に合わせてどちらの実装方法を使うかお選びいただけます。

動画ネイティブ広告(API)

ネイティブ広告の情報を取得するタイプの実装方法です。取得した広告情報を利用して自分好みに広告をレイアウトしたい場合はこちらの実装方法をご利用ください。

動画ネイティブ広告(View)

ネイティブ広告の情報の取得とレイアウトまでSDK側で行うタイプの実装方法です。ユーザは取得したViewを表示するだけで広告を表示することができるため、実装の手間を省くことができます。レイアウトの種類は現時点では一種類しかありませんが、順次追加していく予定となります。

5-2. 動画ネイティブ広告(API) 実装方法

5-2-1. 広告枠の作成

動画ネイティブ広告専用の広告枠が必要となります。アドフリくん管理画面の [広告枠]タブ > [広告枠 追加] > [バナー種類] で「動画ネイティブ広告」を選択します。

Nativead

5-2-2. インスタンスの作成

“jp.tjkapp.adfurikunsdk.AdfurikunMovieNativeAd” をインポートして、アドフリくん管理画面で発行された広告枠IDと、広告を表示するActivityでAdfurikunMovieNativeAdクラスのインスタンスを生成します。

// 広告枠IDとActivityとコールバックを設定(コンストラクタ)
new AdfurikunMovieNativeAd (Activity activity, String appId, AdfurikunMovieNativeAdListener listener)

各引数の説明

引数 説明
Activity activity Activity
String appId 広告枠ID
AdfurikunMovieNativeAdListener listener 広告のloadの成功 or 失敗後に呼ばれるコールバック

5-2-3. 広告の読み込み

下記メソッドを呼ぶことで各アドネットワークから広告情報の読み込みを開始します。

//アドネットワークから広告の読み込みを開始
public void load ()

5-2-4. 通知リスナー

リスナーの設定

loadの成功 / 失敗の通知を行うため、通知リスナーを登録して内容に応じた処理を行ってください。(このリスナーはAdfurikunMovieNativeAdクラスのインスタンス生成時にも登録できます。 )

//状態通知リスナーを登録する
public void setAdfurikunMovieNativeAdListener (AdfurikunMovieNativeAdListener listener)
引数 説明
AdfurikunMovieNativeAdListener loadの成功 or 失敗を受け取るイベントリスナー

リスナーで呼び出されるメソッド

AdfurikunMovieNativeAdListenerは、loadの成功 / 失敗に応じて、以下のメソッドがメインスレッドにて呼び出されます。

// 広告のロードが成功した
public void onNativeMovieAdLoadFinish (AdfurikunMovieNativeAdInfo adInfo, String appId)

// 広告のloadに成功した場合にメインスレッドでコールバックされます
// このコールバックを介して、表示に必要な広告情報を取得できます
// 広告のロードに失敗した
public void onNativeMovieAdLoadError (AdfurikunMovieError error, String appId)

// 広告の取得に失敗した場合にメインスレッドでコールバックされます
// エラーの詳細についてはAdfurikunMovieErrorを参照してください。

各メソッドで返却されるパラメータの説明

パラメータ名 説明
AdfurikunMovieNativeAdInfo adInfo アドネットワークから取得した広告の情報
AdfurikunMovieError error エラーコードなどのエラーに関する情報が格納されているオブジェクト
String appId 広告枠ID

5-2-5. 動画広告を表示する

表示のために必要な情報

5-2-4のコールバックを介して渡されたAdfurikunMovieNativeAdInfoは以下のインスタンスメソッドを介して、広告を再生するのに必要な情報を返します。

メソッド 説明
getMovieAdUrl 動画広告のURLを取得(端末にダウンロード済み、file://形式のURL)
getImageUrl 画像のURLを取得(端末にダウンロード済み、file://形式のURL)
getTitle 動画広告のタイトル
getDesc 動画広告の説明文

トラッキング

広告の再生を開始したら、広告の取得成功時にコールバックで取得できるAdfurikunMovieNativeAdInfoオブジェクトの以下のインスタンスメソッドを利用して各種トラッキングを実行してください。

動画再生開始・終了時

// インプレッションを計測
public void trackMovieImpression();

// 動画の再生開始を計測
public void trackMovieStart();

// 動画の再生終了を計測
public void trackMovieFinish();

広告がタップされたとき

// クリック先のページに遷移 & 広告のクリックを計測
public void launchClickTarget( );

5-2-6. SDKの内部状態の管理

内部状態をActivityのライフサイクルに合わせて管理するため、5-2-2で作成したインスタンスの以下のメソッドを、必要な箇所に実装します。全て必須です。

メソッド 説明
remove() 状態管理の破棄を行います。 ActivityのonDestroy()の最初、もしくは明示的に破棄したい時に実行してください。実行後に再開することはできません。不要になった場合は、必ず動画ネイティブ広告のインスタンスを破棄してください。

5-3. 動画ネイティブ広告(API) 実装例

■実装例 (詳細は、サンプルアプリ・AdfurikunMovieRewardSampleのSimpleMovieNativeAdを参照)

●動画ネイティブ広告(API)のインスタンス生成と通知リスナーの登録および広告の読み込み
// AdfurikunMovieNativeAdのインスタンス変数を定義
AdfurikunMovieNativeAd mNativeAd;
// 状態通知リスナーを定義
AdfurikunMovieNativeAdListener mListener = new AdfurikunMovieNativeAdListener() {
 …..
}
@Override
protected void onCreate(Bundle bundle) {
  // 広告枠ID・Activity・通知リスナーを指定し、動画ネイティブ広告 (API)のインスタンスを生成
  mNativeAd = new AdfurikunMovieNativeAd(this, ****(広告枠ID)****, mListener);
  // 状態通知リスナーを更新
  mNativeAd.setAdfurikunMovieNativeAdListener(mListener);

  // 広告の読み込み
  mNativeAd.load();
}
●動画情報の取得䛾成功 or 失敗通知を受け取る
AdfurikunMovieNativeAdInfo mNativeAdInfo;
int mLoadRetryCount = 0;
// 状態通知リスナーで通知を受ける
AdfurikunMovieNativeAdListener mListener = new AdfurikunMovieNativeAdListener() {
 @Override
 public void onNativeMovieAdLoadFinish(AdfurikunMovieNativeAdInfo adInfo, String appId) {
 // 広告情報を取得する
 mNativeAdInfo = adInfo;
 // 取得した広告情報を利用して、動画広告を表示する処理を実装する
 }
 @Override
 public void onNativeMovieAdLoadError(AdfurikunMovieError errorObj, String appId) {
   // エラー䛾確認および広告情報䛾取得䛾リトライ処理
   if (mLoadRetryCount < 5) {
     mNativeAd.load();
   }
   mLoadRetryCount++;
 }
 ....
}
●Activityのライフサイクルに合わせて状態を管理
@Override
protected void onDestroy() {
 mNativeAd.remove(); // 破棄して終了
 super.onDestroy();
}

実装の際の注意点

動画の読み込みに関して

初回の動画の読み込みは遅いので、初回アプリ起動時のタイミング(MainActivityのonCreate)に事前にload()を呼び出して、コールバックを介して広告の情報を取得しておくと、それ以降のload()では、キャッシュが効くので広告の読み込みがスムーズになります。

トラッキングに関して

trackMovieImpression、trackMovieStartに関しては、動画の再生開始時に呼ぶようにしてください。
trackMovieFinishは、動画の再生終了時に呼ぶようにしてください。

5-4. 動画ネイティブ広告(View) 実装方法

5-4-1. 広告枠の作成

5-2-1を参考に広告枠を作成してください。すでに、動画ネイティブ広告(API)用に広告枠を作成している場合は、そちらの広告枠をご利用ください

5-4-2. インスタンスの作成

“jp.tjkapp.adfurikunsdk.moviereward.AdfurikunMovieNativeAdView” をインポートして、xmlでAdfurikunMovieNativeAdViewのlayout_width、layout_heightを設定し、findViewByIdで呼び出してインスタンスを生成します

// xml側
<jp.tjkapp.adfurikunsdk.moviereward.AdfurikunMovieNativeAdView
android:id="@+id/adfurikun_native_ad_view"
android:layout_width="160dp"
android:layout_height="90dp" />

// java側
adfurikunMovieNativeAdView = (AdfurikunMovieNativeAdView) findViewById(R.id.adfurikun_native_ad_view);

※ 表示枠のサイズは可変ですが、アスペクト比が 16 : 9の固定となります。 そのため、上述したアスペクト比率になる表示枠を xml側で定義してください。

5-4-3. インスタンスの初期情報の設定

アドフリくんの管理画面で発行された広告枠ID、表示するレイアウトの種類および状態通知リスナーなどの初期情報の設定を行います

// 広告枠IDなどの初期情報の設定
public void init(Activity activity, String app_id, LayoutPattern layout_pattern, AdfurikunMovieNativeAdViewListener listener)

各引数の説明

引数 説明
Activity activity Activity
String appId 広告枠ID
AdfurikunMovieNativeAdView.LayoutPattern layout_pattern 表示するレイアウトの種類
AdfurikunMovieNativeAdViewListener listener 状態通知リスナー

レイアウトのパターン

現状用意しているレイアウトの種類は、以下の一種類のみとなります。 (順次、追加予定となります)

レイアウト名 説明
LAYOUT_PATTERN_1 xml側で指定した表示枠全体に、動画広告が表示されるフォーマットとなっております。Viewのサイズを変更することで、適切なサイズに伸縮することが可能です。表示される動画のアスペクト比が16 : 9のため、その比率になるようにサイズを設定してください

5-4-4. 広告の表示

下記メソッドを呼ぶことで、loadに成功した場合、5-4-2でxml側で指定した表示枠の中に広告が表示されます。

// 広告を表示する

public void load()

5-4-5. 通知リスナー

リスナーの設定

loadの成功 / 失敗の通知を行うため、通知リスナーを登録して内容に応じた処理を行ってください。(このリスナーはinit時にも登録できます。)

//状態通知リスナーを登録する
public void setAdfurikunMovieNativeAdViewListener (AdfurikunMovieNativeAdViewListener listener)
引数 説明
AdfurikunMovieNativeAdViewListener loadの成功 or 失敗を受け取るイベントリスナー

リスナーで呼び出されるメソッド

AdfurikunMovieNativeAdViewListenerは、loadの成功 / 失敗に応じて、以下のメソッドがメインスレッドにて呼び出されます

// 広告のロードが成功した
public void onNativeMovieAdViewLoadFinish (String appId)

// 広告の取得に成功した場合にメインスレッドでコールバックされます
// このコールバックが実行された時点で広告のレイアウトまで完了し、動画再生も自動で開始します
// 広告のロードに失敗した
public void onNativeMovieAdViewLoadError (AdfurikunMovieError error, String appId)

// 広告の取得に失敗した場合にメインスレッドでコールバックされます
// エラーの詳細についてはAdfurikunMovieErrorを参照してください。

各メソッドで返却されるパラメータの説明

パラメータ名 説明
AdfurikunMovieError error エラーコードなどのエラーに関する情報が格納されているオブジェクト
String appId 広告枠ID

5-4-6. 広告の表示制御およびインスタンスの状態管理

想定する状況に応じて、下記のAdfurikunMovieNativeAdViewインスタンスメソッドを使用し、View広告の表示制御を行います

メソッド名 説明
playVideo 広告の再生を再開します
pauseVideo 広告の再生を一時停止します
onPause SDKの処理を一時停止します。 ActivityのonPause()で使用します。
必ず実行するようにしてください。
onResume SDKの処理を再開します。 ActivityのonResume()で使用します。
必ず実行するようにしてください。
remove SDKが使用しているリソースの破棄を行います。ActivityのonDestroy()の最初、もしくはレイアウトを破棄する時に使用します。
※レイアウトが不要になった場合は、必ず実行するようにしてください。なお、remove()実行後に再開する事は出来ません。必要な場合は、もう一度AdfurikunMovieNativeAdViewの作成を行ってください。

5-4-7. 広告情報のpreload

AdfurikunMovieNativeAdViewUtilのクラスメソッドのpreloadで、事前に動画広告のレイアウトに必要な情報を読み込んでおくことが可能です。

// 広告のプレロード
public static void preload (Activity activity, String appId)
引数 説明
Activity activity Activity
String appId 広告枠ID

5-5. 動画ネイティブ広告(View) 実装例

■実装例 (詳細は、サンプルアプリ・AdfurikunMovieRewardSampleのSimpleMovieNativeAdViewを参照)

●動画ネイティブ広告(View)のインスタンス生成と通知リスナーの登録および広告の再生

// AdfurikunMovieNativeAdViewのインスタンス変数を定義
AdfurikunMovieNativeAdView mNativeAdView;
// 状態通知リスナーを定義
AdfurikunMovieNativeAdViewListener mListener = new AdfurikunMovieNativeAdViewListener() {
  ....
}
@Override
protected void onCreate(Bundle bundle) {
  // 広告枠ID・Activity・通知リスナーを指定し、動画ネイティブ広告 (View)のインスタンスを生成
  mNativeAdView = (AdfurikunMovieNativeAdView) findViewById(R.id.native_movie_ad_view);
  // 初期化
  mNativeAdView.init(this, ****(広告枠ID)****, AdfurikunMovieNativeAdView.LayoutPattern.LAYOUT_PATTERN_1, this);
  // 状態通知リスナーを更新
  mNativeAdView.setAdfurikunMovieNativeAdViewListener(mListener);
  // 広告の読み込みおよび再生
  mNativeAdView.load();
}

●xml側
<jp.tjkapp.adfurikunsdk.moviereward.AdfurikunMovieNativeAdView
android:id="@+id/native_movie_ad_view"
android:layout_width="160dp"
android:layout_height="90dp" />
●動画ネイティブ広告(View)の表示の成功 or 失敗通知を受け取る
// 状態通知リスナーで通知を受ける
AdfurikunMovieNativeAdViewListener mListener = new AdfurikunMovieNativeAdViewListener() {
 @Override
 public void onNativeMovieAdViewLoadFinish(String appId) {
 // 広告の表示が成功したときの処理を記述
 }
 @Override
 public void onNativeMovieAdLoadError(AdfurikunMovieError errorObj, String appId) {
   // エラーの確認および広告表示のリトライ処理
   if (mLoadRetryCount < 5) {
     mNativeAdView.load();
   }
   mLoadRetryCount++;
 }
 .....
}
●Activityのライフサイクルに合わせて状態を管理
@Override
protected void onResume() {
 super.onResume();
 mNativeAdView.onResume(); // 再開
}
@Override
protected void onPause() {
 super.onPause();
 mNativeAdView.onPause(); // 一時停止
}
@Override
protected void onDestroy() {
 mNativeAdView.remove(); // 破棄して終了
 super.onDestroy();
}

実装の際の注意点

動画広告の切り替えに関して

表示中の広告を、別の広告に切り替えるためには、広告が表示されているインスタンスに対して、再度load()を呼び出す必要があります。
load()しなければ、常に同じ広告が再生され続けます。

インプレッションの発生タイミング

インプレッションはload()をcallして、成功のコールバックが返されたタイミング(初回動画再生時)で自動的に発生します。動画リプレイ時には発生しません。

再生のタイミング

load()をcallして、成功のコールバックが返されたタイミングで自動的に動画の再生もされます。再生のタイミングを制御したい場合は、pauseVideo()で動画の再生を一時停止して、再生させたいタイミングでplayVideo()をcallしてください。ただし、成功のコールバックを返されたタイミングで強制的にインプレッションは発生してしまいます。(コールバックが返されたタイミングではなく、再生のタイミングでインプレッションが発生するように、以降のバージョンで修正予定)

results matching ""

    No results matching ""