build.gradle(project) 구성 사용
allprojects {
repositories {
google()
mavenCentral()
maven { url "https://jitpack.io" }
maven { url 'https://artifact.bytedance.com/repository/pangle' }
maven { url 'https://devrepo.kakao.com/nexus/content/groups/public/' }
maven { url 'https://raw.githubusercontent.com/coupang-ads-sdk/android/main' }
maven { url "https://dl.cloudsmith.io/public/avatye/android-cashbutton-buzzvil/maven/" }
maven {
url "s3://repo.cauly.net/releases"
credentials(AwsCredentials) {
accessKey "AKIAWRZUK5MFKYVSUOLB"
secretKey "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"
}
}
}
}
pluginManagement {
repositories {
gradlePluginPortal()
google()
mavenCentral()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
maven { url "https://jitpack.io" }
maven { url 'https://artifact.bytedance.com/repository/pangle' }
maven { url 'https://devrepo.kakao.com/nexus/content/groups/public/' }
maven { url 'https://raw.githubusercontent.com/coupang-ads-sdk/android/main' }
maven { url "https://dl.cloudsmith.io/public/avatye/android-cashbutton-buzzvil/maven/" }
maven {
url "s3://repo.cauly.net/releases"
credentials(AwsCredentials) {
accessKey "AKIAWRZUK5MFKYVSUOLB"
secretKey "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"
}
}
}
}
android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
// 캐시버튼 적용
implementation 'com.avatye.cashbutton.buzzvil:product-button:${SDK Version 참고}'
}
<!-- 퍼미션 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- android target sdk 28 FOREGROUND_SERVICE -->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.VIBRATE" />
class Application : Application() {
override fun onCreate() {
super.onCreate()
/** 라이브 키는 영업팀에 문의 후 적용해주세요.
*
* 캐시버튼 테스트 키
* appID = "91e4b7f81a6511ea813d0a4916b2361a",
* appSecret = "aafc702323bf6a214"
*
* 캐시버튼 채널링 테스트 키
* appID = "69f43822b64d46d6bc01ff6d282f754d",
* appSecret = "077b11dc468f4bd3"
*
* 버즈빌 매핑 테스트 ID (MID)
* nativeMID = "0fbe7a0b-04e8-4a82-8c32-d20bb5155ecd",
* feedContentMID = "5dea2f82-4f1a-4850-99b1-cbda830b7225",
* feedShoppingMID = "e4b81c69-0e8d-49a6-ba6b-22d75d4ffa77"
*/
// initialize
CashButtonSDK(
application = this,
appId = "91e4b7f81a6511ea813d0a4916b2361a",
appSecret = "aafc702323bf6a214"
).apply {
// debug-mode
setUseDebug(use = true)
// 버즈빌 매핑 ID 설정
setBuzzAdsMID(
buzzAdsMID = BuzzAdsMID(
nativeMID = "0fbe7a0b-04e8-4a82-8c32-d20bb5155ecd",
feedContentMID = "5dea2f82-4f1a-4850-99b1-cbda830b7225",
feedShoppingMID = "e4b81c69-0e8d-49a6-ba6b-22d75d4ffa77"
)
)
// point-theme
// setPointType(pointType = PointType.POINT)
// market
setMarketType(marketType = MarketType.GooglePlayStore)
// 포인트 전환 이벤트 리스너 등록(전환 사용시 필수)
setCashExchangeListener(listener = object : ICashExchangeListener {
override fun onRequestExchange(
transactionID: String,
exchangeItemID: String
) {
/**
* transactionID 포인트 전환 TransactionID
* exchangeItemID 포인트 전환 아이템 코드
*/
}
}
}.build(listener = object : CashButtonSDK.IResultListener {
override fun onSuccess() {
Toast.makeText(
this@AppContext,
"CashButtonSDK.Init::onSuccess",
Toast.LENGTH_SHORT
).show()
}
override fun onFailure(reason: String) {
Toast.makeText(
this@AppContext,
"CashButtonSDK.Init::onFailure '$reason'",
Toast.LENGTH_SHORT
).show()
}
})
}
}
class CashButtonSDK constructor(
private val application: Application,
private val appId: String? = null,
private val appSecret: String? = null
)
초기화 옵션 설정(builder-option)
개발모드 설정
개발 모드를 설정합니다(캐시버튼의 로그 기능 활성화)
setUseDebug(use: Boolean)
true : 개발모드 활성화(개발 로그 출력)
마켓타입 설정
앱이 등록된 대표 마켓을 설정합니다. (플레이스토어 1순위)
setMarketType(marketType: MarketType)
MarketType.GooglePlayStore
포인트 전환 이벤트 리시버 등록
포인트 전환 요청시 전달되는 아이템 정보를 전달 합니다.
setCashExchangeListener(listener: ICashExchangeListener)
interface ICashExchangeListener {
fun onRequestExchange(
transactionID: String,
exchangeItemID: String
)
}
transactionID : 포인트 전환 요청 ID
exchangeItemID: 전환 요청 아이템 ID
버즈피드 정보 설정(BuzzAdsMID)
캐시버튼내에 노출되는 버즈 피드 지면 정보를 설정 합니다.
setBuzzAdsMID(buzzAdsMID: BuzzAdsMID)
data class BuzzAdsMID(
// 네이티브 배너 매핑ID
val nativeMID: String? = null,
// 피드 컨텐츠 적립 매핑ID
val feedContentMID: String? = null,
// 피드 쇼핑 적립 매핑ID
val feedShoppingMID: String? = null,
)
interface IResultListener {
fun onSuccess()
fun onFailure(reason: String)
}