# SDK /SDK

> SDK ガイドを使用して、Tapjoy の広告プレースメントを Flutter にリクエストおよび表示する方法を説明します。初期化とコールバックを処理するお勧めの方法も紹介します。

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

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

```dart
TJPlacement placement = await TJPlacement.getPlacement();
```

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

```dart
placement.requestContent();
```

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

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

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

## コールバック##callbacks

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

```dart
TJPlacement placement = await TJPlacement.getPlacement(placementName: 'placementName',
    onRequestSuccess: (placement) {},
    onRequestFailure: (placement, error) {},
    onContentReady: (placement) {},
    onContentShow: (placement) {},
    onContentDismiss: (placement) {}
);
```

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

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

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

```dart
if (await placement.isContentReady()) {
  placement.showContent();
}
```

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

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

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

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

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

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

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

```dart
TJEntryPoint.entryPointUnknown;
TJEntryPoint.entryPointOther
TJEntryPoint.entryPointMainMenu
TJEntryPoint.entryPointHUD
TJEntryPoint.entryPointExit
TJEntryPoint.entryPointFail
TJEntryPoint.entryPointComplete
TJEntryPoint.entryPointInbox
TJEntryPoint.entryPointInit
TJEntryPoint.entryPointStore
```

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

```dart
TJPlacement placement = await TJPlacement.getPlacement("myPlacement");
placement.setEntryPoint(TJEntryPoint.entryPointMainMenu);
placement.requestContent(); 
```
