Android
Android 앱에 애드체인 SDK를 연동하는 방법을 소개합니다.
시작하기 전에
SDK를 설치하기 전에 다음을 준비해주세요:
Android Studio: Arctic Fox 이상 버전
minSdkVersion: 24 (Android 7.0) 이상
Kotlin: 1.9.0 이상
appKey & appSecret: 애드체인 ADMIN에서 발급받은 인증 정보 (없다면 [email protected]로 문의)
1. Gradle 설정
settings.gradle.kts
프로젝트 루트의 settings.gradle.kts 파일을 열어서 필요한 저장소들을 추가합니다:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
maven { url = uri("https://jitpack.io") } // AdChain SDK용
maven { url = uri("https://releases.adjoe.io/maven") } // Adjoe SDK용 (필수)
}
}중요: https://releases.adjoe.io/maven 저장소는 꼭 추가해야 합니다. Adjoe SDK의 Maven 저장소 설정이 필요합니다. (자세한 내용은 아래 참조)
또는, 프로젝트가 build.gradle 파일을 사용한다면:
allprojects {
repositories {
maven { url 'https://releases.adjoe.io/maven' } // Adjoe SDK용 (필수)
google()
mavenCentral()
maven { url 'https://www.jitpack.io' } // AdChain SDK용
}
}app/build.gradle.kts
앱 모듈의 build.gradle.kts 파일에 SDK 의존성을 추가합니다:
dependencies {
implementation("com.github.1selfworld-labs:adchain-sdk-android:v1.0.32")
// 기존 의존성들...
}추가하고 나면 Gradle Sync를 실행해주세요.
2. AndroidManifest.xml 설정
app/src/main/AndroidManifest.xml 파일에 필요한 권한과 Activity를 추가합니다:
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 인터넷 권한 (필수) -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 광고 ID 권한 (필수) -->
<uses-permission android:name="com.google.android.gms.permission.AD_ID" />
<application>
<!-- 기존 내용... -->
<!-- 오퍼월 화면 추가 -->
<activity
android:name="com.adchain.sdk.offerwall.AdchainOfferwallActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
</application>
</manifest>광고 ID 권한은 타겟팅 정확도를 위해 필수입니다.
3. ProGuard 설정 (릴리스 빌드 시)
릴리스 빌드에서 ProGuard나 R8을 사용한다면, proguard-rules.pro 파일에 다음을 추가해주세요:
# AdChain SDK
-keep class com.adchain.sdk.** { *; }
-keepclassmembers class com.adchain.sdk.** { *; }
# Retrofit & OkHttp (SDK 내부에서 사용)
-keepattributes Signature
-keepattributes *Annotation*
-keep class retrofit2.** { *; }
-keep class okhttp3.** { *; }
# Moshi (JSON 파싱용)
-keep class com.squareup.moshi.** { *; }
-keepclassmembers class ** {
@com.squareup.moshi.* <methods>;
}4. SDK 초기화
Application 클래스에서 초기화
SDK는 앱이 시작될 때 한 번만 초기화합니다. Application 클래스를 만들거나, 이미 있다면 onCreate()에 다음 코드를 추가합니다:
import android.app.Application
import com.adchain.sdk.core.AdchainSdk
import com.adchain.sdk.core.AdchainSdkConfig
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
// SDK 설정
val config = AdchainSdkConfig(
appKey = "YOUR_APP_KEY", // 발급받은 앱 키
appSecret = "YOUR_APP_SECRET" // 발급받은 시크릿
)
// SDK 초기화
AdchainSdk.initialize(
application = this,
config = config,
listener = object : AdchainSdkInitListener {
override fun onSuccess() {
Log.d("AdChain", "SDK 초기화 성공")
}
override fun onFailure(error: AdchainError) {
Log.e("AdChain", "SDK 초기화 실패: ${error.message}")
}
}
)
}
}그리고 AndroidManifest.xml에서 이 Application 클래스를 등록해야 합니다:
<application
android:name=".MyApplication"
...>초기화 확인하기
아래와 같은 방식으로 초기화가 제대로 됐는지 확인합니다:
if (AdchainSdk.isInitialized()) {
// 초기화 완료
} else {
// 아직 초기화 안 됨
}5. 사용자 로그인
SDK를 사용하려면 사용자 로그인이 필요합니다. 일반적으로 앱의 로그인 화면에서 처리합니다:
import com.adchain.sdk.core.AdchainSdk
import com.adchain.sdk.core.AdchainSdkUser
import com.adchain.sdk.core.Gender
// 사용자 정보 생성
val user = AdchainSdkUser(
userId = "user123", // 앱의 사용자 ID (필수)
gender = Gender.MALE, // 성별 (선택)
birthYear = 1990 // 출생연도 (선택)
)
// 로그인
AdchainSdk.login(
user = user,
listener = object : AdchainSdkLoginListener {
override fun onSuccess() {
// 로그인 성공
// 이제 오퍼월이나 다른 기능 사용 가능
}
override fun onFailure(error: AdchainError) {
// 로그인 실패
Log.e("AdChain", "로그인 실패: ${error.message}")
}
}
)userId는 앱에서 사용하는 사용자 식별자를 사용합니다. 성별이나 출생연도는 선택사항이지만, 제공하면 광고 타겟팅 정확도가 향상됩니다.
6. 오퍼월 띄우기
버튼을 누르면 오퍼월이 열리도록 설정할 수 있습니다:
import com.adchain.sdk.core.AdchainSdk
// 버튼 클릭 시
button.setOnClickListener {
AdchainSdk.openOfferwall(
activity = this,
placementId = "main_offerwall" // 배치 위치 구분용 (선택)
)
}placementId는 오퍼월을 여러 곳에 배치할 때 구분하려고 쓰는 건데, 일단은 아무 값이나 넣어도 됩니다.
샘플 프로젝트
전체 예제 코드를 보고 싶으시면 GitHub 샘플 프로젝트를 참고하세요:
Android 샘플: https://github.com/1selfworld-labs/adchain-sdk-android-sample
샘플 프로젝트에는 오퍼월, 퀴즈, 이벤트 추적 등 모든 기능의 사용 예시가 포함되어 있습니다.
다음 단계
기본 설정이 끝났습니다. 이제 다른 기능들을 써볼 수 있습니다:
문제가 생겼다면
초기화나 로그인이 안 된다면 문제 해결 페이지를 확인해보세요.
Last updated