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

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

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

loadTimeoutデフォルト: 5秒

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

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

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

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

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

通常、オンボーディングのフェッチはほぼ瞬時に完了するため、この処理の高速化を特別に意識する必要はありません。ただし、オーディエンスやオンボーディングの数が多く、ユーザーのインターネット接続が不安定な場合は、フェッチに予想以上の時間がかかることがあります。そのような状況では、オンボーディングをまったく表示しないよりも、デフォルトのオンボーディングを表示してスムーズなユーザー体験を提供したほうがよいでしょう。 この問題に対処するには、getOnboardingForDefaultAudience メソッドを使用できます。このメソッドは、指定されたプレースメントの All Users オーディエンス向けオンボーディングを取得します。ただし、推奨されるアプローチは オンボーディングの取得 セクションで詳しく説明されている getOnboarding メソッドでオンボーディングを取得することである点を理解しておくことが重要です。

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

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

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