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

Adapty ダッシュボードのビルダーでオンボーディングのビジュアル部分をデザインしたら、Androidアプリに表示できます。まず最初に、プレースメントに紐付いたオンボーディングとそのビュー設定を取得する必要があります。詳しくは以下をご覧ください。

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

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

オンボーディングの取得

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

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

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

Adapty.getOnboarding("YOUR_PLACEMENT_ID") { result ->
    when (result) {
        is AdaptyResult.Success -> {
            val onboarding = result.value
            // the requested onboarding
        }
        is AdaptyResult.Error -> {
            val error = result.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 で指定した時間よりわずかに遅れてタイムアウトすることがあります。

Android の場合:拡張関数(例:5.seconds.secondsimport com.adapty.utils.seconds から)を使って TimeInterval を作成するか、TimeInterval.seconds(5) を使用できます。制限を設けない場合は TimeInterval.INFINITE を指定してください。

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

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

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

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

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

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

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

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

Adapty.getOnboardingForDefaultAudience("YOUR_PLACEMENT_ID") { result ->
    when (result) {
        is AdaptyResult.Success -> {
            val onboarding = result.value
            // Handle successful onboarding retrieval
        }
        is AdaptyResult.Error -> {
            val error = result.error
            // Handle error case
        }
    }
}

パラメーター:

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

任意

デフォルト:en

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

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

ロケールコードの詳細と推奨される使い方については、ローカライズとロケールコードをご覧ください。

fetchPolicyデフォルト:.reloadRevalidatingCacheData

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

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

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

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