オンボーディングとその設定を取得する

SDK v4 以降では、オンボーディングのより強力な代替手段としてフローを構築できます。オンボーディングが WebView 内で動作するのに対し、フローはデバイス上でネイティブにレンダリングされるため、よりスムーズなアニメーション、一貫した iOS のルック&フィール、高速な読み込み、WebView ランタイムへの依存がなくなります。詳しくはフローとペイウォールの取得およびフローとペイウォールの表示をご覧ください。

Adapty ダッシュボードのビルダーでオンボーディングのビジュアル部分をデザインしたら、モバイルアプリに表示できます。このプロセスの最初のステップは、プレースメントに関連付けられたオンボーディングとそのビュー設定を取得することです。詳細は以下をご覧ください。

始める前に、以下を確認してください。

  1. Adapty iOS、Android、React Native、または Flutter SDK バージョン 3.8.0 以降をインストール済みであること。
  2. オンボーディングを作成済みであること。
  3. オンボーディングをプレースメントに追加済みであること。

オンボーディングの取得

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

パフォーマンスを最大限に発揮するため、ユーザーに表示する前に画像が十分にダウンロードされるよう、早めにオンボーディングの設定を取得してください。

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

do {
    let onboarding = try await Adapty.getOnboarding(placementId: "YOUR_PLACEMENT_ID")
    // the requested onboarding
} catch {
    // handle the error
}

パラメーター:

パラメーター必須/任意説明
placementId必須対象のプレースメントの識別子。Adapty ダッシュボードでプレースメントを作成する際に指定した値です。
locale

任意

デフォルト: en

オンボーディングのローカライズ識別子。このパラメーターは、マイナス(-)文字で区切られた1つまたは2つのサブタグで構成された言語コードを指定します。最初のサブタグは言語、2番目のサブタグは地域を表します。

例: en は英語、pt-br はブラジルポルトガル語を表します。

ロケールコードおよび推奨される使用方法については、ローカライズとロケールコードを参照してください。

fetchPolicyデフォルト: .reloadRevalidatingCacheData

デフォルトでは、SDK はサーバーからデータを読み込もうとし、失敗した場合はキャッシュされたデータを返します。このオプションを推奨します。ユーザーが常に最新のデータを取得できるためです。

ただし、ユーザーのインターネット接続が不安定な場合は、.returnCacheDataElseLoad を使用してキャッシュが存在する場合はキャッシュデータを返すことを検討してください。この場合、最新データが取得できないことがありますが、接続状況に関わらず読み込み時間が短縮されます。キャッシュは定期的に更新されるため、ネットワークリクエストを減らす目的でセッション中に使用しても安全です。

キャッシュはアプリを再起動しても保持され、アプリの再インストール時または手動でクリアした場合にのみ削除されます。

Adapty SDK はオンボーディングをローカルに2層構造で保存します。上述の定期更新キャッシュとフォールバックオンボーディングです。また、オンボーディングをより高速に取得するためにCDNを使用し、CDNが利用できない場合に備えてスタンドアロンのフォールバックサーバーも用意しています。このシステムは、インターネット接続が不安定な状況でも信頼性を確保しながら、常に最新バージョンのオンボーディングを取得できるよう設計されています。

loadTimeoutデフォルト: 5秒

このメソッドのタイムアウト上限を設定します。タイムアウトに達した場合、キャッシュデータまたはローカルフォールバックが返されます。

内部的に複数のリクエストで構成される場合があるため、稀にこのメソッドが loadTimeout で指定した時間をわずかに超えてタイムアウトすることがあります。

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

パラメーター説明
OnboardingAdaptyOnboarding オブジェクト。オンボーディングの識別子と設定、リモートコンフィグ、その他のプロパティを含みます。

デフォルトオーディエンスのオンボーディングでフェッチを高速化する

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

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

任意

デフォルト: en

オンボーディングのローカライズの識別子です。このパラメーターは、マイナス(-)文字で区切られた1つまたは2つのサブタグで構成される言語コードである必要があります。最初のサブタグは言語、2番目のサブタグは地域を表します。

例: en は英語、pt-br はブラジルポルトガル語を表します。

ロケールコードとその推奨される使用方法については、ローカライズとロケールコードを参照してください。

fetchPolicyデフォルト: .reloadRevalidatingCacheData

デフォルトでは、SDK はサーバーからデータを読み込もうとし、失敗した場合はキャッシュされたデータを返します。ユーザーが常に最新のデータを取得できるよう、このオプションを推奨します。

ただし、ユーザーがインターネット接続の不安定な環境を使用していると思われる場合は、.returnCacheDataElseLoad の使用を検討してください。これにより、キャッシュが存在する場合はキャッシュされたデータを返します。この場合、ユーザーは最新のデータを取得できないことがありますが、インターネット接続の品質に関わらず読み込み時間が短縮されます。キャッシュは定期的に更新されるため、ネットワークリクエストを避けるためにセッション中に使用しても安全です。

なお、キャッシュはアプリの再起動後も保持され、アプリのアンインストール時または手動でクリーンアップした場合にのみ消去されます。

Adapty SDK はオンボーディングをローカルに2層構造で保存します。上記の定期更新されるキャッシュと、フォールバックオンボーディングです。また、オンボーディングをより速く取得するためにCDNを使用し、CDNに到達できない場合に備えてスタンドアロンのフォールバックサーバーも使用しています。このシステムは、インターネット接続が不安定な場合でも信頼性を確保しながら、常に最新バージョンのオンボーディングを取得できるよう設計されています。