# SDK /SDK

> TJPlacement を使用して広告プレースメントをリクエストして表示する方法については、React Native SDK ガイドをインポートしてください。これには、コンテンツの事前キャッシュやスムーズなユーザー体験のためのコールバックの処理などが含まれます。

## プレースメントのリクエスト##requesting-a-placement

まず、以下を実行して `TJPlacement` をインポートします。

```javascript
import Tapjoy, { TJPlacement } from "tapjoy-react-native-sdk";
```

`TJPlacement` のインスタンスを作成し、プレースメント名で初期化します。コード内のプレースメント名の文字列が、ダッシュボード内のプレースメント名と正確に一致していることを確認します。コールバックを受け取るデリゲートを実装することもできます (後述)。

```javascript
let placement = new TJPlacement("Placement Name");
```

これでコンテンツをリクエストできます。

```javascript
placement.requestContent();
```

コンテンツをリクエストする前に、Tapjoy の接続呼び出しが成功したことを確認してください。`onConnectSuccess` コールバックを受け取る前にリクエストを行わないでください。

## コンテンツの事前キャッシュ##pre-caching-the-content

最高のユーザー体験を提供するために、ユーザーにそのコンテンツが表示されるコンテンツを事前にリクエストします。例えば、プレースメントがメインメニューのボタンの場合、アプリケーションの起動時に、Tapjoy Connect の呼び出しが成功した直後にコンテンツをリクエストすることをお勧めします。コンテンツをリクエストするまで待つと、多くの場合、ユーザーはコンテンツがロードされるまで、ローディングスピナーを見ながら待たされることになります。広告の場合、ユーザーが広告に関与する可能性が低くなり、収益を得る可能性が低くなります。

## コールバック##callbacks

コンテンツリクエストの状態に関するフィードバックを取得するには、以下のコールバックを実装します。

```javascript
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) => { });
```

## プレースメントの表示##displaying-a-placement

コンテンツを表示するには、`placement.showContent();` を使用します。

`showContent()` の前にコンテンツの準備ができたことを確認します。

```javascript
if (placement.isContentReady()) {
   placement.showContent();
}
```

お勧めのベストプラクティスは、ビデオを含む可能性のあるプレースメントからコンテンツを表示する前にアプリのオーディオをミュートすることです。ミュートしないと、ビデオとアプリのオーディオが競合する可能性があります。

多くの場合、`CONTENT_IS_READY` コールバックが発生するまで待ってから、ユーザーにコンテンツを表示することをお勧めします。こうすることにより、コンテンツが実際にデバイス上にあること、遅延なくユーザーに表示できることを確認できます。もう 1 つの同等の方法は、上の例のように、`p.isContentReady()` が true かどうかを確認することです。

正しく動作するには、プレースメントオブジェクトを作成する前に、Tapjoy の接続呼び出しを行って成功する必要があります。

## コンテンツの再リクエスト##re-requesting-the-content

プレースメントからユーザーにコンテンツを正常に表示したら、コンテンツを再度リクエストして (例えば `placement.requestContent();` を再度呼び出し)、別のコンテンツ単位でそのプレースメントを "リロード" する必要があります。`placement.showContent();` を再度呼び出すことはできません。コンテンツをリクエストする前にコンテンツを表示しようとすると、コンテンツの表示に失敗します。

動画コンテンツを想定しているプレースメントの場合、コンテンツを再リクエストする適切なタイミングは、コンテンツの表示直後です。ユーザーが現在の動画を見ている間に、次の動画が事前ロードされます。コンテンツが却下されるまで待ってからコンテンツを再リクエストすると、ユーザーがすぐに別の動画を視聴しようとした場合は遅延が発生します。

## エントリーポイントの設定##setting-the-entry-point

任意で、各プレースメントの "エントリーポイント" を Tapjoy に伝えることができます。以下のさまざまなプリセット値から選択できます。

```javascript
TJEntryPointUnknown
TJEntryPointOther
TJEntryPointMainMenu
TJEntryPointHud
TJEntryPointExit
TJEntryPointFail
TJEntryPointComplete
TJEntryPointInbox
TJEntryPointInit
TJEntryPointStore
```

プレースメントオブジェクトの作成後、かつコンテンツをリクエストする前にエントリーポイントを設定します。

```javascript
let placement = new TJPlacement("myPlacement");
placement.setEntryPoint(TJEntryPoint.TJEntryPointMainMenu);
placement.requestContent(); 
```
