For AI agents: a documentation index is available at /docs/llms.txt. Append .md to any page URL for markdown, or send Accept: text/markdown.
Android-Kotlin SDK への移行
Amplitudeの最新Android SDK(com.amplitude:analytics-android)はKotlinを使用しており、プラグインアーキテクチャと組み込み型定義を備えています。最新の Android SDK は、メンテナンス Android SDK com.amplitude:android-sdkと下位互換性がありません。
com.amplitude:analytics-androidに移行するには、依存関係とインストルメンテーションを更新してください。
用語
com.amplitude:android-sdk:メンテナンスAndroid SDK。com.amplitude:analytics-android:最新のAndroid SDK。
依存関係
build.gradleを更新してメンテナンスAndroid SDKを削除し、最新のAndroid SDKを追加します。次に、プロジェクトをGradleファイルと同期します。
dependencies {
implementation 'com.squareup.okhttp3:okhttp:4.2.2'
implementation 'com.amplitude:analytics-android:1.+'
}
インスツルメンテーション
最新のAndroid SDKでは、インストルメンテーションイベントを行うための新しいAPIが提供されています。移行するには、いくつかのコールを更新します。次のセクションでは、どの呼び出しが変更されたかについて詳しく説明します。
初期化
有効なAmplitude APIキーとAndroidアプリケーションコンテキストを使用して、SDKを初期化します。メンテナンス SDKはAmplitude.getInstance().initialize(context, apiKey)を使用しました。
import com.amplitude.android.Amplitude
val amplitude = Amplitude("YOUR_API_KEY", applicationContext) {
// Set configuration options here.
}
設定
最新のAndroid SDKでは、異なる設定形式が使用されています。最新の SDK では一部の設定がサポートされていません。
| com.amplitude:android-sdk | com.amplitude:analytics-android |
|---|---|
eventUploadPeriodMillis | flushIntervalMillis |
eventUploadThreshold | flushQueueSize |
eventUploadMaxBatchSize | 非対応 |
eventMaxCount | 非対応 |
identifyBatchIntervalMillis | identifyBatchIntervalMillis |
flushEventsOnClose | flushEventsOnClose |
optOut | optOut |
trackingSessionEvents | trackingSessionEvents。 最新のSDKでは非推奨となっています。代わりにAutocaptureOption.SESSIONSと共にautocaptureを使用してください。 |
sessionTimeoutMillis | サポートされていません。 メンテナンスSDKでは、デフォルトでフォアグラウンドトラッキングが無効になっており、フォアグラウンドトラッキングを無効にした場合はsessionTimeoutMillisを使用します。最新の SDK はフォアグラウンド トラッキングを有効にしており、この設定は公開されません。 |
minTimeBetweenSessionsMillis | minTimeBetweenSessionsMillis |
serverUrl | serverUrlのデフォルト値はnullです。設定されていない場合は、有効なHTTP V2エンドポイントが適用されます。 メンテナンス SDK のデフォルト値はhttps://api2.amplitude.com/です。 |
useDynamicConfig | 非対応 |
イベントを送信
logEvent()APIはtrack()にマップされます。メンテナンスSDKはeventPropertiesにJSONObjectを使用します。最新のSDKはMap<String, Any?>を使用します。
import org.json.JSONException
import org.json.JSONObject
val eventProperties = JSONObject()
try {
eventProperties.put("buttonColor", "primary")
} catch (e: JSONException) {
System.err.println("Invalid JSON")
e.printStackTrace()
}
client.logEvent("Button Clicked", eventProperties)
client.track(
"Button Clicked",
mutableMapOf<String, Any?>("buttonColor" to "primary")
)
イベントをフラッシュする
デフォルトでは、SDK は未送信イベントをバッファリングします。 flushEventsOnCloseがtrueの場合、最後のアクティビティが停止したとき (アプリがバックグラウンドに移行したとき)にフラッシュします。また、flushQueueSizeまたはflushIntervalMillisのいずれか早い方に達したときもフラッシュします。
クローズ時のフラッシングを無効にするには、flushEventsOnCloseをfalseに設定します。
また、SDK に未送信イベントを強制的にアップロードさせることもできます。 uploadEvents()APIはflush()にマップされます。
client.uploadEvents()
client.flush()
ユーザープロパティを設定する
identify()APIは依然として同じです。
val identify = Identify()
identify.set("location", "LAX")
client.identify(identify)
グループプロパティを設定する
val groupType = "plan"
val groupName = "enterprise"
val identify = Identify().set("key", "value")
client.groupIdentify(groupType, groupName, identify)
収益の追跡
logRevenueV2()APIはrevenue()にマップされます。
val revenue = Revenue()
revenue.productId = "com.company.productId"
revenue.price = 3
revenue.quantity = 2
client.logRevenueV2(revenue)
client.revenue(revenue)
収益の検証
Amplitudeのバックエンドは収益検証ロジックを処理します。 収益検証は、最新のAndroid SDKに移行した後も引き続き機能します。
高度なトピック
メンテナンスSDKは、deviceIdおよびuserIdに長さ制限を課さない古いSDKエンドポイント(api2.amplitude.com)を使用します。最新のSDKはAmplitudeのHTTP V2 API(api2.amplitude.com/2/httpapi)を使用しており、デフォルトでは少なくとも5文字の識別子が必要です。最新のSDKに移行する際に5文字未満の識別子を許可する場合は、config.minIdLengthをより小さい値に設定してください。
最新の SDK の動作のほとんどは、メンテナンス SDK と一致しています。 特定のトピックの詳細については、メンテナンスSDKおよび最新のSDKの高度なトピックセクションを参照してください。
データ移行
デフォルトでは、最新の SDK はイベントやユーザー ID やデバイス ID など、既存のメンテナンス SDK データをインポートします。 この動作を無効にするには、設定でmigrateLegacyDataをfalseに設定します。詳細は GitHub でご覧ください。
val amplitude = Amplitude("AMPLITUDE_API_KEY", applicationContext) {
migrateLegacyData = false
}
これは役に立ちましたか?