이 페이지에서

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 파일과 동기화하십시오.

java
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는 일부 구성을 지원하지 않습니다.

이벤트 전송

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()에 매핑됩니다.

kotlin
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
}

이 내용이 도움이 되었나요?