TJPlacement インスタンスを、プレイスメント名を指定して作成します。 コードで指定するプレイスメント名がダッシュボードのプレイスメント名と完全に一致するようにして下さい。 また、デリゲートを実装してコールバックを受け取ることが可能です(詳細は後述)。
TJPlacement placement = await TJPlacement.getPlacement(...);
次に、コンテンツをリクエストします。
placement.requestContent();
注意: コンテンツをリクエストする前に、Tapjoy connect が成功している事を確認して下さい。 onConnectSuccess コールバックを受け取る前にコンテンツをリクエストしないで下さい。
良好なユーザー体験を実現するために、ユーザーへコンテンツを表示する時点に先立って コンテンツをリクエストして下さい。 例えば、アプリのメインメニューのボタンでプレイスメントを呼び出す場合、アプリケーションを起動しTapjoy connectが成功した直後にコンテンツをリクエストする事をお勧めします。 ボタンが押されるまでコンテンツをリクエストしなかった場合、ユーザーはコンテンツがロードされるまでロード中の画面を見る事になります。 広告によるマネタイズでは、こうした待ち時間があるとユーザーは広告への興味が薄れ、結果として収益性が下がります。
コンテンツリクエストステータスのフィードバックを得るには、下記コールバックを実装します:
TJPlacement placement = await TJPlacement.getPlacement(placementName: 'placementName',
onRequestSuccess: (placement) {},
onRequestFailure: (placement, error) {},
onContentReady: (placement) {},
onContentShow: (placement) {},
onContentDismiss: (placement) {}
);
コンテンツを表示するには、placement.showContent();
を呼び出します。
showContent() を呼び出す前に、コンテンツの表示準備ができているか確認するようにして下さい:
if (await placement.isContentReady()) {
placement.showContent();
}
注意: 動画を含む可能性のあるプレイスメントを表示する際は、動画とアプリの音が衝突する可能性があるため、アプリの音をミュートするようにして下さい。
通常、コンテンツをユーザーに表示する前に、onContentReady
コールバックが呼ばれるまで待つことをお勧めします。これにより、コンテンツが実際にデバイス上にあることが確認でき、遅延なくユーザーに表示できます。 また、上記の例のように、p.isContentReady が true を返す事をチェックするという方法でも同様の効果を得られます。
注意: 正しい機能動作を保証するためには、プレイスメントオブジェクトを作成する前に Tapjoy connect 呼び出しが行われ、成功している必要があります。
プレイスメントのコンテンツをユーザーに表示した後、次に同じプレイスメントのコンテンツを表示する場合にはコンテンツのリクエストを再度行う(つまり、placement.requestContent(); を再度呼び出す)必要があります。単純に placement.showContent(); を再度呼び出すことはできません。コンテンツリクエストの前にコンテンツの表示を試みた場合、表示に失敗します。
各プレイスメントの "呼びだし地点" を Tapjoy に伝えられるようになりました。次のプリセット値から選択できます:
TJEntryPoint.entryPointUnknown;
TJEntryPoint.entryPointOther
TJEntryPoint.entryPointMainMenu
TJEntryPoint.entryPointHUD
TJEntryPoint.entryPointExit
TJEntryPoint.entryPointFail
TJEntryPoint.entryPointComplete
TJEntryPoint.entryPointInbox
TJEntryPoint.entryPointInit
TJEntryPoint.entryPointStore
呼びだし地点 はプレイスメントオブジェクトを作成した後、コンテンツをリクエストする前に設定します:
TJPlacement placement = await TJPlacement.getPlacement("myPlacement");
placement.setEntryPoint(TJEntryPoint.entryPointMainMenu);
placement.requestContent();