Adapty Android SDK を v4.1 へ移行する

Adapty Android SDK 4.1 では、Adapty アトリビューションの有効化方法が変更され、外部アトリビューション API の名称が変更されました。

Warning

名前が変更されたAPIは完全な破壊的変更です。AdaptyAttributionSourceは完全に削除されており、非推奨ではなく、ブリッジ用のtypealiasも存在しません。4.0.xでコンパイルされていたコードは、以下に示すすべての呼び出し箇所を修正するまで、4.1ではコンパイルエラーになります。

クイックリファレンス

v4.0v4.1
Adapty アトリビューションはデフォルトで有効Adapty アトリビューションはデフォルトで無効。.withAdaptyAttributionEnabled(true) でオプトイン
Adapty.updateAttribution(attribution, source)Adapty.updateExternalAttribution(attribution, provider)
AdaptyAttributionSourceAdaptyExternalAttributionProvider(新しい CUSTOM 値を追加)
AdaptyProfile.appliedAttributionSourcesAdaptyProfile.appliedExternalAttributionProviders

インストール

adapty-bom のバージョンを 4.1.0(以降)に設定してプロジェクトを同期してください。BOM が android-sdkandroid-ui の対応バージョンを自動的に解決します。依存関係の宣言については、Adapty SDK のインストールを参照してください。

Note

4.0.0 または 4.0.1 からアップグレードする場合、4.0.2 の以下の 2 つの変更も適用されます:

  • Adapty はデフォルトで Google Play Billing Library 8 を使用するようになりました(以前は 7.0.0)。
  • restorePurchases は復元するものがない場合でも正常に完了し、現在のプロファイルを返すようになりました(以前は NO_PURCHASES_TO_RESTORE エラーで失敗していました)。購入を復元する を参照してください。

Adapty Attributionはデフォルトで無効

4.0以前では、SDKはAdapty Attributionのインストールを自動的に登録していました。4.1以降、これはデフォルトでオフになっています。SDKはインストールを登録せず、setOnInstallationDetailsListenerで設定したリスナーは起動せず、getCurrentInstallationStatusAdaptyInstallationStatus.Determined.NotAvailableを返します。

Adapty Attributionを使用する場合は、SDK起動時に有効化してください:

  val config = AdaptyConfig.Builder("PUBLIC_SDK_KEY")
+     .withAdaptyAttributionEnabled(true)
      .build()
  Adapty.activate(applicationContext, config)

Adapty Attribution を使用しない場合、変更は不要です。

外部アトリビューション API のリネーム

updateAttribution → updateExternalAttribution

外部プロバイダー(Adjust、AppsFlyer、Branch、Tenjin、またはカスタム)からのアトリビューションデータを渡すメソッドの名前が変更され、source パラメーターは provider に改称されました:

- Adapty.updateAttribution(attribution, AdaptyAttributionSource.ADJUST) { error -> /* handle the error */ }
+ Adapty.updateExternalAttribution(attribution, AdaptyExternalAttributionProvider.ADJUST) { error -> /* handle the error */ }

両方のオーバーロードは引き続き利用可能です:attribution には Map<String, Any> または JSON String を指定できます。

コールバックは、バックエンドが非同期処理のためにデータを受け付けた時点で発火します。成功の結果は、データがすでにプロファイルに適用されていることを意味しません。

AdaptyAttributionSource → AdaptyExternalAttributionProvider

型名が変更されましたが、定義済みの値の名前はそのまま維持されます:APPLE_ADSADJUSTAPPSFLYERBRANCHTENJIN。その他のプロバイダーには、文字列からインスタンスを生成してください:AdaptyExternalAttributionProvider("your_provider")

4.1 では、Adapty が直接統合していないプロバイダー向けに定義済みの CUSTOM 値も追加されました。4.0 では同じ値を文字列 "custom" としてのみ使用できました。

AdaptyProfile.appliedAttributionSources → appliedExternalAttributionProviders

プロファイルに適用されたアトリビューションプロバイダーの一覧を返すプロファイルプロパティの名前が変更されました。それに伴い、要素の型も変更されています。

- if (profile.appliedAttributionSources.contains(AdaptyAttributionSource.APPLE_ADS)) {
+ if (profile.appliedExternalAttributionProviders.contains(AdaptyExternalAttributionProvider.APPLE_ADS)) {
      // Apple Ads attribution has been applied
  }