Adapty Android SDK を v4.1 へ移行する
Adapty Android SDK 4.1 では、Adapty アトリビューションの有効化方法が変更され、外部アトリビューション API の名称が変更されました。
名前が変更されたAPIは完全な破壊的変更です。AdaptyAttributionSourceは完全に削除されており、非推奨ではなく、ブリッジ用のtypealiasも存在しません。4.0.xでコンパイルされていたコードは、以下に示すすべての呼び出し箇所を修正するまで、4.1ではコンパイルエラーになります。
クイックリファレンス
| v4.0 | v4.1 |
|---|---|
| Adapty アトリビューションはデフォルトで有効 | Adapty アトリビューションはデフォルトで無効。.withAdaptyAttributionEnabled(true) でオプトイン |
Adapty.updateAttribution(attribution, source) | Adapty.updateExternalAttribution(attribution, provider) |
AdaptyAttributionSource | AdaptyExternalAttributionProvider(新しい CUSTOM 値を追加) |
AdaptyProfile.appliedAttributionSources | AdaptyProfile.appliedExternalAttributionProviders |
インストール
adapty-bom のバージョンを 4.1.0(以降)に設定してプロジェクトを同期してください。BOM が android-sdk と android-ui の対応バージョンを自動的に解決します。依存関係の宣言については、Adapty SDK のインストールを参照してください。
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で設定したリスナーは起動せず、getCurrentInstallationStatusはAdaptyInstallationStatus.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_ADS、ADJUST、APPSFLYER、BRANCH、TENJIN。その他のプロバイダーには、文字列からインスタンスを生成してください: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
}