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

SDK v4(ベータ版)以降、オンボーディングのより強力な代替としてフローを構築できます。オンボーディングが WebView 内で動作するのに対し、フローはデバイス上でネイティブにレンダリングされるため、アニメーションがスムーズになり、iOS の一貫した外観と操作感が得られ、読み込みが速く、WebView ランタイムへの依存もありません。詳しくは Get flows & paywalls および Display flows & paywalls をご覧ください。

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 で指定した時間より少し遅くタイムアウトすることがあります。

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

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

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

通常、オンボーディングはほぼ即座に取得されるため、このプロセスの高速化を特に意識する必要はありません。ただし、オーディエンスやオンボーディングが多数あり、ユーザーのインターネット接続が不安定な場合は、取得に想定以上の時間がかかることがあります。そのような状況では、オンボーディングをまったく表示しないよりも、デフォルトのオンボーディングを表示してスムーズなユーザー体験を提供したい場合があるかもしれません。

これに対応するために、getOnboardingForDefaultAudience メソッドを使用できます。このメソッドは、指定したプレースメントの All Users オーディエンス向けオンボーディングを取得します。ただし、推奨されるアプローチは上記のオンボーディングを取得するセクションで説明した getOnboarding メソッドを使用することです。

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

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

ユースケースにおいて取得の高速化がこれらのデメリットを上回る場合は、以下に示す 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 に接続できない場合に備えてスタンドアロンのフォールバックサーバーも用意しています。このシステムにより、インターネット接続が不安定な場合でも、常に最新バージョンのオンボーディングを確実に取得できます。