まず、TJPlacement
をインポートします:
import Tapjoy, { TJPlacement } from "tapjoy-react-native-sdk";
TJPlacement インスタンスを、プレイスメント名を指定して作成します。 コードで指定するプレイスメント名がダッシュボードのプレイスメント名と完全に一致するようにして下さい。 また、デリゲートを実装してコールバックを受け取ることが可能です(詳細は後述)。
let placement = new TJPlacement("Placement Name");
次に、コンテンツをリクエストします。
placement.requestContent();
注意: コンテンツをリクエストする前に、Tapjoy connect が成功している事を確認して下さい。 onConnectSuccess コールバックを受け取る前にコンテンツをリクエストしないで下さい。
良好なユーザー体験を実現するために、ユーザーへコンテンツを表示する時点に先立って コンテンツをリクエストして下さい。 例えば、アプリのメインメニューのボタンでプレイスメントを呼び出す場合、アプリケーションを起動しTapjoy connectが成功した直後にコンテンツをリクエストする事をお勧めします。 ボタンが押されるまでコンテンツをリクエストしなかった場合、ユーザーはコンテンツがロードされるまでロード中の画面を見る事になります。 広告によるマネタイズでは、こうした待ち時間があるとユーザーは広告への興味が薄れ、結果として収益性が下がります。
コンテンツリクエストステータスのフィードバックを得るには、下記コールバックを実装します:
placement.on(TJPlacement.REQUEST_DID_SUCCEED, (placement: TJPlacement) => { });
placement.on(TJPlacement.REQUEST_DID_FAIL, (placement: TJPlacement) => { });
placement.on(TJPlacement.CONTENT_IS_READY, (placement: TJPlacement) => { });
placement.on(TJPlacement.CONTENT_DID_APPEAR, (placement: TJPlacement) => { });
placement.on(TJPlacement.CONTENT_DID_DISAPPEAR, (placement: TJPlacement) => { });
コンテンツを表示するには、placement.showContent();
を呼び出します。
showContent() を呼び出す前に、コンテンツの表示準備ができているか確認するようにして下さい:
if (placement.isContentReady()) {
placement.showContent();
}
注意: 動画を含む可能性のあるプレイスメントを表示する際は、動画とアプリの音が衝突する可能性があるため、アプリの音をミュートするようにして下さい。
通常、コンテンツをユーザーに表示する前に、CONTENT_IS_READY
コールバックが呼ばれるまで待つことをお勧めします。これにより、コンテンツが実際にデバイス上にあることが確認でき、遅延なくユーザーに表示できます。 また、上記の例のように、p.isContentReady が true を返す事をチェックするという方法でも同様の効果を得られます。
注意: 正しい機能動作を保証するためには、プレイスメントオブジェクトを作成する前に Tapjoy connect 呼び出しが行われ、成功している必要があります。
プレイスメントのコンテンツをユーザーに表示した後、次に同じプレイスメントのコンテンツを表示する場合にはコンテンツのリクエストを再度行う(つまり、placement.requestContent(); を再度呼び出す)必要があります。単純に placement.showContent(); を再度呼び出すことはできません。コンテンツリクエストの前にコンテンツの表示を試みた場合、表示に失敗します。
動画コンテンツを持つプレイスメントの場合、再リクエストを行う適切なタイミングはコンテンツが表示された直後です。これにより、動画再生中に次の動画をプリロードしておく事が可能となります。コンテンツの表示終了まで再リクエストを遅らせた場合、ユーザーがすぐに次の動画を観ようとした場合に待ち時間が発生してしまいます。
各プレイスメントの "呼びだし地点" を Tapjoy に伝えられるようになりました。次のプリセット値から選択できます:
TJEntryPointUnknown
TJEntryPointOther
TJEntryPointMainMenu
TJEntryPointHud
TJEntryPointExit
TJEntryPointFail
TJEntryPointComplete
TJEntryPointInbox
TJEntryPointInit
TJEntryPointStore
呼びだし地点 はプレイスメントオブジェクトを作成した後、コンテンツをリクエストする前に設定します:
let placement = new TJPlacement("myPlacement");
placement.setEntryPoint(TJEntryPoint.TJEntryPointMainMenu);
placement.requestContent();