Capacitor SDKでオンボーディングを取得する
オンボーディングはSDK v4で非推奨となり、将来のリリースで削除される予定です。 バグ修正や改善は行われません。代わりにフローをご利用ください。オンボーディングはWebView内で動作しますが、フローはデバイス上でネイティブにレンダリングされるため、よりスムーズなアニメーション、一貫したネイティブの外観、高速な読み込み、WebViewランタイムへの依存がなくなります。まずはフローとペイウォールの取得およびフローとペイウォールの表示をご覧ください。
Adapty ダッシュボードのビルダーでオンボーディングのビジュアル部分をデザインした後、Capacitor アプリに表示できます。このプロセスの最初のステップは、以下に説明するように、プレースメントに関連付けられたオンボーディングとそのビュー設定を取得することです。
始める前に、以下を確認してください:
- オンボーディングを作成していること。
- オンボーディングをプレースメントに追加していること。
オンボーディングの取得
オンボーディングをノーコードビルダーで作成すると、アプリが取得・表示する必要のある設定コンテナとして保存されます。このコンテナは、表示するコンテンツ、その見せ方、ユーザーのインタラクション(クイズの回答やフォームへの入力など)の処理方法といった、体験全体を管理します。また、コンテナはアナリティクスイベントを自動的に記録するため、ビュートラッキングを別途実装する必要はありません。
パフォーマンスを最大化するために、ユーザーに表示する前に画像をダウンロードする時間を確保できるよう、早い段階でオンボーディングの設定を取得してください。
オンボーディングを取得するには、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 | 任意 デフォルト: | オンボーディングのローカライズ識別子。マイナス(-)で区切られた1つまたは2つのサブタグで構成される言語コードを指定します。最初のサブタグは言語、2番目は地域を表します。 例: ロケールコードと推奨される使用方法については、ローカライズとロケールコードをご覧ください。 |
| params.fetchPolicy | 任意 デフォルト: | デフォルトでは、SDK はサーバーからデータを取得しようとし、失敗した場合はキャッシュされたデータを返します。ユーザーが常に最新のデータを受け取れるよう、このオプションを推奨します。 ただし、ユーザーが不安定なインターネット環境を使用している場合は、 キャッシュはアプリを再起動しても保持され、アプリの再インストールまたは手動でのクリアを行った場合にのみ削除されます。 |
| params.loadTimeoutMs | 任意 デフォルト: 5000 ms | このメソッドのタイムアウト(ミリ秒単位)を設定します。タイムアウトに達した場合、キャッシュデータまたはローカルフォールバックが返されます。 内部的に複数のリクエストで構成されている場合があるため、まれに |
| レスポンスパラメーター: | ||
| パラメーター | 説明 | |
| :---------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
| 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 | 任意 デフォルト: | オンボーディングのローカライズ識別子。このパラメータは、マイナス(-)文字で区切られた1つまたは2つのサブタグで構成される言語コードを指定します。最初のサブタグは言語、2番目のサブタグは地域を表します。 例: ロケールコードおよびその推奨される使用方法については、ローカライズとロケールコードを参照してください。 |
| params.fetchPolicy | 任意 デフォルト: | デフォルトでは、SDKはサーバーからデータの読み込みを試み、失敗した場合はキャッシュデータを返します。このオプションを推奨するのは、常に最新のデータをユーザーに提供できるためです。 ただし、ユーザーのインターネット接続が不安定な場合は、 なお、キャッシュはアプリを再起動しても保持され、アプリの再インストールまたは手動でのクリア時にのみ削除されます。 |