オンボーディングとその設定を取得する
SDK v4 以降では、オンボーディングのより強力な代替手段としてフローを構築できます。オンボーディングが WebView 内で動作するのに対し、フローはデバイス上でネイティブにレンダリングされるため、よりスムーズなアニメーション、一貫した iOS のルック&フィール、高速な読み込み、WebView ランタイムへの依存がなくなります。詳しくはフローとペイウォールの取得およびフローとペイウォールの表示をご覧ください。
Adapty ダッシュボードのビルダーでオンボーディングのビジュアル部分をデザインしたら、モバイルアプリに表示できます。このプロセスの最初のステップは、プレースメントに関連付けられたオンボーディングとそのビュー設定を取得することです。詳細は以下をご覧ください。
始める前に、以下を確認してください。
- Adapty iOS、Android、React Native、または Flutter SDK バージョン 3.8.0 以降をインストール済みであること。
- オンボーディングを作成済みであること。
- オンボーディングをプレースメントに追加済みであること。
オンボーディングの取得
オンボーディングをノーコードビルダーで作成すると、アプリが取得・表示する必要のあるコンテナとして保存されます。このコンテナは、表示するコンテンツ、表示方法、ユーザーの操作(クイズの回答やフォームの入力など)の処理方法といった、すべての体験を管理します。また、コンテナは分析イベントを自動的に追跡するため、別途ビュートラッキングを実装する必要はありません。
パフォーマンスを最大限に発揮するため、ユーザーに表示する前に画像が十分にダウンロードされるよう、早めにオンボーディングの設定を取得してください。
オンボーディングを取得するには、getOnboarding メソッドを使用します:
do {
let onboarding = try await Adapty.getOnboarding(placementId: "YOUR_PLACEMENT_ID")
// the requested onboarding
} catch {
// handle the error
}
パラメーター:
| パラメーター | 必須/任意 | 説明 |
|---|---|---|
| placementId | 必須 | 対象のプレースメントの識別子。Adapty ダッシュボードでプレースメントを作成する際に指定した値です。 |
| locale | 任意 デフォルト: | オンボーディングのローカライズ識別子。このパラメーターは、マイナス(-)文字で区切られた1つまたは2つのサブタグで構成された言語コードを指定します。最初のサブタグは言語、2番目のサブタグは地域を表します。 例: ロケールコードおよび推奨される使用方法については、ローカライズとロケールコードを参照してください。 |
| fetchPolicy | デフォルト: .reloadRevalidatingCacheData | デフォルトでは、SDK はサーバーからデータを読み込もうとし、失敗した場合はキャッシュされたデータを返します。このオプションを推奨します。ユーザーが常に最新のデータを取得できるためです。 ただし、ユーザーのインターネット接続が不安定な場合は、 キャッシュはアプリを再起動しても保持され、アプリの再インストール時または手動でクリアした場合にのみ削除されます。 Adapty SDK はオンボーディングをローカルに2層構造で保存します。上述の定期更新キャッシュとフォールバックオンボーディングです。また、オンボーディングをより高速に取得するためにCDNを使用し、CDNが利用できない場合に備えてスタンドアロンのフォールバックサーバーも用意しています。このシステムは、インターネット接続が不安定な状況でも信頼性を確保しながら、常に最新バージョンのオンボーディングを取得できるよう設計されています。 |
| loadTimeout | デフォルト: 5秒 | このメソッドのタイムアウト上限を設定します。タイムアウトに達した場合、キャッシュデータまたはローカルフォールバックが返されます。 内部的に複数のリクエストで構成される場合があるため、稀にこのメソッドが |
レスポンスパラメーター:
| パラメーター | 説明 |
|---|---|
| Onboarding | AdaptyOnboarding オブジェクト。オンボーディングの識別子と設定、リモートコンフィグ、その他のプロパティを含みます。 |
デフォルトオーディエンスのオンボーディングでフェッチを高速化する
通常、オンボーディングはほぼ瞬時にフェッチされるため、このプロセスの高速化を心配する必要はありません。ただし、オーディエンスやオンボーディングが多数存在し、ユーザーのインターネット接続が弱い場合、オンボーディングのフェッチに予想以上の時間がかかることがあります。そのような状況では、オンボーディングをまったく表示しないのではなく、デフォルトのオンボーディングを表示することで、スムーズなユーザー体験を確保したい場合があるでしょう。
getOnboardingForDefaultAudience メソッドを使用することで、指定したプレースメントの All Users オーディエンス向けオンボーディングを取得できます。ただし、推奨されるアプローチは getOnboarding メソッドでオンボーディングを取得することであり、詳細は上記のオンボーディングの取得セクションをご覧ください。
getOnboardingForDefaultAudience の代わりに getOnboarding の使用を検討してください。前者には以下の重要な制限があります:
- 互換性の問題: 複数のアプリバージョンをサポートする際に問題が生じる可能性があり、後方互換性のある設計が必要になるか、古いバージョンが正しく表示されない可能性を受け入れる必要があります。
- パーソナライズなし: 「すべてのユーザー」オーディエンスのコンテンツのみを表示するため、国、アトリビューション、カスタム属性に基づいたターゲティングができません。
取得の高速化がこれらのデメリットを上回るユースケースの場合は、以下に示すように getOnboardingForDefaultAudience を使用してください。それ以外の場合は、上記で説明している getOnboarding を使用してください。
Adapty.getOnboardingForDefaultAudience(placementId: "YOUR_PLACEMENT_ID") { result in
switch result {
case let .success(onboarding):
// the requested onboarding
case let .failure(error):
// handle the error
}
}
パラメーター:
| パラメーター | 必須/任意 | 説明 |
|---|---|---|
| placementId | 必須 | 対象のプレースメントの識別子です。Adapty ダッシュボードでプレースメントを作成する際に指定した値です。 |
| locale | 任意 デフォルト: | オンボーディングのローカライズの識別子です。このパラメーターは、マイナス(-)文字で区切られた1つまたは2つのサブタグで構成される言語コードである必要があります。最初のサブタグは言語、2番目のサブタグは地域を表します。 例: ロケールコードとその推奨される使用方法については、ローカライズとロケールコードを参照してください。 |
| fetchPolicy | デフォルト: .reloadRevalidatingCacheData | デフォルトでは、SDK はサーバーからデータを読み込もうとし、失敗した場合はキャッシュされたデータを返します。ユーザーが常に最新のデータを取得できるよう、このオプションを推奨します。 ただし、ユーザーがインターネット接続の不安定な環境を使用していると思われる場合は、 なお、キャッシュはアプリの再起動後も保持され、アプリのアンインストール時または手動でクリーンアップした場合にのみ消去されます。 Adapty SDK はオンボーディングをローカルに2層構造で保存します。上記の定期更新されるキャッシュと、フォールバックオンボーディングです。また、オンボーディングをより速く取得するためにCDNを使用し、CDNに到達できない場合に備えてスタンドアロンのフォールバックサーバーも使用しています。このシステムは、インターネット接続が不安定な場合でも信頼性を確保しながら、常に最新バージョンのオンボーディングを取得できるよう設計されています。 |