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

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

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

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

  1. オンボーディングを作成していること。
  2. オンボーディングをプレースメントに追加していること。

オンボーディングの取得

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

パフォーマンスを最大化するために、ユーザーに表示する前に画像をダウンロードする時間を確保できるよう、早い段階でオンボーディングの設定を取得してください。 オンボーディングを取得するには、getOnboarding メソッドを使用します:


try {
  const onboarding = await adapty.getOnboarding({ 
    placementId: 'YOUR_PLACEMENT_ID', 
    locale: 'en',
    params: {
      fetchPolicy: 'reload_revalidating_cache_data', // Load from server, fallback to cache
      loadTimeoutMs: 5000 // 5 second timeout
    }
  });
  console.log('Onboarding fetched successfully');
} catch (error) {
  console.error('Failed to fetch onboarding:', error);
}

次に、createOnboardingView メソッドを呼び出してビューインスタンスを作成します。

createOnboardingView メソッドの戻り値は一度しか使用できません。再度使用する必要がある場合は、createOnboardingView メソッドを改めて呼び出してください。


if (onboarding.hasViewConfiguration) {
  try {
    const view = await createOnboardingView(onboarding);
    console.log('Onboarding view created successfully');
  } catch (error) {
    console.error('Failed to create onboarding view:', error);
  }
} else {
  // Use your custom logic
  console.log('Onboarding does not have view configuration');
}

パラメーター:

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

任意

デフォルト: en

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

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

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

params.fetchPolicy

任意

デフォルト: 'reload_revalidating_cache_data'

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

ただし、ユーザーが不安定なインターネット環境を使用している場合は、'return_cache_data_else_load' を使用してキャッシュが存在する場合にキャッシュデータを返すことを検討してください。この場合、ユーザーが受け取るデータが最新でないことがありますが、インターネット接続が不安定でも読み込みが速くなります。キャッシュはこまめに更新されるため、セッション中のネットワークリクエスト削減を目的として安心して利用できます。

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

params.loadTimeoutMs

任意

デフォルト: 5000 ms

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

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

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

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

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

getOnboardingForDefaultAudience ではなく getOnboarding の使用をご検討ください。前者には重要な制限があります:

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

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


try {
  const onboarding = await adapty.getOnboardingForDefaultAudience({ 
    placementId: 'YOUR_PLACEMENT_ID', 
    locale: 'en',
    params: {
      fetchPolicy: 'reload_revalidating_cache_data' // Load from server, fallback to cache
    }
  });
  console.log('Default audience onboarding fetched successfully');
} catch (error) {
  console.error('Failed to fetch default audience onboarding:', error);
}

パラメーター:

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

任意

デフォルト: en

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

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

ロケールコードおよびその推奨される使用方法については、ローカライズとロケールコードを参照してください。

params.fetchPolicy

任意

デフォルト: 'reload_revalidating_cache_data'

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

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

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