Kotlin Multiplatform SDKでオンボーディングを取得する

オンボーディングはSDK v4で非推奨となり、将来のリリースで削除される予定です。 バグ修正や改善は行われません。代わりにフローを使用してください。オンボーディングはWebView内で動作しますが、フローはデバイス上でネイティブにレンダリングされるため、よりスムーズなアニメーション、一貫したネイティブの外観、高速な読み込み、そしてWebViewへの依存がなくなります。始めるにはフローとペイウォールの取得およびフローとペイウォールの表示をご覧ください。

Adapty ダッシュボードのビルダーでオンボーディングのビジュアルデザインを完成させた後、Kotlin Multiplatform アプリでそれを表示できます。このプロセスの最初のステップは、以下で説明するように、プレースメントに関連付けられたオンボーディングとそのビュー設定を取得することです。

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

  1. Adapty Kotlin Multiplatform SDK バージョン 3.15.0 以上がインストールされていること。
  2. オンボーディングを作成済みであること。
  3. オンボーディングをプレースメントに追加済みであること。

オンボーディングの取得

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

パフォーマンスを最大限に高めるため、ユーザーに表示する前に画像が十分ダウンロードできるよう、早い段階でオンボーディングの設定を取得しておくことをおすすめします。

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


Adapty.getOnboarding(
    placementId = "YOUR_PLACEMENT_ID",
    locale = "en",
    fetchPolicy = AdaptyPaywallFetchPolicy.Default,
    loadTimeout = 5.seconds
).onSuccess { paywall ->
    // the requested paywall
}.onError { error ->
    // handle the error
}

パラメーター:

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

任意

デフォルト: en

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

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

fetchPolicyデフォルト: .reloadRevalidatingCacheData

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

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

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

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

loadTimeoutデフォルト: 5秒

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

まれに、内部で複数のリクエストが行われる場合があるため、loadTimeout で指定した時間より若干遅れてタイムアウトすることがあります。

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

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

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

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

これに対処するには、getOnboardingForDefaultAudience メソッドを使用できます。このメソッドは、指定したプレースメントの All Users オーディエンス向けオンボーディングを取得します。ただし、推奨されるアプローチは getOnboarding メソッドでオンボーディングを取得することであり、詳細については上記のオンボーディングの取得セクションを参照してください。

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

  • 互換性の問題: 複数のアプリバージョンをサポートする際に問題が生じる可能性があり、後方互換性のある設計が必要になるか、古いバージョンでの表示崩れを許容する必要があります。
  • パーソナライズなし: 「全ユーザー」オーディエンス向けのコンテンツのみを表示するため、国、アトリビューション、カスタム属性によるターゲティングができません。

これらのデメリットよりも取得速度のメリットが大きい場合は、以下に示すように getOnboardingForDefaultAudience を使用してください。そうでない場合は、上記で説明している getOnboarding を使用してください。


Adapty.getOnboardingForDefaultAudience(
    placementId = "YOUR_PLACEMENT_ID",
    locale = "en",
    fetchPolicy = AdaptyPaywallFetchPolicy.Default,
).onSuccess { paywall ->
    // the requested paywall
}.onError { error ->
    // handle the error
}

パラメーター:

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

任意

デフォルト: en

オンボーディングのローカライズ識別子です。マイナス(-)文字で区切られた1つまたは2つのサブタグで構成される言語コードを指定します。最初のサブタグは言語、2番目は地域を表します。
例: en は英語、pt-br はブラジルポルトガル語を表します。
fetchPolicyデフォルト: .reloadRevalidatingCacheData

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

ただし、ユーザーがネットワークの不安定な環境を使用していると思われる場合は、.returnCacheDataElseLoad の使用を検討してください。キャッシュが存在する場合はキャッシュされたデータを返すため、ユーザーは最新データを取得できない場合がありますが、通信状況に関わらず高速に読み込めます。キャッシュは定期的に更新されるため、セッション中にネットワークリクエストを避ける目的で使用しても問題ありません。

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

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