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

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つのレイヤーで保存します:上記の定期更新されるキャッシュとフォールバックオンボーディングです。また、オンボーディングをより高速に取得するためにCDNを使用し、CDNが利用できない場合に備えてスタンドアロンのフォールバックサーバーも使用します。このシステムは、インターネット接続が不安定な場合でも、常に最新バージョンのオンボーディングを取得できるように設計されています。

loadTimeoutデフォルト: 5秒

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

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

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

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

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

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

これに対処するために、getOnboardingForDefaultAudienceメソッドを使用できます。このメソッドは、すべてのユーザーオーディエンス向けに指定されたプレースメントのオンボーディングを取得します。ただし、推奨されるアプローチは、上記のオンボーディングの取得セクションで説明した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つのレイヤーで保存します:上記の定期更新されるキャッシュとフォールバックオンボーディングです。また、オンボーディングをより高速に取得するためにCDNを使用し、CDNが利用できない場合に備えてスタンドアロンのフォールバックサーバーも使用します。このシステムは、インターネット接続が不安定な場合でも、常に最新バージョンのオンボーディングを取得できるように設計されています。