---
title: "React Native SDKでオンボーディングを取得する"
description: "React Native向けAdaptyでオンボーディングを取得する方法を説明します。"
---

Adapty ダッシュボードのビルダーで[オンボーディングのビジュアルをデザイン](design-onboarding)したら、React Nativeアプリに表示できます。まず、以下の手順でプレースメントに関連付けられたオンボーディングとそのビュー設定を取得します。

開始する前に、以下を確認してください：

1. [Adapty React Native SDK](sdk-installation-reactnative) バージョン3.8.0以上をインストール済みであること。
2. [オンボーディングを作成済み](create-onboarding)であること。
3. [プレースメント](placements)にオンボーディングを追加済みであること。

## オンボーディングの取得 \{#fetch-onboarding\}

ノーコードビルダーで[オンボーディング](onboardings)を作成すると、アプリが取得・表示する必要のある設定コンテナとして保存されます。このコンテナはエクスペリエンス全体（表示するコンテンツ、提示方法、クイズの回答やフォーム入力などのユーザー操作の処理）を管理します。また、コンテナは自動的に分析イベントを追跡するため、ビュートラッキングを別途実装する必要はありません。

パフォーマンスを最大化するために、ユーザーに表示する前に画像のダウンロード時間を確保できるよう、オンボーディング設定を早めに取得してください。

オンボーディングを取得するには、`getOnboarding`メソッドを使用します：

```typescript showLineNumbers
try {
    const placementId = 'YOUR_PLACEMENT_ID';
    const locale = 'en';

    const onboarding = await adapty.getOnboarding(placementId, locale);
    // the requested onboarding
} catch (error) {
    // handle the error
}
```

次に、`createOnboardingView`メソッドを呼び出してビューインスタンスを作成します。

:::warning
`createOnboardingView`メソッドの結果は一度しか使用できません。再度使用する必要がある場合は、`createOnboardingView`メソッドを新たに呼び出してください。再作成せずに2回呼び出すと、`AdaptyUIError.viewAlreadyPresented`エラーが発生することがあります。
:::

```typescript showLineNumbers
// for the Adapty SDK < 3.14 – import {createOnboardingView} from 'react-native-adapty/dist/ui';

if (onboarding.hasViewConfiguration) {
    try {
        const view = await createOnboardingView(onboarding);
    } catch (error) {
        // handle the error
    }
} else {
    //use your custom logic
}
```

パラメーター：

| パラメーター | 必須/任意 | 説明 |
|-------------------|--------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **placementId**   | 必須 | 対象の[プレースメント](placements)の識別子。Adapty ダッシュボードでプレースメントを作成する際に指定した値です。 |
| **locale**        | <p>任意</p><p>デフォルト：`en`</p> | <p>オンボーディングのローカライズ識別子。このパラメーターは、マイナス（**-**）文字で区切られた1つまたは2つのサブタグで構成される言語コードを指定します。最初のサブタグは言語、2番目は地域を表します。</p><p></p><p>例：`en`は英語、`pt-br`はブラジルポルトガル語を表します。</p><p>ロケールコードと推奨される使用方法については、[ローカライズとロケールコード](localizations-and-locale-codes)を参照してください。</p> |
| **fetchPolicy**   | デフォルト：`.reloadRevalidatingCacheData` | <p>デフォルトでは、SDKはサーバーからデータを読み込もうとし、失敗した場合はキャッシュデータを返します。ユーザーが常に最新データを取得できるため、このオプションを推奨します。</p><p></p><p>ただし、ユーザーのインターネット接続が不安定だと思われる場合は、`.returnCacheDataElseLoad`を使用してキャッシュデータが存在すれば返すことを検討してください。この場合、ユーザーが最新データを取得できないことがありますが、接続状況に関わらず読み込み時間が短縮されます。キャッシュは定期的に更新されるため、セッション中のネットワークリクエストを避けるために安全に使用できます。</p><p></p><p>キャッシュはアプリの再起動後も保持され、アプリの再インストールまたは手動クリーンアップ時にのみ消去されます。</p><p></p><p>Adapty SDKはオンボーディングをローカルに2層で保存します：上記の定期更新キャッシュとフォールバックオンボーディングです。また、CDNを使用してオンボーディングをより速く取得し、CDNが到達不能な場合に備えてスタンドアロンのフォールバックサーバーも使用します。このシステムは、インターネット接続が乏しい場合でも、常に最新バージョンのオンボーディングを取得できるよう設計されています。</p> |
| **loadTimeoutMs** | デフォルト：5秒 | <p>このメソッドのタイムアウトを制限する値です。タイムアウトに達した場合、キャッシュデータまたはローカルフォールバックが返されます。</p><p>なお、このメソッドは内部で複数のリクエストで構成される場合があるため、まれに`loadTimeout`で指定した時間よりも若干遅くタイムアウトすることがあります。</p> |

レスポンスパラメーター：

| パラメーター | 説明 |
|:----------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------|
| Onboarding | オンボーディング識別子と設定、リモートコンフィグ、その他いくつかのプロパティを含む[`AdaptyOnboarding`](https://react-native.adapty.io/interfaces/adaptyonboarding)オブジェクト。 |

## デフォルトオーディエンスのオンボーディングで取得を高速化する \{#speed-up-onboarding-fetching-with-default-audience-onboarding\}

通常、オンボーディングはほぼ即時に取得されるため、この処理を高速化することを心配する必要はありません。ただし、オーディエンスとオンボーディングが多数あり、ユーザーのインターネット接続が遅い場合、オンボーディングの取得に予想以上の時間がかかることがあります。そのような状況では、オンボーディングをまったく表示しないよりも、スムーズなユーザー体験を確保するためにデフォルトのオンボーディングを表示したい場合があります。

これに対応するために、`getOnboardingForDefaultAudience`メソッドを使用できます。このメソッドは、指定されたプレースメントの**All Users**オーディエンス向けオンボーディングを取得します。ただし、上記の[オンボーディングの取得](#fetch-onboarding)セクションで説明した`getOnboarding`メソッドを使用することが推奨アプローチであることを理解することが重要です。

:::warning
`getOnboardingForDefaultAudience`の代わりに`getOnboarding`の使用を検討してください。後者には重要な制限があります：

- **互換性の問題**：複数のアプリバージョンをサポートする際に問題が生じる可能性があり、後方互換性のあるデザインが必要になるか、古いバージョンで正しく表示されないことを受け入れる必要があります。
- **パーソナライゼーションなし**：「All Users」オーディエンス向けのコンテンツのみを表示し、国、アトリビューション、カスタム属性に基づくターゲティングができません。

取得速度の向上がこれらのデメリットを上回る場合は、以下に示す`getOnboardingForDefaultAudience`を使用してください。それ以外の場合は、[上記](#fetch-onboarding)の`getOnboarding`を使用してください。
:::

```typescript showLineNumbers
try {
    const placementId = 'YOUR_PLACEMENT_ID';
    const locale = 'en';

    const onboarding = await adapty.getOnboardingForDefaultAudience(placementId, locale);
    // the requested onboarding
} catch (error) {
    // handle the error
}
```

パラメーター：

| パラメーター | 必須/任意 | 説明 |
|---------|--------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **placementId** | 必須 | 対象の[プレースメント](placements)の識別子。Adapty ダッシュボードでプレースメントを作成する際に指定した値です。 |
| **locale** | <p>任意</p><p>デフォルト：`en`</p> | <p>オンボーディングのローカライズ識別子。このパラメーターは、マイナス（**-**）文字で区切られた1つまたは2つのサブタグで構成される言語コードを指定します。最初のサブタグは言語、2番目は地域を表します。</p><p></p><p>例：`en`は英語、`pt-br`はブラジルポルトガル語を表します。</p><p>ロケールコードと推奨される使用方法については、[ローカライズとロケールコード](localizations-and-locale-codes)を参照してください。</p> |
| **fetchPolicy** | デフォルト：`.reloadRevalidatingCacheData` | <p>デフォルトでは、SDKはサーバーからデータを読み込もうとし、失敗した場合はキャッシュデータを返します。ユーザーが常に最新データを取得できるため、このオプションを推奨します。</p><p></p><p>ただし、ユーザーのインターネット接続が不安定だと思われる場合は、`.returnCacheDataElseLoad`を使用してキャッシュデータが存在すれば返すことを検討してください。この場合、ユーザーが最新データを取得できないことがありますが、接続状況に関わらず読み込み時間が短縮されます。キャッシュは定期的に更新されるため、セッション中のネットワークリクエストを避けるために安全に使用できます。</p><p></p><p>キャッシュはアプリの再起動後も保持され、アプリの再インストールまたは手動クリーンアップ時にのみ消去されます。</p><p></p><p>Adapty SDKはオンボーディングをローカルに2層で保存します：上記の定期更新キャッシュとフォールバックオンボーディングです。また、CDNを使用してオンボーディングをより速く取得し、CDNが到達不能な場合に備えてスタンドアロンのフォールバックサーバーも使用します。このシステムは、インターネット接続が乏しい場合でも、常に最新バージョンのオンボーディングを取得できるよう設計されています。</p> |