Adapty React Native SDK を v4.1 へ移行する
Adapty React Native SDK 4.1 では、Adapty Attribution の有効化方法が変わり、外部アトリビューション API がリネームされ、フォールバックファイルのフォーマットも変更されます。また、App Store のプロモートされたアプリ内課金をアプリ側で処理できるようになり、AdaptyFlow の hasViewConfiguration フラグが復活しました。
名称が変更されたAPIは完全な破壊的変更です。古い名前は完全に削除されており、移行を補助するための非推奨エイリアスは存在しません。4.0.xに対して型チェックが通っていたコードは、以下に列挙するすべての呼び出し箇所を修正するまで4.1でビルドエラーになります。
まだ3.xをお使いの場合は、先にv4.0への移行を行ってから、このガイドに従ってください。
クイックリファレンス
| v4.0 | v4.1 |
|---|---|
| Adapty アトリビューションがデフォルトで有効 | Adapty アトリビューションはデフォルトで無効。adaptyAttributionEnabled: true でオプトイン |
adapty.updateAttribution(attribution, source) | adapty.updateExternalAttribution(attribution, provider) |
AttributionSource | AdaptyExternalAttributionProvider(新しい 'custom' 値を追加) |
AdaptyProfile.appliedAttributionSources | AdaptyProfile.appliedExternalAttributionProviders |
| 4.0 用のフォールバックファイルをダウンロード済み | 新しいフォールバックファイル形式。ファイルを再ダウンロードしてください |
| プロモートされたアプリ内課金は自動的に完了し、割り込む手段なし | 'onPromotedPurchaseReceived' イベントと adapty.makePromotedPurchase(product) でアプリ側が完了処理を担当 |
hasViewConfiguration が AdaptyFlow に存在しない | hasViewConfiguration が AdaptyFlow に復活 |
| iOS プロジェクトが CocoaPods で統合済み | CocoaPods、またはピュア React Native プロジェクトでの React Native の SPM 統合 |
インストール
react-native-adapty パッケージを更新してください:
npm install react-native-adapty@latest
# or
yarn add react-native-adapty@latest
ランタイム要件は 4.0 から変わっていません:iOS 15.0 および React Native 0.75。完全なセットアップ手順については、Adapty SDK のインストール を参照してください。
4.1はReact NativeのSPMインテグレーションもサポートしています。これはiOSプロジェクトのCocoaPodsに代わるもので、React Native 0.87以降が必要です。純粋なReact Nativeプロジェクトのみが対象で、CocoaPodsが引き続きデフォルトとなります。移行は任意です。詳しくはiOSプロジェクトのセットアップをご覧ください。アプリでキッズモードを使用している場合、各パッケージマネージャーによって適用方法が異なります。
⚠️ Adapty アトリビューションはデフォルトで無効
SDK 4.1 にアップデートしてオプトインしない場合、Adapty アトリビューションは無音で停止します — インストールの記録が止まっても何も警告されません。
バージョン4.0以前では、SDKはAdapty Attributionのインストール登録を自動的に行っていました。4.1以降、この機能はデフォルトで無効になっています。SDKはインストールを登録せず、'onInstallationDetailsSuccess'および'onInstallationDetailsFail'イベントは発火せず、getCurrentInstallationStatusはnot_availableステータスを返します。
Adapty Attributionを使用している場合は、SDKのアクティベーション時に有効にしてください:
adapty.activate('YOUR_PUBLIC_SDK_KEY', {
+ adaptyAttributionEnabled: true,
});
Adapty Attributionを使用していない場合は、変更は不要です。
外部アトリビューション APIの名称変更
外部プロバイダー(Adjust、AppsFlyer、Branch、Tenjin、またはカスタム)からアトリビューションデータを渡す API が、ネイティブ SDK に合わせた名称に変更されました。
updateAttribution → updateExternalAttribution
メソッド名が変更され、第2パラメータの名前が source から provider に変更されました。アトリビューションデータは引き続きプレーンオブジェクトです:
- await adapty.updateAttribution(attribution, 'adjust');
+ await adapty.updateExternalAttribution(attribution, 'adjust');
AttributionSource → AdaptyExternalAttributionProvider
プロバイダーの型名が変更されました。オープンユニオン型のままで、事前定義された値は 'apple_search_ads'、'adjust'、'appsflyer'、'branch'、'tenjin'、そして Adapty が直接インテグレーションしていないプロバイダー向けの新しい 'custom' です。それ以外の文字列も受け付けるため、Adapty が後から追加したプロバイダーも SDK のアップデートなしで利用できます:
- import type { AttributionSource } from 'react-native-adapty';
+ import type { AdaptyExternalAttributionProvider } from 'react-native-adapty';
AdaptyProfile.appliedAttributionSources → appliedExternalAttributionProviders
プロファイルに適用されたアトリビューションプロバイダーの一覧を返すプロファイルプロパティの名前が変更され、要素の型も合わせて変更されます。
- if (profile.appliedAttributionSources?.includes('apple_search_ads')) {
+ if (profile.appliedExternalAttributionProviders?.includes('apple_search_ads')) {
// Apple Ads attribution has been applied
}
このプロパティを参照しているコードは更新が必要です — Apple Ads ターゲットペイウォールを表示するを参照してください。
フォールバックファイル
フォールバックファイルのフォーマットはSDK 4.1で変更されました。すでに4.0向けにダウンロード済みの場合でも、Placements > Fallbacks から再度ファイルをダウンロードし、アプリにバンドルしてください。
この手順を省略してもビルドエラーは発生しません。ただし、スキップするとsetFallbackが古いファイルを拒否し、すべてのプレースメントでフォールバックが機能しなくなります。
hasViewConfiguration が AdaptyFlow に復活
4.0 では AdaptyPaywall が AdaptyFlow になった際に hasViewConfiguration が削除されましたが、4.1 で AdaptyFlow に復活しました。これにより、関数名とその対象オブジェクト名を変更するだけで、v3 時代の hasViewConfiguration の分岐がそのまま動作します:
- if (paywall.hasViewConfiguration) {
- const view = await createPaywallView(paywall);
+ if (flow.hasViewConfiguration) {
+ const view = await createFlowView(flow);
await view.present();
}
4.0では、フラグが存在しない場合、ビュー設定のないフローに対してcreateFlowViewがAdaptyErrorをスローします。4.1でも同様です — フラグはエラーのキャッチに代わるものではなく、その代替手段です。ビュー設定の取得を参照してください。
App Store のプロモーションアプリ内課金
4.0 では、App Store のプロダクトページでプロモーションされたアプリ内課金は自動的に完了し、Adapty は通常の取引と同様にトランザクションを記録していましたが、アプリ側でそれを途中で処理する方法はありませんでした。4.1 ではそのフックが追加されました。これは移行手順ではなく新機能です。独自のコードを追加しなくても、SDK はプロモーション購入を引き続き自動的に完了します。
購入処理を自分でコントロールしたい場合(例:先に特定の画面を表示したい場合)は、新しい 'onPromotedPurchaseReceived' イベントのリスナーを登録し、adapty.makePromotedPurchase で購入を完了させてください。このリスナーを登録している間、SDK は自動的に購入処理を行いません。
このフックは StoreKit 2 をベースとしており、iOS 16.4 以降が必要です。iOS 16.4 未満ではイベントは発火せず、プロモーション購入は 4.0 以前と同じ動作をします。Android でもイベントは発火しません。