Adapty React Native SDK を v4.1 へ移行する

Adapty React Native SDK 4.1 では、Adapty Attribution の有効化方法が変わり、外部アトリビューション API がリネームされ、フォールバックファイルのフォーマットも変更されます。また、App Store のプロモートされたアプリ内課金をアプリ側で処理できるようになり、AdaptyFlowhasViewConfiguration フラグが復活しました。

Warning

名称が変更されたAPIは完全な破壊的変更です。古い名前は完全に削除されており、移行を補助するための非推奨エイリアスは存在しません。4.0.xに対して型チェックが通っていたコードは、以下に列挙するすべての呼び出し箇所を修正するまで4.1でビルドエラーになります。

まだ3.xをお使いの場合は、先にv4.0への移行を行ってから、このガイドに従ってください。

クイックリファレンス

v4.0v4.1
Adapty アトリビューションがデフォルトで有効Adapty アトリビューションはデフォルトで無効。adaptyAttributionEnabled: true でオプトイン
adapty.updateAttribution(attribution, source)adapty.updateExternalAttribution(attribution, provider)
AttributionSourceAdaptyExternalAttributionProvider(新しい 'custom' 値を追加)
AdaptyProfile.appliedAttributionSourcesAdaptyProfile.appliedExternalAttributionProviders
4.0 用のフォールバックファイルをダウンロード済み新しいフォールバックファイル形式。ファイルを再ダウンロードしてください
プロモートされたアプリ内課金は自動的に完了し、割り込む手段なし'onPromotedPurchaseReceived' イベントと adapty.makePromotedPurchase(product) でアプリ側が完了処理を担当
hasViewConfigurationAdaptyFlow に存在しないhasViewConfigurationAdaptyFlow に復活
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 アトリビューションはデフォルトで無効

Warning

SDK 4.1 にアップデートしてオプトインしない場合、Adapty アトリビューションは無音で停止します — インストールの記録が止まっても何も警告されません。

バージョン4.0以前では、SDKはAdapty Attributionのインストール登録を自動的に行っていました。4.1以降、この機能はデフォルトで無効になっています。SDKはインストールを登録せず、'onInstallationDetailsSuccess'および'onInstallationDetailsFail'イベントは発火せず、getCurrentInstallationStatusnot_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 から再度ファイルをダウンロードし、アプリにバンドルしてください。

Warning

この手順を省略してもビルドエラーは発生しません。ただし、スキップするとsetFallbackが古いファイルを拒否し、すべてのプレースメントでフォールバックが機能しなくなります。

hasViewConfiguration が AdaptyFlow に復活

4.0 では AdaptyPaywallAdaptyFlow になった際に 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では、フラグが存在しない場合、ビュー設定のないフローに対してcreateFlowViewAdaptyErrorをスローします。4.1でも同様です — フラグはエラーのキャッチに代わるものではなく、その代替手段です。ビュー設定の取得を参照してください。

App Store のプロモーションアプリ内課金

4.0 では、App Store のプロダクトページでプロモーションされたアプリ内課金は自動的に完了し、Adapty は通常の取引と同様にトランザクションを記録していましたが、アプリ側でそれを途中で処理する方法はありませんでした。4.1 ではそのフックが追加されました。これは移行手順ではなく新機能です。独自のコードを追加しなくても、SDK はプロモーション購入を引き続き自動的に完了します。

購入処理を自分でコントロールしたい場合(例:先に特定の画面を表示したい場合)は、新しい 'onPromotedPurchaseReceived' イベントのリスナーを登録し、adapty.makePromotedPurchase で購入を完了させてください。このリスナーを登録している間、SDK は自動的に購入処理を行いません。

Warning

このフックは StoreKit 2 をベースとしており、iOS 16.4 以降が必要です。iOS 16.4 未満ではイベントは発火せず、プロモーション購入は 4.0 以前と同じ動作をします。Android でもイベントは発火しません。