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입니다.
종속성
유지 관리 Android SDK를 제거하고 최신 Android SDK를 추가하도록 build.gradle 업데이트하십시오. 그런 다음 프로젝트를 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에서 더 이상 권장되지 않습니다. 대신 autocapture를 AutocaptureOption.SESSIONS와 함께 사용하십시오. |
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를 비롯한 기존 유지 관리 SDK 데이터를 가져옵니다. 이 동작을 비활성화하려면 구성에서 migrateLegacyData(을)를 false(으)로 설정하십시오. GitHub에서 더 많은 것을 알아보십시오.
val amplitude = Amplitude("AMPLITUDE_API_KEY", applicationContext) {
migrateLegacyData = false
}
이 내용이 도움이 되었나요?